设为首页收藏本站

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

为何指南的跟踪止损发出的交易价不是实时价格? [复制链接]

Rank: 1

精华
0
UID
205278
积分
6
帖子
4
主题
2
阅读权限
10
注册时间
2015-3-16
最后登录
2019-10-25
跳转到指定楼层
1#
发表于 2016-6-16 20:52:38 |只看该作者 |倒序浏览
您好!我用指南的跟踪止损源码,发现一个问题:譬如做空,就是同根bar,突然上涨发出了止损的指令,但却不是发出的目前的现价价位,而是这跟bar的开盘价,就导致无法成交。请问怎么处理呢?跪求版主回复啊!源码如下:
//跟踪止损
          //
          If(BarsSinceentry == 0)
      {
          HighestAfterEntry        =        Close;
          LowestAfterEntry        =        Close;
          If(MarketPosition <> 0)
          {
              HighestAfterEntry        =        Max(HighestAfterEntry, myEntryPrice);   // 开仓的Bar,将开仓价和当时的收盘价的较大值保留到HighestAfterEntry
              LowestAfterEntry        =        Min(LowestAfterEntry, myEntryPrice);     // 开仓的Bar,将开仓价和当时的收盘价的较小值保留到LowestAfterEntry
          }
      }else
      {
          HighestAfterEntry        =        Max(HighestAfterEntry, High); // 记录下当前Bar的最高点,用于下一个Bar的跟踪止损判断
          LowestAfterEntry        =        Min(LowestAfterEntry, Low);    // 记录下当前Bar的最低点,用于下一个Bar的跟踪止损判断
      }

         
     If(MarketPosition==1) // 有多仓的情况
      {
          If(HighestAfterEntry[1] >= MyEntryPrice + TrailingStart2 And BarsSinceEntry > 0)   // 第二级跟踪止损的条件表达式
          {
              If(Low <= HighestAfterEntry[1] - TrailingStop2 And BarsSinceEntry > 0)
              {
                  MyExitPrice = HighestAfterEntry[1] - TrailingStop2;
                  If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                  Sell(0,MyExitPrice);
                                  Commentary("多头跟踪止损");
              }
                  }else if(HighestAfterEntry[1] >= MyEntryPrice + TrailingStart1 And BarsSinceEntry > 0)// 第一级跟踪止损的条件表达式
          {
              If(Low <= HighestAfterEntry[1] - TrailingStop1 And BarsSinceEntry > 0)
              {
                  MyExitPrice = HighestAfterEntry[1] - TrailingStop1;
                  If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                  Sell(0,MyExitPrice);
                                  Commentary("多头跟踪止损");
              }

                  }else if(HighestAfterEntry[1] >= MyEntryPrice + TrailingStart0 And BarsSinceEntry > 0)// 第一级跟踪止损的条件表达式
          {
              If(Low <= HighestAfterEntry[1] - TrailingStop0 And BarsSinceEntry > 0)
              {
                  MyExitPrice = HighestAfterEntry[1] - TrailingStop0;
                  If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                  Sell(0,MyExitPrice);
                                  Commentary("多头跟踪止损");
              }
                  }else if(HighestAfterEntry[1] >= MyEntryPrice + TrailingStart4 And BarsSinceEntry > 0)// 第一级跟踪止损的条件表达式
          {
              If(Low <= HighestAfterEntry[1] - TrailingStop4 And BarsSinceEntry > 0)
              {
                  MyExitPrice = HighestAfterEntry[1] - TrailingStop4;
                  If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                  Sell(0,MyExitPrice);
                                  Commentary("多头跟踪止损");
              }
          }else if(Low <= MyEntryPrice - StopLossSet And BarsSinceEntry > 0)//可以在这里写上初始的止损处理
          {
              MyExitPrice = MyEntryPrice - StopLossSet;
              If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
              Sell(0,MyExitPrice);
                          Commentary("多头止损");
          }
      }else if(MarketPosition==-1) // 有空仓的情况
      {
          If(LowestAfterEntry[1] <= MyEntryPrice - TrailingStart2 And BarsSinceEntry > 0)   // 第二级跟踪止损的条件表达式
          {
              If(High >= LowestAfterEntry[1] + TrailingStop2 And BarsSinceEntry > 0)
              {
                  MyExitPrice = LowestAfterEntry[1] + TrailingStop2;
                  If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                  BuyToCover(0,MyExitPrice);
                                  Commentary("空头跟踪止损");
              }
                  }else if(LowestAfterEntry[1] <= MyEntryPrice - TrailingStart1 And BarsSinceEntry > 0)// 第一级跟踪止损的条件表达式
          {
              If(High >= LowestAfterEntry[1] + TrailingStop1 And BarsSinceEntry > 0)
              {
                  MyExitPrice = LowestAfterEntry[1] + TrailingStop1;
                  If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                  BuyToCover(0,MyExitPrice);
                                  Commentary("多头跟踪止损");
              }
                  }else if(LowestAfterEntry[1] <= MyEntryPrice - TrailingStart0 And BarsSinceEntry > 0)// 第一级跟踪止损的条件表达式
          {
              If(High >= LowestAfterEntry[1] + TrailingStop0 And BarsSinceEntry > 0)
              {
                  MyExitPrice = LowestAfterEntry[1] + TrailingStop0;
                  If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                  BuyToCover(0,MyExitPrice);
                                  Commentary("多头跟踪止损");
              }
                  }else if(LowestAfterEntry[1] <= MyEntryPrice - TrailingStart4 And BarsSinceEntry > 0)// 第一级跟踪止损的条件表达式
          {
              If(High >= LowestAfterEntry[1] + TrailingStop4 And BarsSinceEntry > 0)
              {
                  MyExitPrice = LowestAfterEntry[1] + TrailingStop4;
                  If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                  BuyToCover(0,MyExitPrice);
                                  Commentary("多头跟踪止损");
              }
          }else If(High >= MyEntryPrice + StopLossSet And BarsSinceEntry > 0)//可以在这里写上初始的止损处理
          {
              MyExitPrice = MyEntryPrice + StopLossSet;
              If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
              BuyToCover(0,MyExitPrice);
                          Commentary("空头止损");
          }
      }
End

Rank: 1

精华
0
UID
205278
积分
6
帖子
4
主题
2
阅读权限
10
注册时间
2015-3-16
最后登录
2019-10-25
2#
发表于 2016-6-17 10:11:42 |只看该作者
请问版主,这是否和我设置平仓条件有关,我的条件是上根bar收盘达到条件,则开盘价平仓。我需要在此基础上,增加跟踪止损,而且是以现价止损的,怎么处理呢?求回复!

使用道具 举报

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

bottom

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

GMT+8, 2024-5-21 05:39

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部