Toml :设置策略配置文件

23 篇文章 1 订阅

一、品种相关参数
比如,我们可以通过toml文件,来设置CTA策略品种的相关参数。

mutable struct FutureInfo
    Code                  ::String
    Exchange              ::String
    Multiplier            ::Float64
    TradeFee              ::Float64 # 可能是1手5元,也可能是0.0015
    IsPercentTradeFeeType ::Bool    # 0: 比例, 1:按手收取,默认为费率. 如果这个为否,交易费用就按张收取
    OneTickValue          ::Float64 # 计算冲击成本时有用
    #IsNightMarket         ::Bool #是否有夜市
    
end

在TOML文件中,设置具体各品种:

# 可以通过d["futures"]["C"]来访问
[futures.IF]
IF  =["CCFX",300.0,0.000027,true,0.2]
[futures.IC]
IC  =["CCFX",300.0,0.000027,true,0.2]
[futures.IH]
IH  =["CCFX",300.0,0.000027,true,0.2]
[futures.T]
T = ["CCFX",10000.0,0.0001,true,0.005]
[futures.TF]
TF = ["CCFX",10000.0,0.0001,true,0.005]
[futures.TS]
TS = ["CCFX",10000.0,0.0001,true,0.005]
[futures.WH]
WH = ["XZCE",20.0, 7.7,true,1.0]
[futures.PM]
PM = ["XZCE",50.0, 7.7,true,1.0]
[futures.ME]
ME = ["XZCE",50.0, 7.7,true,1.0]
[futures.MA]
MA=["XZCE",10.0, 1.8,true,1.0] 
[futures.TA]
TA=["XZCE",5.0, 3.3,true,2.0]
[futures.SR]
SR=["XZCE",10.0, 3.3,true,1.0]
[futures.CF]
CF=["XZCE",5.0, 5.0,true,5.0]
[futures.FG]
FG= ["XZCE",20.0, 8.8,true,1.0]
[futures.TC]
TC= ["XZCE",200.0, 3.3,true,0.1]
[futures.RM]
RM = ["XZCE",10.0, 1.7,true,1.0]
[futures.OI]
OI = ["XZCE",10.0, 2.8,true,2.0]
[futures.RS]
RS = ["XZCE",10.0, 2.8,true,1.0]
[futures.RI]
RI = ["XZCE",20.0, 2.8,true,1.0]
[futures.JR]
JR = ["XZCE",20.0, 2.8,true,1.0]
[futures.LR]
LR = ["XZCE",20.0, 2.8,true,1.0]
[futures.SF]
SF = ["XZCE",5.0, 2.8,true,2.0] 
[futures.CY]
CY =["XZCE",5.0, 2.8,true,5.0]
[futures.SM]
SM=["XZCE",5.0, 2.8,true,5.0]
[futures.AP]
AP=["XZCE",10.0, 2.8,true,1.0]
[futures.SJ]
SJ=["XZCE",5.0, 2.8,true,5.0]
[futures.UR]
UR=["XZCE",5.0, 2.8,true,5.0]
[futures.SA]
SA=["XZCE",20.0, 2.8,true,1.0 ] 
[futures.BB]

BB=["XDCE",500.0, 0.00011,true,0.05]
[futures.FB]
FB=["XDCE",500.0, 0.00011,true,0.05]
[futures.I]
I=["XDCE",100.0, 0.00009,true,1.0]
[futures.A]
A=["XDCE",10.0, 0.00009,true,1.0]
[futures.B]
B=["XDCE",10.0, 0.00009,true,1.0]
[futures.J]
J=["XDCE",100.0, 0.00009,true,1.0]
[futures.C]
C=["XDCE",100.0, 0.00009,true,1.0]
[futures.JD]
JD=["XDCE",10.0, 0.00017,true,1.0]

[futures.JM]
JM=["XDCE",60.0, 0.00011,true,1.0]
[futures.L]
L = ["XDCE",5.0, 2.8,true,1.0]

[futures.M]
M=["XDCE",10.0, 2.2,true,1.0]

[futures.P]
P=["XDCE",10.0, 2.8,true,2.0]
[futures.PP]
PP=["XDCE",5.0, 0.00006,true,1.0]
[futures.V]
V=["XDCE",5.0, 2.2,true,5.0]
[futures.Y]
Y=["XDCE",10.0, 2.8,true,1.0]
[futures.CS]
CS=["XDCE",10.0, 2.8,true,5.0] #2020/4
[futures.RR]
RR=["XDCE",10.0, 2.8,true,1.0]
[futures.EB]
EB=["XDCE",5.0, 2.8,true,1.0]
[futures.AG]
AG=["XSGE",15.0, 0.000055,true,1.0]
[futures.AU]
AU=["XSGE",1000.0, 11,true,0.05]

[futures.AL]
AL=["XSGE",5.0, 3.3,true,5.0]

[futures.CU]
CU=["XSGE",5.0, 0.000055,true,10.0]
[futures.RB]
RB=["XSGE",10.0, 0.00015,true,1.0]
[futures.PB]
PB=["XSGE",5.0, 0.00015,true,5.0]

[futures.WR]
WR=["XSGE",10.0, 0.00005,true,1.0]
[futures.RU]
RU=["XSGE",10.0, 0.00005,true,5.0]
[futures.FU]
FU=["XSGE",10.0, 0.00005,true,1.0]
[futures.ZN]
ZN=["XSGE",5.0, 0.00005,true,5.0]
[futures.BU]
BU=["XSGE",10.0, 0.00005,true,2.0]
[futures.HC]
HC=["XSGE",10.0, 0.00005,true,1.0]
[futures.NI]
NI=["XSGE",1.0, 0.00005,true,10.0]

[futures.SN]
SN=["XSGE",1.0, 0.00005,true,10.0]
[futures.SP]
SP=["XSGE",10.0, 0.00005,true,2.0] 
[futures.SS]
SS=["XSGE",5.0, 0.00005,true,5.0]
[futures.SC]
SC=["XINE",0.1, 0.00005,true,0.1]
[futures.NR]
NR=["XINE",10.0, 0.00005,true,5.0]
julia> using TOML
julia> @time d = TOML.parsefile(s"D:\strategyJulia\my_config\fee.toml")
  0.005381 seconds (1.45 k allocations: 109.188 KiB)
Dict{String,Any} with 1 entry:
  "futures" => Dict{String,Any}("C"=>Dict{String,Any}("C"=>Any["XDCE", 100.0, 9.0e-5, true, 1.0]),"SM"=>Dict{String,Any}("SM"=>Any["XZCE", 5.0, 2.8, true, 5.0]),"P"=>Dict{…
julia> d["futures"]
Dict{String,Any} with 64 entries:
  "C"  => Dict{String,Any}("C"=>Any["XDCE", 100.0, 9.0e-5, true, 1.0])
  "SM" => Dict{String,Any}("SM"=>Any["XZCE", 5.0, 2.8, true, 5.0])
  "P"  => Dict{String,Any}("P"=>Any["XDCE", 10.0, 2.8, true, 2.0])
  "SA" => Dict{String,Any}("SA"=>Any["XZCE", 20.0, 2.8, true, 1.0])
  "BB" => Dict{String,Any}("BB"=>Any["XDCE", 500.0, 0.00011, true, 0.05])
  "PP" => Dict{String,Any}("PP"=>Any["XDCE", 5.0, 6.0e-5, true, 1.0])
  "SF" => Dict{String,Any}("SF"=>Any["XZCE", 5.0, 2.8, true, 2.0])
  "CS" => Dict{String,Any}("CS"=>Any["XDCE", 10.0, 2.8, true, 5.0])
  "TF" => Dict{String,Any}("TF"=>Any["CCFX", 10000.0, 0.0001, true, 0.005])
  "CF" => Dict{String,Any}("CF"=>Any["XZCE", 5.0, 5.0, true, 5.0])
  "AU" => Dict{String,Any}("AU"=>Any["XSGE", 1000.0, 11, true, 0.05])
  "OI" => Dict{String,Any}("OI"=>Any["XZCE", 10.0, 2.8, true, 2.0])
  "SR" => Dict{String,Any}("SR"=>Any["XZCE", 10.0, 3.3, true, 1.0])
  "TA" => Dict{String,Any}("TA"=>Any["XZCE", 5.0, 3.3, true, 2.0])=> ⋮

julia> d["futures"]["C"]
Dict{String,Any} with 1 entry:
  "C" => Any["XDCE", 100.0, 9.0e-5, true, 1.0]

二、策略相关参数

这个文件可以配置大策略需要处理的策略组相关信息。

start_time = "2016-01-01"
end_time   = "2021-03-01"
stras_run  = ["YLXF"] #YLXF

[YLXF]
1 = {name ="YLXF",freq ="minute",bar_n =1,window=10,enter= 0.95,exit= 0.95,codes = [["IH","IF"]]}
2 = {name ="YLXF",freq ="minute",bar_n =2,window=10,enter = 0.95,exit = 0.95,codes = [["IH","IF"]]}
3 = {name ="YLXF",freq ="minute",bar_n =3,window=10,enter = 0.95,exit= 0.95,codes = [["IH","IF"]]}

[XXXY]
XXXY_1 = {name ="XXXY",freq ="minute",bar_n =1,window = 12,enter= 0.9,exit= 0.9,codes = ["IC","IH","IF"]}
XXXY_2 = {name ="XXXY",freq ="minute",bar_n =2,window = 12,enter = 0.9,exit = 0.9,codes = ["IC","IH","IF"]}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值