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


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

   

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


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

主题:[求助]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);//此行语句效果是正确的


 回到顶部
帅哥哟,离线,有人找我吗?
JJG
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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 限定交集的作用。

 回到顶部