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

如何编写止损的公式? - TradeBlazer公式 [开拓者 TB]

  • 咨询内容: 比如说开仓过后,如果亏损超过1%,则自动平仓离场。这个公式应该怎么编写?

     

  • TB技术人员: 回复 1# sepwolves

    你好,请参考帮助文档中:公式系统 - TradeBlazer公式的使用 - 交易策略进阶
    以下是部分参考代码。


    止赢止损
    模板以止赢30跳,止损20跳为例,也可以转换为开仓价格的百分比值,或其任何设置的变量进行处理。

    Vars
        Numeric MinPoint;           // 一个最小变动单位,也就是一跳
        Numeric MyEntryPrice;       // 开仓价格,本例是开仓均价,也可根据需要设置为某次入场的价格
        Numeric TakeProfitSet(30);  // 止赢设置
        Numeric StopLossSet(20);    // 止损设置
        Numeric MyExitPrice;        // 平仓价格
    Begin
        ...
        MinPoint = MinMove*PriceScale;
        MyEntryPrice = AvgEntryPrice;
        If(MarketPosition==1) // 有多仓的情况
        {
            If(High >= MyEntryPrice + TakeProfitSet*MinPoint)   // 止赢条件表达式
            {
                MyExitPrice = MyEntryPrice + TakeProfitSet*MinPoint;
                If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                Sell(0,MyExitPrice);
            }else if(Low <= MyEntryPrice - StopLossSet*MinPoint)// 止损条件表达式
            {
                MyExitPrice = MyEntryPrice - StopLossSet*MinPoint;
                If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                Sell(0,MyExitPrice);
            }
        }else if(MarketPosition==-1) // 有空仓的情况
        {
            If(Low <= MyEntryPrice - TakeProfitSet*MinPoint)    // 止赢条件表达式
            {
                MyExitPrice = MyEntryPrice - TakeProfitSet*MinPoint;
                If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                BuyToCover(0,MyExitPrice);
            }else if(High >= MyEntryPrice + StopLossSet*MinPoint)// 止损条件表达式
            {
                MyExitPrice = MyEntryPrice + StopLossSet*MinPoint;
                If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发,则用开盘价代替
                BuyToCover(0,MyExitPrice);
            }
        }
        ...
    End

    注意事项:

    因无法确认开仓Bar最高/低价和开仓价的先后顺序,因此以上写法一般忽略开仓Bar的处理。

    如果某个Bar最高/低价相差很大,可能出现止赢止损同时满足的情况,这种情况下需要切换到更小的周期进行交易,或者扩大止赢/损幅度。

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

相关文章

    没有相关内容