公式不通过,怎么调整

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;

   }

   }


公式编译的时候出现如下问题导致无法编译,请问该如何调整?
可以在公式里动态调整合约吗?
模拟帐号如何调整余额
量化看盘调整大小
老师怎么设置默认公式
大盘指数???怎么量化公式
求教关于调整移动均线的用法
商品插入公式怎么保存
公式A依赖公式B产生的Numeric数据如何传递,每个Bar都产生一个不通过全局变量传
公式怎么用onbar?

没编译成功

报什么错

无法运行

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

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