- 精华
- 0
- 在线时间
- 16 小时
- UID
- 231728
- 积分
- 38
- 帖子
- 23
- 阅读权限
- 10
- 注册时间
- 2016-4-7
- 最后登录
- 2018-12-2
- 精华
- 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线最低价不下于前三根最低价的情况被判断为真。
请问这是为什么?怎么来规避这种情况?
以下是整个程序的代码:- Params
- Numeric D(3);
- Vars
- BoolSeries KDALLOW;
- BoolSeries PDALLOW;
- Begin
- If(MarketPosition==0)
- {
- If(High>Highest(High[1],D) And Low>=Lowest(Low[1],D))
- {
- KDALLOW=True;
- }
- Commentary("MarketPosition1:"+Text(MarketPosition));
- Commentary("KDALLOWK:"+IIFString(KDALLOW,"True","False"));
- If(KDALLOW[1]==True)
- {
- Buy(1,Open);
- KDALLOW=False;
- }
- }
- Commentary("KDALLOW:"+IIFString(KDALLOW,"True","False"));
- Commentary("PDALLOW:"+IIFString(PDALLOW,"True","False"));
- Commentary("MarketPosition2:"+Text(MarketPosition));
- If(MarketPosition==1)
- {
- If(High<=Highest(High[1],D) And Low<Lowest(Low[1],D))
- {
- PDALLOW=True;
- }
- Commentary("MarketPosition3:"+Text(MarketPosition));
- Commentary("PDALLOW:"+IIFString(PDALLOW,"True","False"));
- If(PDALLOW==True)
- {
- Sell(1,Open);
- PDALLOW=False;
- }
- }
- Commentary("KDALLOW:"+IIFString(KDALLOW,"True","False"));
- Commentary("PDALLOW:"+IIFString(PDALLOW,"True","False"));
- Commentary("MarketPosition4:"+Text(MarketPosition));
- End
复制代码 |
|