INPUT:N(40,1,100,10),SS(1,1,10000,1);
CYC:=BARSLAST(DATE<>REF(DATE,1))+1;
手数:=SS;
MA1:REF(MA(((H+L+C)/3,N)),1);//三价平均线
浮动区间:=REF(MA(TR,N),1);//真实振幅的移动平均线
上轨:MA1+浮动区间;
下轨:MA1-浮动区间;
//交易条件
开多条件:=MA1>REF(MA1,1) AND C>上轨;
开空条件:=MA1<REF(MA1,1) AND C<下轨;
平多条件:=C<MA1;
平空条件:=C>MA1;
//交易系统
SELL(平多条件 AND HOLDING>0,手数,MARKET);
SELLSHORT(平空条件 AND HOLDING<0,手数,MARKET);
BUY(开多条件 AND HOLDING<=0,手数,MARKET);
BUYSHORT(开空条件 AND HOLDING>=0,手数,MARKET);
第一个问题:为什么我只开,BUY(开多条件 AND HOLDING<=0,手数,MARKET);
BUYSHORT(开空条件 AND HOLDING>=0,手数,MARKET);就是我把开空和平空(SELL(平多条件 AND HOLDING>0,手数,MARKET);
SELLSHORT(平空条件 AND HOLDING<0,手数,MARKET)信号删除掉,那么在图表上,就没有显示出买多卖空信号了呢?请问BUY、BUYSHORT、
SELL、SELLSHORT这四个函数,要同时在程序里面出现吗,如果少一个,程序运行就信号就不正确了吗?
第二个问题:我把上面的程序SELL和BUY这个两个函数对换一下,写成BUY(平多条件 AND HOLDING>0,手数,MARKET);
SELL(开多条件 AND HOLDING<=0,手数,MARKET);整个程序运行起来,连信号都没有了,想不明白,请解释一下?
希望大家给个答案,谢谢了
金字塔买卖顺序是有固定的,你那样写有可能会造成有部分下单语句不触发
要这样写才可以
SELLSHORT(平空条件 AND HOLDING<0,手数,MARKET);
BUY(开多条件 AND HOLDING<=0,手数,MARKET);
SELL(平多条件 AND HOLDING>0,手数,MARKET);
BUYSHORT(开空条件 AND HOLDING>=0,手数,MARKET);