开拓者期货期权程序化系统交易论坛

标题: 新手,老师求解一个 太多的调用参数的错误解决办法 [打印本页]

作者: bbqqcc6888    时间: 2016-6-8 14:11:45     标题: 新手,老师求解一个 太多的调用参数的错误解决办法

Params
    Numeric atrmult(4.0);
        Numeric length(26);
        Numeric stddev(2);
        Numeric P(2);
        Numeric N(19);
        Numeric STOPER(20);
Vars
        Numeric Piv(0);
        Numeric zl1(0);
        Numeric zl2(0);
        Numeric zc1(0);
        Numeric zc2(0);
        Numeric BBtop(0);
        Numeric BBBot(0);
        NumericSeries HighestAfterEntry;        
    NumericSeries LowestAfterEntry;

       
Begin


Piv=(highd(1)+lowd(1)+closed(1))/3;
zl1=2*piv-LowD(1);
zl2=piv+HighD(1)-LowD(1);
zc1=2*piv-HighD(1);
zc2=piv-HighD(1)*LowD(1);
BBTop=Average(close,length)+stddev*StandardDev(close,length,2);
BBBot=Average(close,length)-stddev*StandardDev(close,length,2);
PlotNumeric("zl1",zl1);
PlotNumeric("zc1",zc1);
PlotNumeric("BBTop",BBTop);
PlotNumeric("BBBot",BBBot);
        //交易开仓主体
        if (close(1)<(zl1+P) And close(1)>(zc1-P))
        {
           if (CrossOver(close(1),BBBot))
           {Buy(1,open) and Commentary("BOLL多");}
           if (CrossUnder(close(1),BBTop))
           {Sell(1,open)and Commentary("BOLL空");}
        }
       
       
        if (CrossOver(close(1),zl1+p))
        {Buy(1,open) and Commentary("突破多");}
       
        if (Crossunder(close(1),zc1-p))
        {Sellshort(1,open) and Commentary("突破空");}
If(MarketPosition == 1 And BarsSinceEntry >= 1)
   {
   if (Crossunder(close(1),zl1-p))
        {Sell(1,open) and Commentary("多平1");}
   }

If(MarketPosition == -1 And BarsSinceEntry >= 1)
   {
   if (CrossOver(close(1),zc1+p))
        {BuyToCover(1,open) and Commentary("空平1");}
   }       
       

//平仓主体
If(BarsSinceentry == 0)
    {
        HighestAfterEntry = Close;
        LowestAfterEntry = Close;
        If(MarketPosition <> 0)
        {
            HighestAfterEntry = Max(HighestAfterEntry,AvgEntryPrice);   // 开仓的Bar,将开仓价和当时的收盘价的较大值保留到HighestAfterEntry
            LowestAfterEntry = Min(LowestAfterEntry,AvgEntryPrice);     // 开仓的Bar,将开仓价和当时的收盘价的较小值保留到LowestAfterEntry
        }
    }else
    {
        HighestAfterEntry = Max(HighestAfterEntry,High); // 记录下当前Bar的最高点,用于下一个Bar的跟踪止损判断
        LowestAfterEntry = Min(LowestAfterEntry,Low);    // 记录下当前Bar的最低点,用于下一个Bar的跟踪止损判断
    }
If (MarketPosition == 1 And BarsSinceEntry >= 1)
    {
        if (Close(1)<(HighestAfterEntry-AvgTrueRange(N)*atrmult))
                {Sell(1,open) and Commentary("ATR多平");}
        }
If (MarketPosition == -1 And BarsSinceEntry >= 1)
    {
       if (Close(1)>(LowestAfterEntry+AvgTrueRange(N)*atrmult))
                {BuyToCover(1,open) and Commentary("ATR空平") ;}
        }

End
作者: bbqqcc6888    时间: 2016-6-8 14:11:59

红色字体段的错误




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2