config 包
config 包提供了系统配置相关的结构体和方法。
重要结构体
CmdArgs
命令行参数结构体,包含以下字段:
Configs
: []string - 配置文件路径列表Logfile
: string - 日志文件路径DataDir
: string - 数据目录路径NoCompress
: bool - 是否不压缩NoDefault
: bool - 是否不使用默认配置LogLevel
: string - 日志级别TimeRange
: string - 时间范围,格式为"YYYYMMDD-YYYYMMDD"TimeFrames
: []string - 时间周期列表StakeAmount
: float64 - 单笔开单金额StakePct
: float64 - 单笔开单金额百分比Pairs
: []string - 交易对列表Force
: bool - 是否强制执行WithSpider
: bool - 是否使用爬虫MaxPoolSize
: int - 最大连接池大小CPUProfile
: bool - 是否开启CPU性能分析MemProfile
: bool - 是否开启内存性能分析TimeZone
: string - 时区OptRounds
: int - 超参数优化单任务执行轮次Concur
: int - 超参数优化多进程并发数量Sampler
: string - 超参数优化方法(tpe/bayes/random/cmaes等)EachPairs
: bool - 是否逐个标的执行ReviewPeriod
: string - 持续调参回测时,调参回顾的周期RunPeriod
: string - 持续调参回测时,调参后有效运行周期Alpha
: float64 - 计算EMA的平滑因子Separate
: bool - 回测时是否策略组合单独测试
Config
根配置结构体,包含以下字段:
Name
: string - 配置名称Env
: string - 运行环境Leverage
: float64 - 杠杆倍数LimitVolSecs
: int - 限价单预期等待成交时间(秒)PutLimitSecs
: int - 限价单提交到交易所的预期时间MarketType
: string - 市场类型ContractType
: string - 合约类型OdBookTtl
: int64 - 订单簿生存时间StopEnterBars
: int - 入场限价单超过多少个蜡烛未成交则取消ConcurNum
: int - 并发数量OrderType
: string - 订单类型PreFire
: float64 - 预发射MarginAddRate
: float64 - 追加保证金比率ChargeOnBomb
: bool - 是否在爆仓时收费TakeOverStgy
: string - 接管策略StakeAmount
: float64 - 单笔开单金额StakePct
: float64 - 单笔开单金额百分比MaxStakeAmt
: float64 - 单笔最大开单金额OpenVolRate
: float64 - 开单数量倍率MinOpenRate
: float64 - 最小开单比率BTNetCost
: float64 - 回测网络延迟(秒)MaxOpenOrders
: int - 最大开单数量MaxSimulOpen
: int - 最大同时开单数量WalletAmounts
: map[string]float64 - 钱包金额DrawBalanceOver
: float64 - 提取余额阈值StakeCurrency
: []string - 开单币种FatalStop
: map[string]float64 - 致命停止条件FatalStopHours
: int - 致命停止小时数TimeRange
: *TimeTuple - 时间范围RunTimeframes
: []string - 运行时间周期KlineSource
: string - K线数据源WatchJobs
: map[string][]string - 监控任务RunPolicy
: []*RunPolicyConfig - 运行策略配置StratPerf
: *StratPerfConfig - 策略性能配置Pairs
: []string - 交易对列表PairMgr
: *PairMgrConfig - 交易对管理配置PairFilters
: []*CommonPairFilter - 交易对过滤器Exchange
: *ExchangeConfig - 交易所配置Database
: *DatabaseConfig - 数据库配置APIServer
: *APIServerConfig - API服务器配置RPCChannels
: map[string]map[string]interface{} - RPC通道配置Webhook
: map[string]map[string]string - Webhook配置
RunPolicyConfig
运行策略配置,可以同时运行多个策略,包含以下字段:
Name
: string - 策略名称Filters
: []*CommonPairFilter - 交易对过滤器RunTimeframes
: []string - 运行时间周期MaxPair
: int - 最大交易对数量MaxOpen
: int - 最大开单数量MaxSimulOpen
: int - 最大同时开单数量Dirt
: string - 交易方向(long/short)StratPerf
: *StratPerfConfig - 策略性能配置Pairs
: []string - 交易对列表Params
: map[string]float64 - 策略参数PairParams
: map[string]map[string]float64 - 交易对参数
StratPerfConfig
策略性能配置,包含以下字段:
Enable
: bool - 是否启用MinOdNum
: int - 最小订单数量MaxOdNum
: int - 最大订单数量MinJobNum
: int - 最小任务数量MidWeight
: float64 - 中等权重BadWeight
: float64 - 差权重
DatabaseConfig
数据库配置,包含以下字段:
Url
: string - 数据库连接URLRetention
: string - 数据保留时间MaxPoolSize
: int - 最大连接池大小AutoCreate
: bool - 是否自动创建数据库
APIServerConfig
API服务器配置,包含以下字段:
Enable
: bool - 是否启用BindIPAddr
: string - 绑定IP地址Port
: int - 监听端口Verbosity
: string - 日志详细程度JWTSecretKey
: string - JWT密钥CORSOrigins
: []string - CORS允许的源Users
: []*UserConfig - 用户配置
UserConfig
用户配置,包含以下字段:
Username
: string - 用户名Password
: string - 密码AccRoles
: map[string]string - 账户角色权限ExpireHours
: float64 - Token过期时间(小时)
WeWorkChannel
企业微信通道配置,包含以下字段:
Enable
: bool - 是否启用Type
: string - 类型MsgTypes
: []string - 消息类型AgentId
: string - 应用IDCorpId
: string - 企业IDCorpSecret
: string - 应用密钥Keywords
: string - 关键词
PairMgrConfig
交易对管理配置,包含以下字段:
Cron
: string - 定时任务表达式Offset
: int - 偏移量Limit
: int - 限制数量ForceFilters
: bool - 是否强制过滤
AccountConfig
账户配置,包含以下字段:
APIKey
: string - API密钥APISecret
: string - API密钥NoTrade
: bool - 是否禁止交易MaxStakeAmt
: float64 - 单笔最大开单金额StakeRate
: float64 - 开单金额倍数StakePctAmt
: float64 - 按百分比开单时的金额Leverage
: float64 - 杠杆倍数
公开方法
GetDataDir
获取数据目录路径。
返回:
string
- 数据目录的绝对路径。如果环境变量BanDataDir
未设置,返回空字符串。
GetStratDir
获取策略目录路径。
返回:
string
- 策略目录的绝对路径。如果环境变量BanStratDir
未设置,返回空字符串。
LoadConfig
加载并应用配置。
参数:
args
: *CmdArgs - 命令行参数对象
返回:
*errs.Error
- 错误信息,如果成功则返回 nil
GetConfig
根据命令行参数获取配置。
参数:
args
: *CmdArgs - 命令行参数对象showLog
: bool - 是否显示日志
返回:
*Config
- 配置对象*errs.Error
- 错误信息
ParseConfig
解析指定路径的配置文件。
参数:
path
: string - 配置文件路径
返回:
*Config
- 配置对象*errs.Error
- 错误信息
ApplyConfig
应用配置到全局状态。
参数:
args
: *CmdArgs - 命令行参数对象c
: *Config - 配置对象
返回:
*errs.Error
- 错误信息
GetExgConfig
获取当前交易所配置。
返回:
*ExgItemConfig
- 交易所配置对象
GetTakeOverTF
获取指定交易对的接管时间周期。
参数:
pair
: string - 交易对名称defTF
: string - 默认时间周期
返回:
string
- 时间周期
GetAccLeverage
获取指定账户的杠杆倍数。
参数:
account
: string - 账户名称
返回:
float64
- 杠杆倍数
ParsePath
解析路径,将 $
开头的路径替换为数据目录的绝对路径。
参数:
path
: string - 原始路径
返回:
string
- 解析后的路径
GetStakeAmount
获取指定账户的下注金额。
参数:
accName
: string - 账户名称
返回:
float64
- 下注金额
DumpYaml
将当前配置导出为 YAML 格式。
返回:
[]byte
- YAML 格式的配置数据*errs.Error
- 错误信息
LoadPerfs
从指定目录加载策略性能数据。
参数:
inDir
: string - 输入目录路径
ParseTimeRange
解析时间范围字符串。
参数:
timeRange
: string - 时间范围字符串,格式为 "YYYYMMDD-YYYYMMDD"
返回:
int64
- 开始时间戳(毫秒)int64
- 结束时间戳(毫秒)error
- 错误信息
GetExportConfig
获取导出配置。
参数:
path
: string - 配置文件路径
返回:
*ExportConfig
- 导出配置对象*errs.Error
- 错误信息