布尔表达式中内置ema函数的逻辑真值判定规则咨询
Pine Script浮点数转布尔值的判定规则
你遇到的是Pine Script在布尔运算上下文里的隐式类型转换逻辑,and属于逻辑运算符,两边的运算值都会被自动转成布尔类型参与计算,其中ema(close, 80)作为浮点型数值,判定为true的规则如下:
- 数值不等于0,且不是
na(无效空值)时,判定为逻辑真true - 数值等于0,或者当前K线周期不足80根导致EMA计算结果为
na时,判定为逻辑假false
补充说明:这段代码的写法存在明显的逻辑瑕疵。80周期EMA是基于收盘价计算的移动均线,正常行情下价格不可能为0,只要图表加载的K线数量满80根,
ema(close,80)永远是正数值,也就是永远为真,实际运行时整个longExit()的判断条件几乎等价于只判断rsi(close, 2) >= 80,大概率是代码编写者漏写了EMA相关的比较逻辑,比如原本想写价格跌破EMA之类的判断,遗漏了比较运算符和对比项。
内容的提问来源于stack exchange,提问作者F.Koenig
相关产品推荐
相关产品推荐

