您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者知识>>正文内容

有请小米,网校老师介绍的跟踪止损,加载后只有开多平多 [开拓者 TB]

  • 咨询内容: 本帖最后由 abc123wh 于 2014-4-25 21:09 编辑

    按照老师讲解的跟踪止盈的公式抄了一遍,然后加载到图标上发现只有做多和平多的信号,但是公式里面有开空的语句,不知道为什么不能执行,请斑竹看看问题在什么地方?

    Params
          Numeric length1(10);
              Numeric length2(20);
              Numeric lots(1);
              Numeric ATRlength(20);
              Numeric trailstop(2);
    Vars
          NumericSeries ma1;
              NumericSeries ma2;
              NumericSeries ATRvalue;
              NumericSeries HIAfterEnetry;
              NumericSeries Loafterentry;
              Numeric stopline;
              BoolSeries blongstoped(False);
              BoolSeries bshortstoped(false);
    Begin
         ATRvalue=AvgTrueRange(atrlength);
             ma1=AverageFC(close,length1);
             ma2=AverageFC(close,length2);
             PlotNumeric ("ma1",ma1);
             PlotNumeric ("ma2",ma2);
             if (!blongstoped and MarketPosition<>1 and ma1[1]>ma2[1])
             {
                      Buy(lots,open);
                              bshortstoped=False;
                              
            }
            if (!bshortstoped And MarketPosition<>-1 and ma1[1]<ma2[1])

            {
                       SellShort(lots,open);
                               blongstoped=False;
            }
            If(blongstoped And MarketPosition<>1 and High>=HIAfterEnetry)
            {
                       buy(lots,Max(open,HIAfterEnetry));
                               blongstoped=False;
            }
            If (bshortstoped and MarketPosition<>-1 And low <=Loafterentry)
            {
                            SellShort(lots,Min(open,Loafterentry));
                            bshortstoped=False;
            }
            if (MarketPosition==1 and BarsSinceEntry==0) HIAfterEnetry=High;
            if (MarketPosition==1 and BarsSinceEntry>=1)HIAfterEnetry=max(HIAfterEnetry,High);
            If (MarketPosition==-1 and BarsSinceEntry==0)Loafterentry=Low;
            if (MarketPosition==-1 and BarsSinceEntry>=1)
                              Loafterentry=Min(Loafterentry,Low);
            if (BarsSinceEntry>0 and MarketPosition==1)
            {
                                 stopline=HIAfterEnetry[1]-trailstop*ATRvalue[1];
                                     If(low<=stopline)
                                     {
                                          Sell(0,min(open,stopline));
                                              blongstoped=True;
                                    }
            }Else if (BarsSinceEntry>0 and MarketPosition==-1);
            {           
                        stopline=Loafterentry[1]+trailstop*ATRvalue[1];
                                    If(high>=stopline)
                                    {
                                             BuyToCover(0,Max(open,stopline));
                                                     bshortstoped=True;
                                }
            }
            End
    下面是截图

    222222222222222222222.jpg (98.68 KB, 下载次数: 0) 2014-4-25 11:06:31 上传

     

  • TB技术人员: 问题在于倒数第十行代码里,最后边多 了一个分号。去掉那个if( )后面的分号即可。

     

  • TB客服:
    小米 发表于 2014-4-25 13:17
    问题在于倒数第十行代码里,最后边多 了一个分号。去掉那个if( )后面的分号即可。 ...

    3q

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 1145508240  有需要帮忙请点击这里留言!!!进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容