PineScript是否无法处理除法比较?1/2与0.5运算结果差异问题
问题根因
这是代码书写问题,并非PineScript不支持除法比较逻辑,核心原因是Pine Script v4的整数除法规则:当除法运算的两个操作数均为整数类型时,运算结果会向下取整为整数。
你的代码中1/2的两个操作数1、2都是整数,因此运算结果为0,乘以totalLength后结果仍然是0,mySeries1的判断条件实际等价于close - low >= 0。因为收盘价不可能低于K线最低价,该条件对所有K线都成立,所以每根K线下方都会生成A标签。
而mySeries2中使用的0.5是浮点数,运算时会自动触发浮点数计算,逻辑完全符合预期,因此仅满足条件的K线才会生成上方的B标签。
修复方法
只需将1/2调整为至少包含一个浮点数的写法即可,可选写法如下:
- 调整为
1.0/2 - 调整为
1/2.0 - 直接使用
0.5和mySeries2的写法保持一致
修改后mySeries1的参考代码:
mySeries1 = close - low >= 1.0/2 * totalLength
修改后两个判断条件逻辑完全等价,即可实现满足条件的同一K线上下方同时生成标签的需求。
内容的提问来源于stack exchange,提问作者Rafael Wörner
相关产品推荐
相关产品推荐

