公式不通过,怎么调整

Params Numeric NT(55); //跨周期参数 Numeric TT(5); //ATR倍数 Numeric XX(2); //偏移周期 Numeric TRS(50); //移动幅度 Numeric Lots(1);Vars Series<Numeric> atr2; Series<Numeric> dev; Series<Numeric> highPrice; Series<Numeric> lowPrice; Series<Numeric> highma; Series<Numeric> lowma; Series<Numeric> nextTrend; Series<Numeric> maxLowPrice; Series<Numeric> trend; Series<Numeric> minHighPrice; Series<Numeric> up; Series<Numeric> down; Series<Numeric> arrowUp; Series<Numeric> arrowDown; Series<Numeric> atrLow; Series<Numeric> atrHigh; Series<Numeric> ht; Series<Bool> buySignal; Series<Bool> sellSignal; Series<Numeric> fsDonchianHi; // 唐奇安通道上轨,延后1个Bar,长周期 Series<Numeric> fsDonchianLo; // 唐奇安通道下轨,延后1个Bar,长周期 Series<Bool> Dcond_outTrs; Series<Bool> Kcond_outTrs; Series<Bool> SendOrderThisBar(False); Series<Numeric> out_range; Series<Numeric> liQKA; Series<Numeric> DliqPoint; Series<Numeric> KliqPoint; Series<Numeric> HighAfterEntry; Series<Numeric> LowAfterEntry; Series<Numeric> barcoutN; Series<Numeric> Sk1; Series<Bool> con_buy; Series<Bool> con_sell; Series<Numeric> MACDValue5; Numeric AvgMACD5; Series<Numeric> MACDDiff5; Series<Numeric> ntMA;Events onBar(ArrayRef<Integer> indexs) { //跨周期MACD MACDValue5 = MinsXAverage(NT, Close, 12 ) - MinsXAverage(NT, Close, 26 ); AvgMACD5 = MinsXAverage(NT,MACDValue5,9); MACDDiff5 = MACDValue5 - AvgMACD5; //PlotNumeric(\"MACDDiff5\",MACDDiff5); ntMA = MinsXAverage(NT,C,180); PlotNumeric(\"ntMA\",ntMA); If(BarStatus == 0) { out_range=TRS; } //记录开仓后高低点 If(BarsSinceentry == 0) { HighAfterEntry = High; LowAfterEntry = Low; }else { HighAfterEntry = Min(HighAfterEntry,High); // 空头止损,更新最低的最高价 LowAfterEntry = Max(LowAfterEntry,Low); // 多头止损,更新最高的最低价 } fsDonchianHi = HighestFC(C[1],20); fsDonchianLo = LowestFC(C[1],20); atr2 = AvgTrueRange(100)/2; dev = TT*atr2; highPrice = high[XX]; lowPrice = low[XX]; highma = sma(high, XX); lowma = sma(low, XX); if (nextTrend == 1) { maxLowPrice=max(lowPrice,maxLowPrice); if (highma < maxLowPrice and close < low[1]) { trend= 1; nextTrend = 0; minHighPrice = highPrice; } } else { minHighPrice=min(highPrice, minHighPrice); if (lowma > minHighPrice and close > high[1]) { trend = 0; nextTrend = 1; maxLowPrice = lowPrice; } } if (trend == 0) { if (trend[1] != 0) { up= down[1]; arrowUp= up - atr2; } else { up = max(maxLowPrice, up[1]); } atrHigh= up + dev; atrLow= up - dev; } else { if (trend[1] != 1) { down= up[1]; arrowDown= down + atr2; } else { down= min(minHighPrice, down[1]); } atrHigh= down + dev; atrLow= down - dev; } ht = IIF(trend == 0 ,up ,down); buySignal = arrowUp>0 and (trend == 0 and trend[1] == 1); sellSignal = arrowDown>0 and (trend == 1 and trend[1] == 0); //PlotNumeric(\"atrHigh\",atrHigh); //PlotNumeric(\"atrLow\",atrLow); if (trend[1]==0 ) { If(MarketPosition==0 and H>=atrHigh[1] and MACDDiff5[1]>0 and C[1]>ntMA[1] ) { Buy(Lots,Max(open,atrHigh[1])); SendOrderThisBar=True; out_range=TRS; LowAfterEntry = EntryPrice;//保存多头开仓价格; } PlotNumeric(\"ht\",ht,ht,Red); }Else If(trend[1]==1 ) { If(MarketPosition==0 and L<=atrLow[1] and MACDDiff5[1]<0 and C[1]<ntMA[1]) { SellShort(Lots,Min(open,atrLow[1])); SendOrderThisBar=True; out_range=TRS; HighAfterEntry = EntryPrice;//保存空头开仓价格; } PlotNumeric(\"ht\",ht,ht,Green); } // 长周期突破调节出场参数,变化幅度收敛,保住更多利润 If(MarketPosition <> 0) { Dcond_outTrs=CrossOver(C[1],fsDonchianHi[1]); Commentary(\"fsDonchianHi=\"+Text(fsDonchianHi)); If(Dcond_outTrs and SendOrderThisBar==True) { out_range=TRS*0.8; SendOrderThisBar=False; } Kcond_outTrs=CrossUnder(C[1],fsDonchianLo[1]); Commentary(\"fsDonchianLo=\"+Text(fsDonchianLo)); If(Kcond_outTrs and SendOrderThisBar==True) { out_range=TRS*0.8; SendOrderThisBar=False; } } Commentary(\"CurrentEntries = \" + Text(CurrentEntries)); Commentary(\"TRS\"+Text(TRS)); Commentary(\"out_range\"+Text(out_range)); //移动出场 If(MarketPosition == 0) // 自适应参数默认值; { liQKA = 1; barcoutN=0; }Else if(BarsSinceEntry>barcoutN) //当有持仓的情况下,liQKA会随着持仓时间的增加而逐渐减小,即止损止盈幅度乘数的减少。 { liQKA = liQKA - 0.1; liQKA = Max(liQKA,0.3); barcoutN=BarsSinceEntry; } if(MarketPosition>0) { DliqPoint = LowAfterEntry - (Open*out_range/1000)*liQKA; //经过计算,这根吊灯出场线会随着持仓时间的增加变的越来越敏感; } if(MarketPosition<0) { KliqPoint = HighAfterEntry + (Open*out_range/1000)*liQKA; //经过计算,这根吊灯出场线会随着持仓时间的增加变的越来越敏感; } // 画线 Commentary(\"(Open*out_range/1000)*liQKA\"+text((Open*out_range/1000)*liQKA)); Commentary(\"(Open*TRS/1000)*liQKA\"+text((Open*TRS/1000)*liQKA)); //If(DliqPoint[1]>0)PlotNumeric(\"DliqPoint[1]\",DliqPoint[1]); //If(KliqPoint[1]>0)PlotNumeric(\"KliqPoint[1]\",KliqPoint[1]); // 持有多单时 If(MarketPosition >0 And BarsSinceEntry >0 And Low <= DliqPoint[1] and DliqPoint[1]>0 and DliqPoint>0 and BarsSinceEntry>0) { Sell(0,Min(Open,DliqPoint[1])); barcoutN=0; DliqPoint=0; } // 持有空单时 If(MarketPosition <0 And BarsSinceEntry >0 And High >= KliqPoint[1] and KliqPoint[1]>0 and KliqPoint>0 and BarsSinceEntry>0) { BuyToCover(0,Max(Open,KliqPoint[1])); KliqPoint=0; barcoutN=0; } }

没编译成功

报什么错

回复:无法运行

回复:无法运行是什么意思听不懂啊,要么没编译成功,要么编译成功但是代码逻辑不对

回复:就是有问题,不知是语法,还是其他,编译不了