biz 包
biz 包提供了业务逻辑层的功能实现。
主要结构体
LiveOrderMgr
实时订单管理器,用于管理实盘交易中的订单。继承自 OrderMgr
。
OrderMgr
订单管理器基类,提供订单管理的基础功能。
主要字段:
Account
: 账户名称BarMS
: 当前K线时间戳(毫秒)
IOrderMgr
订单管理器接口,定义了订单管理的基本方法。
主要方法:
ProcessOrders
: 处理订单请求EnterOrder
: 处理入场订单ExitOpenOrders
: 处理退出订单ExitOrder
: 处理单个订单的退出UpdateByBar
: 根据K线更新订单状态OnEnvEnd
: 环境结束时的处理CleanUp
: 清理资源
IOrderMgrLive
实时订单管理器接口,继承自 IOrderMgr
。
额外方法:
SyncExgOrders
: 同步交易所订单WatchMyTrades
: 监听账户交易TrialUnMatchesForever
: 持续监听未匹配交易ConsumeOrderQueue
: 消费订单队列
ItemWallet
单个币种的钱包。
主要字段:
Coin
: 币种代码,非交易对Available
: 可用余额Pendings
: 买入卖出时锁定金额,键可以是订单idFrozens
: 空单等长期冻结金额,键可以是订单idUnrealizedPOL
: 此币的公共未实现盈亏,合约用到,可抵扣其他订单保证金UsedUPol
: 已占用的未实现盈亏(用作其他订单的保证金)Withdraw
: 从余额提现的,不会用于交易
BanWallets
账户钱包管理器。
主要字段:
Items
: 币种到钱包的映射Account
: 账户名称IsWatch
: 是否正在监听余额变化
Trader
交易管理器,负责处理交易策略和订单执行。
主要方法:
OnEnvJobs
: 处理环境任务FeedKline
: 处理K线数据ExecOrders
: 执行订单
公开方法
SetupComs
初始化基础组件。
参数:
args
: *config.CmdArgs - 命令行参数
返回:
*errs.Error
- 错误信息
实现细节:
- 设置错误打印函数
- 创建上下文和取消函数
- 初始化数据目录
- 加载配置文件
- 设置日志系统
- 初始化核心组件、交易所、ORM和商品模块
- 主要用于系统启动时的基础设施初始化
SetupComsExg
初始化交易所相关的基础组件。
参数:
args
: *config.CmdArgs - 命令行参数
返回:
*errs.Error
- 错误信息
实现细节:
- 调用
SetupComs
完成基础初始化 - 初始化交易所的 ORM 模块
- 主要用于需要交易所功能时的初始化
LoadRefreshPairs
加载并刷新交易对信息。
参数:
dp
: data.IProvider - 数据提供者接口showLog
: bool - 是否显示日志pBar
: *utils.StagedPrg - 进度条对象
返回:
*errs.Error
- 错误信息
实现细节:
- 刷新交易对列表
- 计算交易对时间周期得分
- 加载策略任务
- 处理未完成订单
- 订阅需要预热的交易对
- 用于系统启动或定期更新交易对信息时
AutoRefreshPairs
自动刷新交易对信息。
参数:
dp
: data.IProvider - 数据提供者接口showLog
: bool - 是否显示日志
实现细节:
- 自动调用
LoadRefreshPairs
- 处理刷新失败的错误日志
- 用于定时自动刷新交易对信息
InitOdSubs
初始化订单订阅。
实现细节:
- 收集需要监听订单变化的策略
- 为每个账户添加订单订阅回调
- 在订单状态变化时通知相关策略
- 用于实时监控订单状态变化
AddBatchJob
添加批量任务。
参数:
account
: string - 账户名tf
: string - 时间周期job
: *strat.StratJob - 策略任务isInfo
: bool - 是否为信息类型
TryFireBatches
尝试触发批量任务。
参数:
currMS
: int64 - 当前毫秒时间戳
返回:
int
- 触发的任务数量
ResetVars
重置变量。
实现细节:
- 重置各种全局映射和变量
- 包括订单管理器、钱包、K线环境等
- 用于系统重启或重置时清理状态
InitDataDir
初始化数据目录。
返回:
*errs.Error
- 错误信息
GetOdMgr
获取订单管理器。
参数:
account
: string - 账户名
返回:
IOrderMgr
- 订单管理器接口
GetAllOdMgr
获取所有订单管理器。
返回:
map[string]IOrderMgr
- 账户名到订单管理器的映射
GetLiveOdMgr
获取实时订单管理器。
参数:
account
: string - 账户名
返回:
*LiveOrderMgr
- 实时订单管理器
CleanUpOdMgr
清理订单管理器。
返回:
*errs.Error
- 错误信息
RunDataServer
运行数据服务器。
参数:
args
: *config.CmdArgs - 命令行参数
返回:
*errs.Error
- 错误信息
InitLiveOrderMgr
初始化实时订单管理器。
参数:
callBack
: func(od *ormo.InOutOrder, isEnter bool) - 订单回调函数
实现细节:
- 为每个账户创建实时订单管理器
- 设置订单回调函数
- 用于管理实时交易订单
InitLocalOrderMgr
初始化本地订单管理器。
参数:
callBack
: func(od *ormo.InOutOrder, isEnter bool) - 订单回调函数showLog
: bool - 是否显示日志
VerifyTriggerOds
验证触发订单。
StartLiveOdMgr
启动实时订单管理器。
LoadZipKline
从ZIP文件加载K线数据。
参数:
inPath
: string - 输入路径fid
: int - 文件IDfile
: *zip.File - ZIP文件对象arg
: interface{} - 附加参数
返回:
*errs.Error
- 错误信息
实现细节:
- 解析 ZIP 文件中的 K 线数据
- 支持多种数据格式
- 处理时间戳和价格数据
- 用于历史数据导入
LoadCalendars
加载日历数据。
参数:
args
: *config.CmdArgs - 命令行参数
返回:
*errs.Error
- 错误信息
实现细节:
- 初始化基础组件
- 读取 CSV 格式的日历数据
- 按交易所分组保存日历信息
- 用于管理交易日历
ExportKlines
导出K线数据。
参数:
args
: *config.CmdArgs - 命令行参数prg
: utils.PrgCB - 进度回调函数
返回:
*errs.Error
- 错误信息
实现细节:
- 导出指定交易对的 K 线数据
- 支持多个时间周期
- 支持调整因子处理
- 用于数据分析和备份
PurgeKlines
清理K线数据。
参数:
args
: *config.CmdArgs - 命令行参数
返回:
*errs.Error
- 错误信息
实现细节:
- 删除指定条件的 K 线数据
- 支持按交易对、时间周期筛选
- 需要用户确认后执行
- 用于数据清理和维护
ExportAdjFactors
导出调整因子。
参数:
args
: *config.CmdArgs - 命令行参数
返回:
*errs.Error
- 错误信息
实现细节:
- 导出价格调整因子数据
- 包含开始时间、因子值等信息
- 支持时区设置
- 用于价格校准和回测
CalcCorrelation
计算相关性。
参数:
args
: *config.CmdArgs - 命令行参数
返回:
*errs.Error
- 错误信息
实现细节:
- 计算交易对之间的相关性
- 支持批量计算
- 可输出 CSV 或图像格式
- 用于交易对选择和风险控制
RunHistKline
运行历史K线数据。
参数:
args
: *RunHistArgs - 运行参数
返回:
*errs.Error
- 错误信息
InitFakeWallets
初始化模拟钱包。
参数:
symbols
: ...string - 交易对符号列表
GetWallets
获取钱包。
参数:
account
: string - 账户名
返回:
*BanWallets
- 钱包对象
WatchLiveBalances
监控实时余额。