设为首页收藏本站

 找回密码
 注册
查看: 824|回复: 1
打印 上一主题 下一主题

如何设置同一个K线上做交易后不能同时再止损 [复制链接]

Rank: 2

精华
0
UID
275910
积分
54
帖子
34
主题
16
阅读权限
30
注册时间
2019-2-22
最后登录
2020-4-7
跳转到指定楼层
1#
发表于 2019-5-14 09:37:30 |只看该作者 |倒序浏览
我是通过设置当前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));//空头止损
         }
          }



Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2019-5-14 10:50:06 |只看该作者
1,求昨天的highD,lowD是使用highD(1),lowD(1).而不是使用回溯的[1]

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-4-20 10:11

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部