各位老师帮看下,我的代码写完后,主副在一起,是错在哪里了

Params Numeric Length(20); //周期 Numeric Offset(2); Numeric Length1(5); Numeric Length2(10); Numeric Length3(53); Numeric Lots(1); Numeric FastLength(12); Numeric SlowLength(26); Numeric MACDLength(9); //标准差倍数 //此处添加参数Vars Numeric UpLine; //上轨 Numeric DownLine; //下轨 Series<Numeric> MidLine; //中间线 Numeric Band; series<Numeric> ma1; series<Numeric> ma2; series<Numeric> ma3; series<Bool> CrossUp; series<Bool> CrossDown; series<Bool> CrossUp1; series<Bool> CrossDown1; Numeric MACDDiff; Numeric AvgMACD; Numeric MACDValue; //此处添加变量//此处添加变量Defs //此处添加策略函数 Events OnReady() { Range[0:DataSourceSize() - 1] { setPlotOption("MACDDiff", "begin-bar", SlowLength); setPlotOption("MACDDEA", "begin-bar", SlowLength + MACDLength); setPlotOption("MACD", "begin-bar", SlowLength + MACDLength); } }//此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次 OnInit() {SetBackBarMaxCount(1+Length); Range[0:DataSourceSize() - 1] { setPlotOption("MidLine", "begin-bar", Length); setPlotOption("UpLine", "begin-bar", Length); setPlotOption("DownLine", "begin-bar", Length); } } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs) {Range[0:DataSourceSize() - 1] { MidLine = AverageFC(Close, Length); Band = StandardDev(Close, Length, 2); UpLine = MidLine + Offset * Band; DownLine = MidLine - Offset * Band; PlotNumeric("UpLine", UpLine); PlotNumeric("DownLine", DownLine); PlotNumeric("MidLine", MidLine); } ma1=Average(Close,length1); ma2=Average(Close,length2); ma3=Average(Close,length3); PlotNumeric("ma1", ma1); PlotNumeric("ma2", ma2); PlotNumeric("ma3", ma3); CrossUp = CrossOver(ma1[1],MidLine[1]) ; CrossUp1 = CrossOver(ma1[1],MidLine[1]) ; CrossDown = CrossUnder(ma1[1],MidLine[1]) ; CrossDown1 = CrossUnder(ma1[1],MidLine[1]) ; Range[0:DataSourceSize() - 1] { MACDDiff = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ; AvgMACD = XAverage(MACDDiff,MACDLength); MACDValue = 2 * (MACDDiff - AvgMACD); PlotNumeric("MACDDiff",MACDDiff); PlotNumeric("MACDDEA",AvgMACD); If (MACDValue >= 0) PlotAuto("MACD",MACDValue,0,Color9(),Enum_Bar); Else PlotAuto("MACD",MACDValue,0,Color10(),Enum_Bar); PlotNumeric("零线",0); } If(CrossUp And MarketPosition<>1 And ma2[1]>=ma3[1] ) { Buy(Lots,Open); } If( CrossDown1 And MarketPosition==1 ) Sell(0,Open); If(CrossDown And MarketPosition<>-1 And ma2[1]<=ma3[1] ) SellShort(Lots,open); If(CrossUp1 And MarketPosition==-1 ) BuyToCover(0,Open); }

定义画笔。可以看一下视频:https://video.tbquant.net/video?id=video408

回复:厉害

回复:谢谢 看完你推荐的视频,已解决问题