一开一平信号过滤模型的运行规则

1、一开一平信号过滤模型的编写

必须有一句AUTOFILTER,不允许连续出开仓信号或者连续出平仓信号,有多个开仓信号都满足条件的时候,取第一个信号作为有效信号,后面的k线上的同样信号将被过滤掉。
一开一平信号过滤模型支持的指令:BK、BP、BPK、SK、SP、SPK、CLOSEOUT、STOP、STOP1,不支持BK(5)等带手数的指令。
支持指令分组。

2、模组的加载初始化

运行单元有历史信号:
加载时根据历史信号自动加载模组,模组后续运行根据历史最后信号和理论持仓,计算并执行模型后续发出的信号。

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

清除历史信号重新运行:
用户手动输入信号方向和信号价格。模组后续运行,以带入的信号以及持仓,执行模型后续出的信号。

3、信号的下单手数

(1)开仓信号:下单手数按照加载模组设置的默认开仓手数执行(模组当前单元可用资金不足,根据可开仓手数执行);
(2)平仓信号:平掉模组当前单元全部理论持仓手数。

4、重置单元持仓

(1)当前是开仓信号(BK、SK、BPK、SPK)的状态下:重置单元持仓的手数不能大于单元理论持仓。
(2)当前是平仓信号(SP、BP、CLOSEOUT、STOP、STOP1)的状态下:不能重置单元持仓

5、计算下一个信号依据

一开一平信号过滤模型,完全根据上一个有效信号来计算下一个信号,开仓信号和平仓信号一一对应。

6、信号的下单执行规则

一根k线上信号确定以后,会计算下一个信号,支持一根k线上先后出现多个信号。

(1)开仓信号发出时,不管当前单元中是否有挂单,直接发出开仓指令;

(2)平仓信号发出时:

① 如果之前发出的开仓信号还未执行将不再执行;
② 如果之前发出的开仓信号有挂单(还没有成交或部分成交),先撤掉对应的挂单,然后执行平仓指令(平模组当前单元持仓,如果0手持仓就不发委托);

(3)在系统正在执行信号消失处理的情况下,必须等信号消失处理完,再执行新的信号;

(4)信号消失的处理:

① 对应的信号还未发出委托,则停止执行该信号;
② 对应的信号有挂单,但是还没有成交,撤掉挂单;
③ 对应的开仓信号已经委托并且成交(全部成交或部分成交),则平仓对应手数,恢复0持仓状态;
④ 对应的平仓信号已经委托并且成交(全部成交或部分成交),则新开仓对应手数,恢复以前的持仓状态。