不按程序出信号,请大佬给看看
1,上一日收盘价大与五,十,二十日均线,以开盘价开多平空。2,上一日收盘价小于五,十,二十日均线,以开盘价开空平多。代码如下,输出的信号有很多不符合的,比如明明不满足条件,却给平多了。请老师给诊断一下。Params Numeric da(5); Numeric db(10); Numeric dc(20); Numeric ca(60); Numeric cb(120); Numeric cc(250); Vars Series<Numeric> MADA; Series<Numeric> MADB; Series<Numeric> MADC; Series<Numeric> MACA; Series<Numeric> MACB; Series<Numeric> MACC; Global Integer Sub; //记录是否订阅layers[2]行情的全局变量 Global Array<Integer> layers; //记录订阅BAR之后返回的图层号 Series<Bool> condition1; Series<Bool> condition2; Series<Bool> condition3; Series<Bool> condition4; EventsOnInit(){Sub = 0; } OnBar(ArrayRef<Integer> indexs) { MADA=Average(Close,da); MADB=Average(Close,db);MADC=Average(Close,dc); MACA=Average(Close,ca);MACB=Average(Close,cb);MACB=Average(Close,cc); condition1= C[1]>MADA[1] && C[1]>MADB[1] && C[1]>MADC[1]; condition3= C[1]<MADA[1] && C[1]<MADC[1] && C[1]<MADC[1]; condition2= C[1]<MADA[1] && C[1]<MADB[1] && C[1]<MADC[1]; condition4= C[1]>MADA[1] && C[1]>MADC[1] && C[1]>MADC[1]; If(MarketPosition!=1 And condition1){ Buy(1,Open); } If(MarketPosition==1 And condition2) {Sell(1,Open);} If(MarketPosition!=-1 And condition3){ SellShort(1,Open); } If(MarketPosition==-1 And condition4 ) {BuyToCover(1,Open);}}