求教老师帮忙看看策略编写出现严重错误
检查程序好几天,换了多种方式,也找不到问题所在,很是迷惑,恳请老师指导指导。我的程序代码策略逻辑:1、当macd五分钟周期水下空头排列;2、五分钟周期cci、rsi、w&r三个指标组合满足触发条件;3、一分钟周期cci、rsi、w&r三个指标组合满足触发条件;4、当一分钟cci数值上穿-105时触发买入开仓。 condmacd5=data1.MACDDiff<data1.AvgMACD and data1.AvgMACD<0;//macd五分钟周期水下空头排列cond5=data1.CCIAvg<-100 and data1.RSIValue<20 and data1.WRValue<20;//五分钟周期三个指标组合触发条件cond1=data0.CCIAvg[1]<-100 and data0.RSIValue[1]<20 and data0.WRValue[1]<20;//一分钟周期三个指标组合触发条件cond=cond1 and cond5 and condmacd5; a1==-105; bool shangchuan=CrossOver(data0.CCIAvg,a1); { If(MarketPosition ==0 and shangchuan and cond); Buy(1,Open); }If(MarketPosition <>0 And BarsSinceEntry > 2 And high >= EntryPrice + 50*MinMove*PriceScale ); { Sell(0,Open); } 程序运行时出现严重问题如下:l 信号闪烁,一分钟和五分钟每个bar都产生了开平仓;l condmacd5、cond5、cond1三个逻辑条件均没有限制住开平仓,相当于失效;l CrossOver(data0.CCIAvg,a1);也应该失效了。 换下面这种语句也是同样问题。 If(data1.MACDDiff<data1.AvgMACD and data1.AvgMACD<0); { If(data1.CCIAvg<-100 and data1.RSIValue<20 and data1.WRValue<20);//五分钟周期(触发条件) { If(data0.CCIAvg[1]<-100 and data0.RSIValue[1]<20 and data0.WRValue[1]<20);//一分钟周期(触发条件) SellSetup=True; } a1==-105; bool shangchuan=CrossOver(data0.CCIAvg,a1); { If(MarketPosition ==0 and shangchuan and SellSetup); Buy(1,Open); }