设为首页收藏本站

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

请教动态止盈的写法 [复制链接]

Rank: 5Rank: 5

精华
0
UID
32158
积分
731
帖子
176
主题
53
阅读权限
60
注册时间
2011-4-5
最后登录
2023-1-17
跳转到指定楼层
1#
发表于 2011-9-2 10:31:21 |只看该作者 |倒序浏览
思路:
假设波幅为K
当盈利>=3K,以2K止盈;
当盈利>=4K,以3K止盈;
当盈利>=5K,以4K止盈;
当盈利>=6K,以5K止盈;
……
当盈利>=nK,以(n-1)K止盈;

应该要用到 for循环

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

Rank: 5Rank: 5

精华
0
UID
32158
积分
731
帖子
176
主题
53
阅读权限
60
注册时间
2011-4-5
最后登录
2023-1-17
2#
发表于 2011-9-2 11:08:35 |只看该作者
求解——————————————————————
微信公众号:tuwening

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
2
UID
4130
积分
20901
帖子
6519
主题
17
阅读权限
200
注册时间
2009-4-15
最后登录
2019-4-12
3#
发表于 2011-9-2 15:18:02 |只看该作者
回复 2# jiaoyizhe


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

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
32158
积分
731
帖子
176
主题
53
阅读权限
60
注册时间
2011-4-5
最后登录
2023-1-17
4#
发表于 2011-9-5 19:59:27 |只看该作者
回复 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.         }
复制代码
微信公众号:tuwening

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
32158
积分
731
帖子
176
主题
53
阅读权限
60
注册时间
2011-4-5
最后登录
2023-1-17
5#
发表于 2011-9-8 11:36:16 |只看该作者
顶上去  求解
微信公众号:tuwening

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
85182
积分
849
帖子
302
主题
11
阅读权限
60
注册时间
2011-12-8
最后登录
2013-10-28
6#
发表于 2011-12-18 10:27:25 |只看该作者
谢谢你的模板  意思很明确  但是code里面逻辑是不是对的啊?
http://qpic.cn/NifLLplMk若能一切随它去,便世间自在人。
      ---Derivatives

使用道具 举报

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

bottom

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

GMT+8, 2024-5-10 08:53

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部