欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]IF 表达式1 THEN STICKLINE (表达式2,画线位置1,0,1,0,colorgreen);//为何不管表达式1是否为真都会执行表达式2?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2281人关注过本帖树形打印复制链接

主题:[求助]IF 表达式1 THEN STICKLINE (表达式2,画线位置1,0,1,0,colorgreen);//为何不管表达式1是否为真都会执行表达式2?

帅哥哟,离线,有人找我吗?
JJG
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:21 积分:0 威望:0 精华:0 注册:2019/1/2 22:42:47
[求助]IF 表达式1 THEN STICKLINE (表达式2,画线位置1,0,1,0,colorgreen);//为何不管表达式1是否为真都会执行表达式2?  发帖心情 Post By:2019/1/4 2:01:33    Post IP:112.5.248.237[只看该作者]

当前MFI : (HIGH-LOW)/VOL*10000;//数值结果太小,小数点后4位都是“0”被当作数值为“0”,无法比较因此放大10000倍处理。
之前MFI : (REF(HIGH,1)-REF(LOW,1))/REF(VOL,1)*10000;//数值结果太小,小数点后4位都是“0”被当作数值为“0”,无法比较因此放大10000倍处理。


IF 当前MFI>之前MFI THEN STICKLINE ((VOL>REF(VOL,1)),当前MFI,0,1,0,colorgreen); //这条语句的效果不正确。问题见随后的两行注释
//IF 表达式1 THEN 表达式2  应该是表达式1为真才会执行表达式2 为何这条语句不管当前MFI>之前MFI是否为真只要VOL>REF(VOL,1)就会画绿线?
//详见品种M05(豆粕1905)的12月21日和12月7日的绿线是不应该出现的。


//STICKLINE ((当前MFI>之前MFI) and (VOL>REF(VOL,1)),当前MFI,0,1,0,colorgreen);//此行语句效果是正确的
//STICKLINE ((当前MFI>之前MFI) and (VOL<=REF(VOL,1)),当前MFI,0,1,0,colorblue);//此行语句效果是正确的
//STICKLINE ((当前MFI<之前MFI) and (VOL<=REF(VOL,1)),当前MFI,0,1,0,colorbrown);//此行语句效果是正确的
//STICKLINE ((当前MFI<之前MFI) and (VOL>REF(VOL,1)),当前MFI,0,1,0,coloryellow);//此行语句效果是正确的


 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/1/4 8:50:25    Post IP:180.169.30.6[只看该作者]

 1.你代码是序列还是逐K模式的?
2.你把这个判断直接输出出来,不要看前面的数值直接判断,数值有小数点 肉眼观察到的有误差也是有可能的。
[此贴子已经被作者于2019/1/4 8:53:38编辑过]


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
JJG
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:21 积分:0 威望:0 精华:0 注册:2019/1/2 22:42:47
  发帖心情 Post By:2019/1/4 9:58:21    Post IP:112.5.248.237[只看该作者]

我的代码是序列的,判断直接输出也是错误的。
我调试过错误的代码行是:
IF 当前MFI>之前MFI THEN STICKLINE ((VOL>REF(VOL,1)),当前MFI,0,1,0,colorgreen); 
我要实现的意图是VOL>REF(VOL,1)柱状图集合限制在当前MFI>之前MFI柱状图的交集内。
这条代码不管当前MFI>之前MFI这个表达式是否为真都会按VOL>REF(VOL,1)这个表达式执行,没有起到 IF 限定交集的作用。

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/1/4 10:20:28    Post IP:180.169.30.6[只看该作者]

 这个if在序列模式下的处理和逐K有差异。你改成逐K试下呢。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/1/4 10:23:24    Post IP:180.169.30.6[只看该作者]

 http://www.weistock.com/runmode.htm  这里的例子有对这个情况做说明的。


命数如织,当如磐石。
 回到顶部