You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

报错无法调用‘operator >’,如何实现3个EMA指标的比较?

问题描述

报错信息:无法调用‘operator >’,参数‘expr1’为series[bool]类型,该参数应为float类型。

尝试比较3个EMA指标时出现上述报错,本人不擅长编程,求修改代码实现EMA指标的比较。当前使用RSI指标的代码如下:

RSI50 = rsi(close, 1000)
RSI25 = rsi(close, 25)
RSI100 = rsi(close, 100)

Long = RSI25 > RSI100 > RSI50
Short = RSI25 < RSI100 < RSI50

strategy.entry("buy", strategy.long, 100.0, when = Long)
strategy.entry("sell", strategy.short, 100.0, when = Short)

注:需将rsi函数替换为ema函数来比较EMA指标。

解决方案

报错原因

RSI25 > RSI100 > RSI50这种连续比较方式在Pine Script里不支持。RSI25 > RSI100会返回布尔值(true/false),接着用这个布尔值和RSI50比较,就会触发“bool类型与float类型无法比较”的错误。

修改后的代码

把连续比较拆成两个独立条件,用逻辑与运算符and连接:

// 替换为EMA指标,调整变量名更贴合指标类型
EMA25 = ema(close, 25)
EMA100 = ema(close, 100)
EMA1000 = ema(close, 1000)

// 拆分连续比较为两个独立条件,用and确保同时成立
Long = EMA25 > EMA100 and EMA100 > EMA1000
Short = EMA25 < EMA100 and EMA100 < EMA1000

strategy.entry("buy", strategy.long, 100.0, when = Long)
strategy.entry("sell", strategy.short, 100.0, when = Short)

说明

  • 先将所有rsi函数替换为ema,同时调整变量名对应EMA指标(比如原RSI50对应参数1000,改为EMA1000)
  • 拆分连续比较为两个独立的大小判断,用and连接后,就能保证两个条件同时满足,避免类型不匹配的问题

内容的提问来源于stack exchange,提问作者Cesar Llano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 01:10:28