趋势策略模组运行机制说明

1、模组运行机制

模组中模型运行分为策略模型部分和算法下单组件部分。

(1)策略模型部分
① 策略模型部分只出信号,不进行实际委托交易;
② 策略模型部分只有在写入了BK/SP/SK/BP/BPK/SPK/BUY/SELL指令时才会显示对应信号;
③ 模组按照策略模型部分显示信号和信号记录;
理论上,策略模型部分与实际委托没有必然关联,如果想将策略模型中的思路转化为实际交易委托,必须通过相应的编写内容由算法下单组件接管策略模型部分的信号。

(2)算法下单组件部分
模组中发出的信号由算法下单组件接管,并按组件中写入的算法语句执行实际的委托;

2、模组信号机制

模组按照策略模型部分显示信号。
模组显示的信号只具有模型参考意义,对于实际交易没有必然影响。
① 模组只发出信号不进行委托,需要在组件中通过算法语句接管信号,执行委托;
② 换月移仓转换为信号传给组件,分别为旧主力平仓和新主力开仓两笔信号;
③ 模组中手动加仓/减仓,也转换为信号传给组件。

3、模组交易机制

模组的实际交易完全由算法下单组件部分控制。
算法下单组件严格按照写入的内容发送交易指令,与策略模型部分没有必然的联系。
① 委托单的买卖类型、开平类型、委托价格和委托数量按照算法下单组件中写入的参数执行,实际下单委托的方向/数量/价格与策略信号可能不一致;
② 算法下单组件中可以定义数据,实际交易的合约可以和模组中的交易合约不同;
③ 算法下单组件直接发送委托或撤单指令,不经过任何确认,并会在每次公式计算时发送,实际交易记录可以在算法交易运行池的运行日志和成交列表中查看;
④ 模组不会自动进行撤单处理,必须在算法下单组件写入相应的撤单指令算法语句,如果算法下单组件没有写入撤单指令,闭市后,交易所会对所有挂单进行统一处理;
⑤ 多账号下单时,需在模组界面绑定下单账号,组件只对其绑定的账号下单。

4、模组的加载与初始化

(1)运行单元有历史信号
如果K线接续(闭盘退出和再次打开之间K线数据相同),加载时根据历史信号自动加载模组,模组根据历史最后信号和理论持仓,计算并执行模型后续发出的信号。
如果K线不接续(盘中退出和再次打开之间有K线数据),会清除历史信号,继承模组上次退出时的理论持仓。上次退出时理论持仓和单元持仓方向一致会继承单元头寸。如果有资金管理函数继承理论权益。

(2)运行单元没有历史信号
从设置的信号计算起始时间开始计算、执行信号。

(3)重新初始化运行单元
如果继承交易记录及头寸,会清除历史信号,但保留历史交易记录,保留实际收益,继承模组上次退出时的理论持仓。上次退出时理论持仓和单元持仓方向一致会继承单元头寸。如果有资金管理函数继承理论权益。
选择不继承交易记录及头寸,不带入持仓,不保留历史交易记录,不保留实际收益,如果有资金管理函数,可手动修改理论起始权益,按指定信号计算起始时间计算历史信号。

5、模组列表指标含义

收益:模组运行过程中的累计收益。收益=平仓盈亏+浮动盈亏-手续费;
动态:模组运行过程中最后一根K线上实时显示的信号;
下单信号:模组运行过程中最后执行下单的信号,不显示没有确认的可能变化的信号;
信号手数:下单信号设置的手数或模型中写入的手数;
理论持仓:根据信号下单手数计算的理论持仓,完全根据信号计算,不受手动干预影响。
单元持仓:模组当前单元的实际持仓手数;
浮动盈亏:模组当前单元持仓的浮盈,根据单元持仓价格计算;
平仓盈亏:模组当前单元本次打开后产生的累计的平仓盈亏,根据单元持仓的实际成交价格计算;
当日平仓盈亏:显示单元当前交易日的平仓盈亏。