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

价格在开仓bar内来回震荡,跟踪止损怎么做? [开拓者 TB]

  • 咨询内容: 本帖最后由 myvars 于 2016-4-28 12:15 编辑

      价格在开仓bar内来回震荡,跟踪止损怎么做?

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

    上面这段是TB系统帮助里边的跟踪止损的代码,按此代码运行,因忽略了开仓bar最高价和最低价的获取和判断,会有点问题,
    但实际情况开仓bar对交易来说是很重要的bar。

    问题:
    1、因忽略开仓bar,开仓bar未进行止损;
    2、开仓bar之后的K线,获取的最高价是开仓bar的开仓价AvgEntryPrice,而不是真实的开仓bar的最高价。
    现在以多单为例,设置50个点的止损:
    按上面的代码执行,则可能会出现这样的情况,
    如果开仓bar的开盘价open是2990,以开仓价AvgEntryPrice:3000买入建多仓,
    接下来,价格先上升到本条bar的最高价high:3080,然后回落到最低价low:2980。收盘价close:2985

    第二条bar的open:2985,价格持续下落,那么第二条K线会以AvgEntryPrice:3000作为最高价进行止损判断,要到2950才会做出止损动作。

    这样会导致原来应该在3030处出仓止损,变成了到2950才止损。由原本可以盈利成亏损。


    3、假如解决了可以在开仓bar上的3030出实现止损,那么在开仓bar,如果价格一直在开仓价和止损价范围来回震荡(2980~3060),系统是否会一直开仓止损、开仓止损、开仓止损?


    有看到的朋友请帮忙指点一下,谢谢!

    附图说明:
    1为开仓点;
    2应该为止损处;
    3是实际止损处。

     

  • TB技术人员: 1,是的,没有在开仓bar上做止损。因为历史K线上是没法判断最高价与开仓价先后出现的顺序 ,不好判断。只能放到下一个bar去平仓。
    2,如上,没法判断最高价是在开仓前出现的还是开仓后出来的。。如果是之前 出来的,此最高价就不能做为开仓后最高价了。
    3,TB的机制里,同一个bar上的同一个信号只会委托交易一次,不会反复开平仓。

     

  • TB客服: 自己重新定义一个开仓价变量,把最后开仓价赋值给他,代替AvgEntryPrice,就能实现点2止损了。

 

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

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


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

相关文章

    没有相关内容