最近改了个策略,大体代码如下:
KD:=CON1 AND HOLDING<1; //开多条件
PD:=CON2 AND HOLDING>0; //平多条件
KK:=CON3 AND HOLDING>-1; //开空条件
PK:=CON4 AND HOLDING<0; //平空条件
平空:SELLSHORT(PK,1,MARKETR); //平空信号
开多:BUY(KD AND HOLDING=0,1,MARKETR); //开多信号
平多:SELL(PD,1,MARKETR); //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,MARKETR); //开空信号
在固定轮询模式下,发现前面四个语句中增加HOLDING的取值计算后,会影响同一根K线不能同时出现平仓和开仓信号。而把前面四个语句中的HOLDING取值计算去掉后,改为在后面四句中增加HOLDING取值计算,则可以正常实现在同一根K线上同时出现平仓和开仓信号。
请问这是什么原因?为什么在前面有HOLDING取值的情况下,会影响同一根K线不能同时出现平仓和开仓信号?前面的HOLDING取值和后面的HOLDING取值,在固定轮询模式下,难道不是同样每个价位都重新计算一边吗?不都是最新的HOLDING值吗?应该结果是一样的才对啊。
你把holding作为开平仓的条件或不作为条件,是有可能影响到信号的触发的,建议输出你的条件看下,看是否同时满足开平仓条件呢。