ZDKDTJ:=ZDKG=1 AND ABS(C-ZD)<2 AND HOLDING=0;
ZDKKTJ:=ZDKG=1 AND ABS(C-ZG)<2 AND HOLDING=0;
ZDPDTJ:=((ZDKG=1 AND ABS(ZG-C)<2) AND HOLDING>0,NOAXIS;
ZDPKTJ:=((ZDKG=1 AND ABS(C-ZD)<2) AND HOLDING<0,NOAXIS;
SELL(ZDPDTJ,HOLDING,THISCLOSE);
SELLSHORT(ZDPKTJ,HOLDING,THISCLOSE);
BUY(ZDKDTJ,1,THISCLOSE);
BUYSHORT(ZDKKTJ,1,THISCLOSE);
我这样写,为什么不再同一根K线上显示平仓再开仓?
ZDKDTJ:=ZDKG=1 AND ABS(C-ZD)<2 AND HOLDING=0;
ZDKKTJ:=ZDKG=1 AND ABS(C-ZG)<2 AND HOLDING=0;
ZDPDTJ:=((ZDKG=1 AND ABS(ZG-C)<2) AND HOLDING>0,NOAXIS;
ZDPKTJ:=((ZDKG=1 AND ABS(C-ZD)<2) AND HOLDING<0,NOAXIS;
SELLSHORT(ZDPKTJ,HOLDING,THISCLOSE);
BUY(ZDKDTJ,1,THISCLOSE);
SELL(ZDPDTJ,HOLDING,THISCLOSE);
BUYSHORT(ZDKKTJ,1,THISCLOSE);
如上面改写的所示,要按照 平空--开多---平多--开空的顺序来写
楼上的老师也没理解透金字塔的开平规则啊!
用变量表示开平条件,有一个需要注意,holding的值必须在开平命令后才会刷新,楼主的问题,把所有的变量都写在前面了,开平命令写在后面,实际上这四个变量计算的时候,HOLDING都还是0,所以凡用holding>0去定义的变量都不能成立,也就是说楼主的代码这样的顺序,所有平仓的信号在K线图上都会押后
正确写法如下:
ZDPKTJ:=((ZDKG=1 AND ABS(C-ZD)<2) AND HOLDING<0,NOAXIS;
SELLSHORT(ZDPKTJ,HOLDING,THISCLOSE);
ZDKDTJ:=ZDKG=1 AND ABS(C-ZD)<2 AND HOLDING=0;
BUY(ZDKDTJ,1,THISCLOSE);
ZDPDTJ:=((ZDKG=1 AND ABS(ZG-C)<2) AND HOLDING>0,NOAXIS;
SELL(ZDPDTJ,HOLDING,THISCLOSE);ZDKKTJ:=ZDKG=1 AND ABS(C-ZG)<2 AND HOLDING=0;
BUYSHORT(ZDKKTJ,1,THISCLOSE);