core 包
core 包提供了系统核心的数据结构、常量和错误定义。
核心结构体
Param
参数配置结构体,用于定义和管理系统中的参数值,特别适用于超参数搜索场景。
字段说明:
Name string
- 参数名称VType int
- 参数值类型,可以是:VTypeUniform(0)
- 均匀线性分布VTypeNorm(1)
- 正态分布
Min float64
- 参数最小值Max float64
- 参数最大值Mean float64
- 均值(在正态分布类型时有效)IsInt bool
- 是否为整数类型Rate float64
- 正态分布的比率参数,默认为1。值越大,随机值越趋向于MeanedgeY float64
- 正态分布边缘y值的计算缓存
PerfSta
策略性能统计结构体,用于记录某个策略针对所有交易标的的统计信息。
字段说明:
OdNum int
- 订单数量LastGpAt int
- 上次执行聚类的订单数量Splits *[4]float64
- 分割点数组,用于性能分组Delta float64
- 对总利润进行对数处理前的乘数
JobPerf
任务性能结构体,用于记录策略在特定交易对和时间周期上的表现。
字段说明:
Num int
- 订单数量TotProfit float64
- 总利润Score float64
- 开单倍率,小于1表示需要减少开单量。当Score等于PrefMinRate(0.001)时,将直接使用最小开单金额(MinStakeAmount)
核心功能方法
Setup
初始化系统核心组件。
返回:
*errs.Error
- 初始化过程中的错误信息,如果成功则返回nil
SetRunMode
设置系统运行模式。
参数:
mode string
- 运行模式标识符
SetRunEnv
设置系统运行环境。
参数:
env string
- 运行环境标识符
SetPairMs
设置交易对的时间参数。
参数:
pair string
- 交易对名称barMS int64
- K线时间间隔(毫秒)waitMS int64
- 等待时间(毫秒)
Sleep
带有中断检查的休眠函数。
参数:
d time.Duration
- 休眠时长
返回:
bool
- 是否被中断(true表示正常休眠完成,false表示被中断)
缓存相关方法
GetCacheVal
从缓存中获取指定键的值,支持泛型。
参数:
key string
- 缓存键名defVal T
- 默认值
返回:
T
- 缓存值或默认值
SnapMem
获取内存快照。
参数:
name string
- 快照名称
性能统计方法
GetPerfSta
获取策略性能统计信息。
参数:
stagy string
- 策略名称
返回:
*PerfSta
- 性能统计对象
DumpPerfs
导出性能统计数据到文件。
参数:
outDir string
- 输出目录路径
价格相关方法
GetPrice
获取交易对的最新价格。
参数:
symbol string
- 交易对符号
返回:
float64
- 最新价格
GetPriceSafe
安全地获取交易对价格,包含法币处理逻辑。
参数:
symbol string
- 交易对符号
返回:
float64
- 处理后的价格
SetPrice
设置交易对的最新价格。
参数:
pair string
- 交易对名称price float64
- 价格值
SetPrices
批量设置多个交易对的价格。
参数:
data map[string]float64
- 交易对价格映射
IsMaker
判断当前价格是否为做市商价格。
参数:
pair string
- 交易对名称side string
- 交易方向price float64
- 价格
返回:
bool
- 是否为做市商价格
工具方法
IsFiat
判断是否为法币代码。
参数:
code string
- 货币代码
返回:
bool
- 是否为法币
KeyStratPairTf
生成策略-交易对-时间周期的组合键名。
参数:
stagy string
- 策略名称pair string
- 交易对名称tf string
- 时间周期
返回:
string
- 组合后的键名
MarshalYaml
将对象序列化为YAML格式。
参数:
v any
- 要序列化的对象
返回:
[]byte
- 序列化后的字节数组error
- 错误信息
GroupByPairQuotes
按交易对和报价分组。
参数:
items map[string][]string
- 待分组的项目
返回:
string
- 分组结果的字符串表示
SplitSymbol
分割交易对符号为基础货币和计价货币。
参数:
pair string
- 交易对名称
返回:
string
- 基础货币string
- 计价货币string
- 基础货币代码string
- 计价货币代码
参数生成方法
PNorm
创建正态分布参数。
参数:
min float64
- 最小值max float64
- 最大值
返回:
*Param
- 参数对象
PNormF
创建带有均值和比率的正态分布参数。
参数:
min float64
- 最小值max float64
- 最大值mean float64
- 均值rate float64
- 比率
返回:
*Param
- 参数对象
PUniform
创建均匀分布参数。
参数:
min float64
- 最小值max float64
- 最大值
返回:
*Param
- 参数对象
订单相关方法
IsLimitOrder
判断是否为限价单。
参数:
t int
- 订单类型
返回:
bool
- 是否为限价单
系统控制方法
RunExitCalls
执行退出时的回调函数。
IsPriceEmpty
检查价格缓存是否为空。
返回:
bool
- 价格缓存是否为空
PrintStratGroups
打印策略分组信息。