价格高于sma40显示1逻辑异常,如何修正?
问题解决:价格低于SMA40时未显示0的排查方案
附图表说明:图表展示了价格曲线、SMA40指标线,以及自定义信号的输出情况,当前所有价格均低于SMA40,但信号未正确输出0。
以下是具体排查和解决步骤:
验证SMA40计算准确性
先单独输出sma40的数值,和手动计算的40期移动平均值对比,确认指标周期是否为40、计算范围是否包含正确的数据(比如是否用了收盘价而非其他价格类型),排除指标本身的计算错误。检查条件判断语法
确认你的条件逻辑代码没有语法或逻辑错误,比如是否误将比较运算符写反、三元分支是否完整。以Pine Script为例,正确的逻辑应该类似:sma40 = ta.sma(close, 40) signal = close > sma40 ? 1 : 0 plot(signal)检查是否存在变量类型不匹配(比如价格为浮点数、SMA40为整数)导致的比较异常,或者遗漏了else分支的默认值设置。
排查数据对齐问题
将价格和SMA40同时绘制在图表上,逐K线核对两者的数值关系,确认是否存在数据序列错位(比如SMA40的计算结果延迟了一个周期),或者因未来函数导致的指标值异常。排除其他代码干扰
查看脚本中是否有后续代码修改了信号变量的值,比如额外的条件判断、循环赋值等,覆盖了原本的0值输出。可以暂时注释掉无关代码,只保留价格与SMA40的对比逻辑,测试信号是否正常输出。
内容的提问来源于stack exchange,提问作者thanupong chiraoranpat
相关产品推荐
相关产品推荐

