老师,下面这个模型,只有多头信号,没有任何空头信号,我已经检查了20遍了,麻烦您帮我看看吧。
主体思路:
①,开多:日线上 当前价格>过去4周期开盘或者收盘价中最大值,且cross(ma5,ma10)。
②,开空:日线上 当前价格<过去4周期开盘或者收盘价中最小值,且cross(ma10,ma5)。
③,平多:日线上 当前价格<过去4周期开盘或者收盘价最小值,或者cross(ma10,ma5)。
④,平空条件:日线上 当前价格>过去4周期开盘或者收盘价中最大值,或者cross(ma5,ma10)。
INPUT:XD(1,1,10,2);
MA5:=MA(CLOSE,5);
MA10:=MA(CLOSE,10);
AA001:=CROSS(MA5,MA10);//上穿
BB001:=CROSS(MA10,MA5);//下穿
昨日开盘:=callstock('STKLABEL()',vtopen,6,-1) ;
昨日收盘:=callstock('STKLABEL()',vtCLOSE,6,-1);
前日开盘:=callstock('STKLABEL()',vtopen,6,-2) ;
前日收盘:=callstock('STKLABEL()',vtCLOSE,6,-2);
大前开盘:=callstock('STKLABEL()',vtopen,6,-3) ;
大前收盘:=callstock('STKLABEL()',vtCLOSE,6,-3);
前四开盘:=callstock('STKLABEL()',vtopen,6,-4) ;
前四收盘:=callstock('STKLABEL()',vtCLOSE,6,-4);
ZD001:=MAX(昨日开盘 OR 昨日收盘 OR 前日开盘 OR 前日收盘 , 大前开盘 OR 大前收盘 OR 前四开盘 OR 前四收盘) ;//过去4周期开盘或者收盘价中最大值
ZX001:=MIN(昨日开盘 OR 昨日收盘 OR 前日开盘 OR 前日收盘 , 大前开盘 OR 大前收盘 OR 前四开盘 OR 前四收盘) ;//过去4周期开盘或者收盘价中最小值
AA002:=CLOSE>ZD001 AND AA001;//开多:日线上 当前价格>过去4周期开盘或者收盘价中最大值,且cross(ma5,ma10)。
BB002:=CLOSE<ZX001 AND BB001;//开空:日线上 当前价格<过去4周期开盘或者收盘价中最小值,且cross(ma10,ma5)。
PD001:=CLOSE<ZX001 OR BB001;//平多:日线上 当前价格<过去4周期开盘或者收盘价最小值,或者cross(ma10,ma5)。
PK001:=CLOSE>ZD001 OR AA001;//平空:日线上 当前价格>过去4周期开盘或者收盘价中最大值,或者cross(ma5,ma10)。
开多:BUY(AA002 AND HOLDING=0,XD,MARKET); //开多信号
开空:BUYSHORT(BB002 AND HOLDING=0,XD,MARKET); //开空信号
平空:SELLSHORT(PK001 AND HOLDING<0,XD,MARKET); //平空信号
平多:SELL(PD001 AND HOLDING>0,XD,MARKET); //平多信号
INPUT:XD(1,1,10,2);
MA5:=MA(CLOSE,5);
MA10:=MA(CLOSE,10);
AA001:=CROSS(MA5,MA10);//上穿
BB001:=CROSS(MA10,MA5);//下穿
昨日开盘:=callstock(STKLABEL(),vtopen,6,-1) ;
昨日收盘:=callstock(STKLABEL(),vtCLOSE,6,-1);
前日开盘:=callstock(STKLABEL(),vtopen,6,-2) ;
前日收盘:=callstock(stklabel,vtCLOSE,6,-2);
大前开盘:=callstock(stklabel,vtopen,6,-3) ;
大前收盘:=callstock(stklabel,vtCLOSE,6,-3);
前四开盘:=callstock(stklabel,vtopen,6,-4) ;
前四收盘:=callstock(stklabel,vtCLOSE,6,-4);
ZD001:=MAX(昨日开盘 ,max( 昨日收盘 ,max( 前日开盘 ,max( 前日收盘 , max(大前开盘 ,max( 大前收盘 ,max( 前四开盘 ,前四收盘))))))) ;//过去4周期开盘或者收盘价中最大值
ZX001:=MIN(昨日开盘 ,min( 昨日收盘 ,min(前日开盘 ,min( 前日收盘 , min(大前开盘 ,min(大前收盘 ,min( 前四开盘 , 前四收盘))))))) ;//过去4周期开盘或者收盘价中最小值
AA002:=CLOSE>ZD001 AND AA001;//开多:日线上 当前价格>过去4周期开盘或者收盘价中最大值,且cross(ma5,ma10)。
BB002:=CLOSE<ZX001 AND BB001;//开空:日线上 当前价格<过去4周期开盘或者收盘价中最小值,且cross(ma10,ma5)。
PD001:=CLOSE<ZX001 OR BB001;//平多:日线上 当前价格<过去4周期开盘或者收盘价最小值,或者cross(ma10,ma5)。
PK001:=CLOSE>ZD001 OR AA001;//平空:日线上 当前价格>过去4周期开盘或者收盘价中最大值,或者cross(ma5,ma10)。
平空:SELLSHORT(PK001 AND HOLDING<0,XD,MARKET);
开多:BUY(AA002 AND HOLDING=0,XD,MARKET);
平多:SELL(PD001 AND HOLDING>0,XD,MARKET);
开空:BUYSHORT(BB002 AND HOLDING=0,XD,MARKET);