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

标题: 如何设置同一个K线上做交易后不能同时再止损 [打印本页]

作者: visions111    时间: 2019-5-14 09:37:30     标题: 如何设置同一个K线上做交易后不能同时再止损

我是通过设置当前bar的初始布尔值为false,  做buy或sellshort交易后变成true,
然后止损的条件是当前bar的布尔值还是初始值false时,
但是我编译成功后,还是在K线图中看到了同一个K线上出现sellshort和止损的情况。
这是该如何处理呢?

Vars
      Numeric PercentOfRange(0.8);
      Numeric UpperLine;
      Numeric LowerLine;
      Numeric preDAYRange;
          Numeric stopLine1;
          Numeric stopLine2;
          Numeric stopPrice;
          Numeric myPrice;

          Bool timerange;
          Bool THISbar(False);设置当前bar初始值布尔变量为false
          
        
Begin
      timeRange = time>0.0900 && time<0.1400;
      preDAYRange = HighD[1]-LowD[1];
      
          UpperLine = Open+preDAYRange*PercentOfRange;

          LowerLine = Open-preDAYRange*PercentOfRange;
          stopPrice = AvgEntryPrice;//平均建仓价格
          stopLine1 = stopPrice*1.01;
      stopLine2 = stopPrice*0.99;
      If(MarketPosition==0 &&timeRange&& High>UpperLine){
          
             myPrice=UpperLine;
                 If(open>myprice){myprice = open;}
                 
             Buy(1,myprice);
             THISbar==True;//做交易后当前bar布尔值变成true
          }
          If(marketposition==1&&THISbar==false){//当前bar未做交易时布尔值为初始值false
         If(low<=stopLine2){
            Sell(0,Min(Low,stopLine2));//多头止损
         }
          }
          
          
          
          
          If(MarketPosition==0 && timeRange&&  Low<LowerLine){
          
             myprice=lowerLine;
                 If(open<myprice){myprice = open;}
                 
             SellShort(1,myprice);
              THISbar==True;//做交易后当前bar布尔值变成true
          }
          If(marketposition==-1&&THISbar==false){//当前bar未做交易时布尔值为初始值false
         If(High>=stopLine1){
            BuyToCover(0,Max(High,stopLine1));//空头止损
         }
          }




作者: 小米    时间: 2019-5-14 10:50:06

1,求昨天的highD,lowD是使用highD(1),lowD(1).而不是使用回溯的[1]

2,将sell ,buytovcover这样的止损语句放到开仓语句的前面




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