Toml :設置策略配置文件

比如,我們可以通過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]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章