三、页面盒子、模组机制对比

(一)支持的函数类型对比

函数类型 盒子 模组
收盘价模型
指令价模型
含CHECKSIG、CHECKSIG_MIN、MULTSIG、MULTSIG_MIN、PANZHONG_MIN函数
出信号立即止盈/止损不复核
STOP指令
判断当前行情是否为盘整
PANZHENG
设置K线提前N秒走完,K线走完进行复核
CLOSEKLINE
设置K线提前N分钟走完,K线走完进行复核
CLOSEKLINE_MIN
设置模型中所有信号用相同委托方式
SETALLSIGPRICETYPE
不同的信号设置不同的委托方式
SETSIGPRICETYPE
设置模型中所有信号消失用相同委托方式处理
SETALLLOSTSIGPRICETYPE
不同的信号消失设置不同的委托方式
SETLOSTSIGPRICETYPE
指定交易合约
TRADE_OTHER('CODE')
除隔夜跳空
TRADE_SMOOTHING
设置模组运行类型
SETMODRUNTYPE
设置模组换月移仓的委托方式
SETMOVEOPIPRICE
返启用按需自动入金方式
AUTOFINANCING
模组头寸函数
如FEE、INITMONEY、LASTOFFSETPROFIT等与资金相关的函数
交易账户头寸函数
如ACCOUNTMONEY、ACCOUNTMONEYTOT等
公式条件单
CONDITION_ORDER、CONDITION_ORDER1

(二)盒子和模组的机制对比

盒子 模组
持仓 取交易账户持仓判断,盒子间持仓不互相独立

①同一合约加载多个盒,盒子间持仓不相互独立;平仓信号发出时,根据信号手数进行平仓。
② BKVOL/SKVOL函数的取值,根据信号手数进行计算;回测资金不足时,可能与页面盒子信号不一致;如:前面开仓信号BK根据信号手数计算为5手,实际因为账户资金不足,未进行开仓,BKVOL仍然取值为5。
取理论持仓和交易单元持仓判断,模组间持仓相互独立

①多个模组加载同一合约,模组间持仓相互独立;平仓信号发出时,先判断模组交易单元持仓,如果交易单元持仓<信号手数,根据交易单元持仓进行平仓;
② BKVOL/SKVOL函数的取值受理论资金的影响,回测和模型运行资金设置一致时,回测与模组信号保持一致;如:前面开仓信号BK根据信号手数计算为5手,实际因为理论资金不足,开仓2手,BKVOL的取值为2。
资金 页面盒子根据交易账户实际资金执行信号

①不支持根据页面盒子分配资金;实际账户资金足够,即可以进行委托。
② 不支持根据资金比例下单;
③不支持模组头寸函数等所有与资金有关的函数
模组根据分配的理论资金执行信号

①每个模组根据分配的资金运行;实际账户资金足够,模组理论资金不足,不进行委托(除自动入金模式)。
② 支持根据模组资金比例下单;
③ 支持使用模组头寸函数等与资金有关的函数
自动入金 不支持自动入金

不支持AUTOFINANCING函数
支持自动入金

①模型写入AUTOFINANCING函数,当模组理论资金不足时,会自动按需入金;
② 首次账户入金为首次开仓所需的资金,下次开仓时可用资金不足,账户再次入金按所需补齐不足部分资金;
手动开仓 盒子可以接管手动下单的持仓并进行平仓

盒子是根据交易账户持仓执行信号,不论是盒子开的仓位还是手动下单开的仓位,只要是账户中有的持仓都可以由盒子接管平仓。
模组交易单元不接管手动下单的持仓

模组持仓是由模组交易单元单独管理的,不接管手动下单的持仓,后续模组出平仓信号也不会处理这部分持仓。
手动平仓 盒子中支持手动平仓干预

盒子根据交易账户持仓执行信号,手动平仓不会影响盒子中信号的执行。后续再出平仓信号,会读取总账户的持仓再进行判断。
模组中不支持手动平仓干预模组运行

模组由独立的交易单元管理持仓,不支持手动干预信号执行。如果手动平掉模组中的持仓,后续模组出平仓信号,就只出平仓信号,并不会真正的发委托。