设为首页收藏本站

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

一个逻辑与的奇怪问题 [复制链接]

Rank: 5Rank: 5

精华
0
UID
5525
积分
1473
帖子
429
主题
93
阅读权限
60
注册时间
2009-9-22
最后登录
2022-5-23
跳转到指定楼层
1#
发表于 2011-10-12 23:33:17 |只看该作者 |倒序浏览
我在编上吊线函数时发现一个奇诡的问题:
如果我有两个条件:
myCon4 = (High[1]>=HighestFC(Close[1],5));
myCon5 = (Close[1]>=AverageFC(Close[1],5));
if (myCon4) Commentary("myCon4"); //检测条件是否满足
if (myCon5) Commentary("myCon5");
以上程序是正常的,但我将这两个条件合起来时,就不正常了,增加两条语句:
myCon6 = (High[1]>=HighestFC(Close[1],5)) && (Close[1]>=AverageFC(Close[1],5));
if (myCon6) Commentary("myCon6");
结果在满足K线形态的地方,只显示myCon4和myCon5,而不显示myCon6
这是为什么?我感觉是与序列数值类型有关,请管理员解释一下。
谢谢!
上善若水,无欲则刚

Rank: 5Rank: 5

精华
0
UID
5525
积分
1473
帖子
429
主题
93
阅读权限
60
注册时间
2009-9-22
最后登录
2022-5-23
2#
发表于 2011-10-12 23:51:54 |只看该作者
优化的上吊线函数代码如下,供朋友们共同学习提高。
  1. //------------------------------------------------------------------------
  2. // 简称: mySDX
  3. // 名称: 上吊线
  4. // 类别: 用户函数
  5. // 类型: 顶部反转
  6. // 输出: 布尔型
  7. //------------------------------------------------------------------------
  8. // 实体处于K线上端,实体的颜色无所谓
  9. // 下影线至少达到实体高度的2倍
  10. // 没有上影线或上影线极短
  11. // 在趋势的顶部,且当前K线正在得到验证
  12. Params
  13.                 Numeric myBars(5); //顶部趋势至少保持5Bar
  14.         Numeric myBar0(8); //缺省的Bar振幅至少有8个点
  15. Vars
  16.         Numeric        myBar30; //30个周期的平均Bar振幅
  17.         Numeric myBar1; //Bar[1]的振幅
  18.         Numeric myIndex(1);
  19.         Bool myCon1;
  20.         Bool myCon2;
  21.         Bool myCon3;
  22.         Bool myCon4;
  23.         Bool myCon5;
  24.         Bool myCon6;
  25.        
  26. Begin
  27.         myBar30 = AverageFC(High[1]-Low[1],30); //30个周期的振幅
  28.         If (myBar30<myBar0) myBar30=myBar0;                //如果振幅太小则设置最小值
  29.         myBar1 = High[1]-Low[1];
  30.         myCon1 = myBar1>=myBar30;
  31.         myCon2 = (High[1] - Min(Open[1],Close[1]))/myBar1 <=0.4; //实体在K线的上部
  32.         myCon2 = myCon2 or (Max(Open[1],Close[1])-Low[1])/myBar1<=0.4; //或实体在K线的下部
  33.         myCon3 = Abs(Open[1]-Close[1])/(myBar1) <=0.4; //实体小于K线的2/5,即下影线或上影线较长
  34.         myCon4 = (High[1]>=HighestFC(Close[1],5));  //处于近期顶部
  35.         myCon5 = (Close[1]>=AverageFC(Close[1],5)); //处于近期顶部
  36.         myCon6 = (High[1]-Low)/myBar1 >=0.5; //确认下跌
  37.         If (myCon1 && myCon2 && myCon3 && myCon4 && myCon5 && myCon6)
  38.         {
  39.                 //FileAppend("c:\\test0.Log",Text(CurrentBar)+" "+DateToString(CurrentDate)+" "+TimeToString(CurrentTime));
  40.                 PlotString("SDX","上吊线",High[1]+2,-1,1);
  41.                 Return True;
  42.         }
  43.         Return False;
  44. End

  45. //------------------------------------------------------------------------
  46. // 编译版本        GS2010.12.08
  47. // 用户版本        2011/10/10 08:15
  48. // 版权所有        efrogking
  49. // 更改声明        TradeBlazer Software保留对TradeBlazer平台
  50. //                        每一版本的TrabeBlazer公式修改和重写的权利
  51. //------------------------------------------------------------------------
复制代码
上善若水,无欲则刚

使用道具 举报

初级大户

酱油

Rank: 5Rank: 5

精华
0
UID
37561
积分
1108
帖子
395
主题
9
阅读权限
60
注册时间
2011-5-4
最后登录
2014-11-3
3#
发表于 2011-10-13 08:31:48 |只看该作者
难道跟if不能用HighestFC之类是一个道理?
期货IT

使用道具 举报

Rank: 4

精华
0
UID
71013
积分
447
帖子
119
主题
6
阅读权限
50
注册时间
2011-10-12
最后登录
2011-12-19
4#
发表于 2011-10-19 09:12:48 |只看该作者
回复 1# efrog


    学习来了
学习就是力量

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
85182
积分
849
帖子
302
主题
11
阅读权限
60
注册时间
2011-12-8
最后登录
2013-10-28
5#
发表于 2011-12-17 00:02:20 |只看该作者
谢谢楼主分享模板
http://qpic.cn/NifLLplMk若能一切随它去,便世间自在人。
      ---Derivatives

使用道具 举报

Rank: 1

精华
0
UID
152089
积分
1
帖子
1
主题
0
阅读权限
10
注册时间
2012-8-22
最后登录
2016-1-8
6#
发表于 2016-1-7 16:15:09 |只看该作者
遇到同样的问题,求解答!

使用道具 举报

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

bottom

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

GMT+8, 2024-5-20 01:01

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部