设为首页收藏本站

 找回密码
 注册
查看: 748|回复: 3

请问以下两种写法有什么不一样? [复制链接]

Rank: 1

精华
0
UID
231728
积分
38
帖子
23
主题
7
阅读权限
10
注册时间
2016-4-7
最后登录
2018-12-2
发表于 2018-11-11 18:30:23 |显示全部楼层
条件语句,D是参数3,
If(High<=Highest(High[1],D) And Low<Lowest(Low[1],D))和If(Low<Lowest(Low[1],D) And High<=Highest(High[1],D))
请问以上两句有什么不同?按我的理解应该是一样的意思,但实际上,只有后边那句才能表达我想表达的。前面那句,就算某根K线最低价并没有低于前三根K线的最低价,有时也会判断为TRUE,有真有假,没找出规律。
后来,我试着用括号,写成这样If((High<=Highest(High[1],D)) And (Low<Lowest(Low[1],D)))。和没用括号没什么区别,依然会有K线最低价不下于前三根最低价的情况被判断为真。
请问这是为什么?怎么来规避这种情况?
以下是整个程序的代码:
  1. Params
  2. Numeric D(3);

  3. Vars
  4. BoolSeries KDALLOW;
  5. BoolSeries PDALLOW;

  6. Begin
  7. If(MarketPosition==0)
  8. {
  9. If(High>Highest(High[1],D) And Low>=Lowest(Low[1],D))
  10.   {
  11.    KDALLOW=True;
  12.    }
  13. Commentary("MarketPosition1:"+Text(MarketPosition));
  14. Commentary("KDALLOWK:"+IIFString(KDALLOW,"True","False"));
  15. If(KDALLOW[1]==True)
  16.   {
  17.    Buy(1,Open);
  18.    KDALLOW=False;
  19.    }
  20. }
  21. Commentary("KDALLOW:"+IIFString(KDALLOW,"True","False"));
  22. Commentary("PDALLOW:"+IIFString(PDALLOW,"True","False"));
  23. Commentary("MarketPosition2:"+Text(MarketPosition));
  24. If(MarketPosition==1)
  25. {
  26. If(High<=Highest(High[1],D) And Low<Lowest(Low[1],D))
  27.   {
  28.    PDALLOW=True;
  29.    }
  30. Commentary("MarketPosition3:"+Text(MarketPosition));
  31. Commentary("PDALLOW:"+IIFString(PDALLOW,"True","False"));
  32. If(PDALLOW==True)
  33.   {
  34.    Sell(1,Open);
  35.    PDALLOW=False;
  36.    }
  37. }
  38. Commentary("KDALLOW:"+IIFString(KDALLOW,"True","False"));
  39. Commentary("PDALLOW:"+IIFString(PDALLOW,"True","False"));
  40. Commentary("MarketPosition4:"+Text(MarketPosition));
  41. End
复制代码

Rank: 1

精华
0
UID
231728
积分
38
帖子
23
主题
7
阅读权限
10
注册时间
2016-4-7
最后登录
2018-12-2
发表于 2018-11-11 18:40:36 |显示全部楼层
补充一下:
经过我的测试,我发现是这条语句有问题
Low<Lowest(Low[1],D)
就是这句,即便某根K线的最低价没有低于前面三根的最低价,也会有被判断为真的时候,不知道为什么

使用道具 举报

Rank: 1

精华
0
UID
231728
积分
38
帖子
23
主题
7
阅读权限
10
注册时间
2016-4-7
最后登录
2018-12-2
发表于 2018-11-11 23:46:39 |显示全部楼层
再补充:
这个现象在旗舰版和极速版上面都存在。
就是上面的代码,具体在2018年9月11日9:15的1分钟K上面,后面还有很多这样的情况,这根K只是其中一根。
请教各位老师,这是怎么回事?如何才能规避?

使用道具 举报

Rank: 1

精华
0
UID
231728
积分
38
帖子
23
主题
7
阅读权限
10
注册时间
2016-4-7
最后登录
2018-12-2
发表于 2018-11-11 23:54:44 |显示全部楼层
再补充:
将仓位判断和交易指令去掉后,即9、10、19、22、26、27、36、39行去掉后,恢复正常。
可知这个问题跟仓位判断,buy、sell函数有关系。
怎么规避,不知道

使用道具 举报

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

bottom

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

GMT+8, 2024-3-29 06:35

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部