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

请教动态止盈的写法 - TradeBlazer公式 [开拓者 TB]

  • 咨询内容: 思路:
    假设波幅为K
    当盈利>=3K,以2K止盈;
    当盈利>=4K,以3K止盈;
    当盈利>=5K,以4K止盈;
    当盈利>=6K,以5K止盈;
    ……
    当盈利>=nK,以(n-1)K止盈;

    应该要用到 for循环

    自己套用公式开发指南写的总不理想,请高手赐教。

     

  • TB技术人员: 求解——————————————————————

     

  • TB客服: 回复 2# jiaoyizhe


    用几个if判断就可以了
    从比较难满足的条件开始,如果6k比较难满足,则先判断6k

     

  • 网友回复: 回复 3# lh948

    我仿照例子写的下面的公式有什么错误吗?(K为一定的幅度)
    要表达的意思是在赢利为nK时,以(n-1)K止赢。
    1.     If(MarketPosition==1) //  有多仓的情况
    2.      {
    3.                    If(HighestAfterEntry[1] >= MyEntryPrice + 7*K)            //  第五级跟踪止损的条件表达式
    4.           {
    5.                If(Low <= HighestAfterEntry[1] - 6*K)
    6.                {
    7.                     MyExitPrice = HighestAfterEntry[1] - 6*K;
    8.                      If(Open < MyExitPrice) MyExitPrice = Open;              //  如果该Bar开盘价有跳空触发,则用开盘价代替
    9.                     Sell(0,MyExitPrice);
    10.                }
    11.           }
    12.                   else
    13.              If(HighestAfterEntry[1] >= MyEntryPrice + 6*K)            //  第四级跟踪止损的条件表达式
    14.           {
    15.                If(Low <= HighestAfterEntry[1] - 5*K)
    16.                {
    17.                     MyExitPrice = HighestAfterEntry[1] - 5*K;
    18.                      If(Open < MyExitPrice) MyExitPrice = Open;              //  如果该Bar开盘价有跳空触发,则用开盘价代替
    19.                     Sell(0,MyExitPrice);
    20.                }
    21.           }
    22.                   else
    23.               If(HighestAfterEntry[1] >= MyEntryPrice + 5*K)            //  第三级跟踪止损的条件表达式
    24.           {
    25.                If(Low <= HighestAfterEntry[1] - 4*K)
    26.                {
    27.                     MyExitPrice = HighestAfterEntry[1] - 4*K;
    28.                      If(Open < MyExitPrice) MyExitPrice = Open;              //  如果该Bar开盘价有跳空触发,则用开盘价代替
    29.                     Sell(0,MyExitPrice);
    30.                }
    31.           }
    32.                   else
    33.           If(HighestAfterEntry[1] >= MyEntryPrice + 4*K)            //  第二级跟踪止损的条件表达式
    34.           {
    35.                If(Low <= HighestAfterEntry[1] - 3*K)
    36.                {
    37.                     MyExitPrice = HighestAfterEntry[1] - 3*K;
    38.                      If(Open < MyExitPrice) MyExitPrice = Open;              //  如果该Bar开盘价有跳空触发,则用开盘价代替
    39.                     Sell(0,MyExitPrice);
    40.                }
    41.           }
    42.                   else
    43.                   if(HighestAfterEntry[1] >= MyEntryPrice + 3*K)//         第一级跟踪止损的条件表达式
    44.           {
    45.                If(Low <= HighestAfterEntry[1] - 2*K)
    46.                {
    47.                     MyExitPrice = HighestAfterEntry[1] - 2*K;
    48.                      If(Open < MyExitPrice) MyExitPrice = Open;              //  如果该Bar开盘价有跳空触发,则用开盘价代替
    49.                     Sell(0,MyExitPrice);
    50.                 }
    51.           }
    52.             else
    53.                 If(HighestAfterEntry[1] >= MyEntryPrice + 2*K)//         第零级跟踪止损的条件表达式
    54.           {
    55.                If(Low <= HighestAfterEntry[1] - K)
    56.                {
    57.                     MyExitPrice = HighestAfterEntry[1] - K;
    58.                      If(Open < MyExitPrice) MyExitPrice = Open;              //  如果该Bar开盘价有跳空触发,则用开盘价代替
    59.                     Sell(0,MyExitPrice);
    60.                 }
    61.           }
    62.                   else
    63.                   if(Low <= MyEntryPrice - K)//可以在这里写上初始的止损处理
    64.           {
    65.                MyExitPrice = MyEntryPrice - K;
    66.                 If(Open < MyExitPrice) MyExitPrice = Open;               //  如果该Bar开盘价有跳空触发,则用开盘价代替
    67.                Sell(0,MyExitPrice);
    68.           }
    69.      }
    70.          else
    71.          if(MarketPosition==-1) //  有空仓的情况
    72.      {
    73.              If(LowestAfterEntry[1] <= MyEntryPrice - 7*K)             // 第五级跟踪止损的条件表达式
    74.           {
    75.                 If(High >= LowestAfterEntry[1] + 6*K)
    76.                {
    77.                      MyExitPrice = LowestAfterEntry[1] + 6*K;
    78.                      If(Open > MyExitPrice) MyExitPrice = Open;               //  如果该Bar开盘价有跳空触发,则用开盘价代替
    79.                      BuyToCover(0,MyExitPrice);
    80.                }
    81.           }
    82.                   else
    83.                    If(LowestAfterEntry[1] <= MyEntryPrice - 6*K)             // 第四级跟踪止损的条件表达式
    84.           {
    85.                 If(High >= LowestAfterEntry[1] + 5*K)
    86.                {
    87.                      MyExitPrice = LowestAfterEntry[1] + 5*K;
    88.                      If(Open > MyExitPrice) MyExitPrice = Open;               //  如果该Bar开盘价有跳空触发,则用开盘价代替
    89.                      BuyToCover(0,MyExitPrice);
    90.                }
    91.           }
    92.                   else
    93.                If(LowestAfterEntry[1] <= MyEntryPrice - 5*K)             // 第三级跟踪止损的条件表达式
    94.           {
    95.                 If(High >= LowestAfterEntry[1] + 4*K)
    96.                {
    97.                      MyExitPrice = LowestAfterEntry[1] + 4*K;
    98.                      If(Open > MyExitPrice) MyExitPrice = Open;               //  如果该Bar开盘价有跳空触发,则用开盘价代替
    99.                      BuyToCover(0,MyExitPrice);
    100.                }
    101.           }
    102.                   else
    103.           If(LowestAfterEntry[1] <= MyEntryPrice - 4*K)             // 第二级跟踪止损的条件表达式
    104.           {
    105.                 If(High >= LowestAfterEntry[1] + 3*K)
    106.                {
    107.                      MyExitPrice = LowestAfterEntry[1] + 3*K;
    108.                      If(Open > MyExitPrice) MyExitPrice = Open;               //  如果该Bar开盘价有跳空触发,则用开盘价代替
    109.                      BuyToCover(0,MyExitPrice);
    110.                }
    111.           }
    112.                   else
    113.                   if(LowestAfterEntry[1] <= MyEntryPrice - 3*K)//  第一级跟踪止损的条件表达式
    114.           {
    115.                 If(High >= LowestAfterEntry[1] + 2*K)
    116.                {
    117.                      MyExitPrice = LowestAfterEntry[1] + 2*K;
    118.                      If(Open > MyExitPrice) MyExitPrice = Open;               // 如果该Bar开盘价有跳空触发,则用开盘价代替
    119.                      BuyToCover(0,MyExitPrice);
    120.                }
    121.           }
    122.          else
    123.               if(LowestAfterEntry[1] <= MyEntryPrice - 2*K)//  第零级跟踪止损的条件表达式
    124.           {
    125.                 If(High >= LowestAfterEntry[1] + K)
    126.                {
    127.                      MyExitPrice = LowestAfterEntry[1] + K;
    128.                      If(Open > MyExitPrice) MyExitPrice = Open;               // 如果该Bar开盘价有跳空触发,则用开盘价代替
    129.                      BuyToCover(0,MyExitPrice);
    130.                }
    131.           }
    132.                   else
    133.                   If(High >= MyEntryPrice + K)              //可以在这里写上初始的止损处理
    134.      {
    135.              MyExitPrice = MyEntryPrice + K;
    136.              If(Open > MyExitPrice) MyExitPrice = Open;     //  如果该Bar开盘价有跳空触发,则用开盘价代替
    137.              BuyToCover(0,MyExitPrice);
    138.         }
    复制代码

     

  • 网友回复: 顶上去  求解

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

相关文章

    没有相关内容