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

全局变量写法 在买多的情况下正确,卖空时错误,请问为什么 [开拓者 TB]

  • 咨询内容:   小米,求帮助!
              我写了段程序,想以 建仓第二天的开盘价为我的止盈止损参考价。
             我以同样的写法在买多止盈止损上都没有问题,唯独卖空止损总是 开平仓同时出现, 明显出现错误。而且我也用过entryprice去代替 openafter, 所有的止损止盈都没有问题。
              查了好久也没有查到原因,请小米救救5555!


                 if (MACD<0)
             sellshort(position,close);

            if (GetGlobalVar(0)==InvalidNumeric)  SetGlobalVar(0,0);

                      
            if (barssinceentry==1)
             {
                     openafter=open;
              SetGlobalVar(0,openafter);  //设建仓后第二天的开盘价为openafter, 定义为全局变量。
              }

             else if (barssinceentry>=1)
              openafter=GetGlobalVar(0);
             
            If( barssinceentry <=1)
          {
                    HighestAfterEntry = Close;
                     LowestAfterEntry = Close;
            
               If(MarketPosition <> 0)
                {
                 HighestAfterEntry = Max(HighestAfterEntry,openafter);   // 开仓的Bar,将开仓价和当时的收盘价的较大值保留到HighestAfterEntry
                 LowestAfterEntry = Min(LowestAfterEntry,openafter);     // 开仓的Bar,将开仓价和当时的收盘价的较小值保留到LowestAfterEntry
                  }
       
              }else if (barssinceentry>1)
         {
                 HighestAfterEntry = Max(HighestAfterEntry,High); // 记录下当前Bar的最高点,用于下一个Bar的跟踪止损判断
             LowestAfterEntry = Min(LowestAfterEntry,Low);    // 记录下当前Bar的最低点,用于下一个Bar的跟踪止损判断
         }


                if (MarketPosition==-1) //如空仓
        {
               
               if ( high>= openafter*(1.05) and buytocovercondition1==false  )
               
               {   myexitprice= openafter*(1.05);
               
              If( date<>entrydate and Open>MyExitPrice) MyExitPrice = Open;//挑空低开就取开盘价
               
               BuyToCover(0, myexitprice);}
             else if (buytocovercondition1)
                    {
                                 BuyToCover(0,Open);
            }
              }

            
            END

     

  • TB技术人员: 没细看,开仓那个bar: LowestAfterEntry = Min(LowestAfterEntry,openafter);,openafter为0,lowestafterentry后面一直为0

 

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

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


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

相关文章

    没有相关内容