查看: 180|回复: 4

请教小米版主关于K线突破再创新高持有怎么写 [复制链接]

Rank: 1

精华
0
UID
286318
积分
16
帖子
11
主题
5
阅读权限
10
注册时间
2019-12-1
最后登录
2020-4-24
发表于 2020-3-28 11:35:32 |显示全部楼层
k线区域按时间顺序从左向右共由5根k线组成, 最左边的k线标号为5, 如果3号k线收盘价高于5号k线最高点, 开多仓持有,如果2号1号未创5根K线新高则平仓,请教下TB里面这个策略怎么写

Rank: 3Rank: 3

精华
0
UID
110114
积分
223
帖子
159
主题
16
阅读权限
40
注册时间
2012-4-20
最后登录
2020-6-5
发表于 2020-3-28 12:49:11 |显示全部楼层
没有验证,仅供参考。
  1. Numeric High5;

  2. If(BarStatus == 0)
  3. {
  4.         SetGlobalVar(1, 0);
  5.         SetGlobalVar(2, 0);
  6. }

  7. High5 = Highest(High[3], 3);

  8. If(GetGlobalVar(1) == 0 and Open[1] > High[3])
  9. {
  10.         Buy(1);
  11.         SetGlobalVar(1, Date+Time);
  12. }

  13. If(GetGlobalVar(1) > Date+Time)
  14. {
  15.         SetGlobalVar(1, Date+Time);
  16.         SetGlobalVar(2, GetGlobalVar(2)+1);
  17. }

  18. If(GetGlobalVar(2) == 2 and High[1] <= High5 and High[2] <= High5)
  19. {
  20.         Sell(1);
  21.         SetGlobalVar(1, 0);
  22.         SetGlobalVar(2, 0);
  23. }
复制代码

使用道具 举报

Rank: 1

精华
0
UID
286318
积分
16
帖子
11
主题
5
阅读权限
10
注册时间
2019-12-1
最后登录
2020-4-24
发表于 2020-3-28 16:41:13 |显示全部楼层
Yuen_Lee 发表于 2020-3-28 12:49
没有验证,仅供参考。

好像跟四周规则差不多,只是突破开仓后,需要一根BAR创新高来确认

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
110114
积分
223
帖子
159
主题
16
阅读权限
40
注册时间
2012-4-20
最后登录
2020-6-5
发表于 2020-3-30 09:51:17 |显示全部楼层
最后一个条件可以改成:
  1. If(GetGlobalVar(2) == 2)
  2. {
  3.         If(High[1] <= High5 and High[2] <= High5)
  4.         {
  5.         Sell(1);
  6.         SetGlobalVar(1, 0);
  7.         SetGlobalVar(2, 0);
  8.         }
  9.         Else
  10.                 SetGlobalVar(2, 3);        //当GetGlobalVar(2)为3时,一直持有多单
  11. }
复制代码

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
110114
积分
223
帖子
159
主题
16
阅读权限
40
注册时间
2012-4-20
最后登录
2020-6-5
发表于 2020-3-31 10:31:25 |显示全部楼层
本帖最后由 Yuen_Lee 于 2020-4-1 09:11 编辑

加了注释。
  1. Numeric High5;

  2. If(BarStatus == 0)
  3. {
  4.         SetGlobalVar(1, 0);
  5.         SetGlobalVar(2, 0);
  6. }

  7. // 5根K线中K线3~5的最高价
  8. High5 = Highest(High[3], 3);

  9. // 未开仓:K线3收盘价>K线5高点,在K线2位置开多单
  10. If(GetGlobalVar(1) == 0 and Close[1] > High[3])
  11. {
  12.         Buy(1);
  13.         SetGlobalVar(1, Date+Time);
  14. }

  15. // 已开仓:记录开仓后走过几根K线
  16. If(GetGlobalVar(1) > Date+Time and GetGlobalVar(2) < 2)
  17. {
  18.         SetGlobalVar(1, Date+Time);
  19.         SetGlobalVar(2, GetGlobalVar(2)+1);
  20. }

  21. // 已开仓:记录开仓后走过2根K线后,若K线1、2高点均<=K线3~5的高点,平多单
  22. If(GetGlobalVar(2) == 2)
  23. {
  24.         If(High[1] <= High5 and High[2] <= High5)
  25.         {
  26.                 Sell(1);
  27.                 SetGlobalVar(1, 0);
  28.                 SetGlobalVar(2, 0);
  29.         }
  30.         Else
  31.                 //当GetGlobalVar(2)为3时,一直持有多单
  32.                 SetGlobalVar(2, 3);
  33. }
复制代码

使用道具 举报

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

bottom

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

GMT+8, 2020-6-5 10:05

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部