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

使用If语句检查布尔值时出现语法错误求助

问题解决:Pine Script If语句语法错误

错误原因

Pine Script是区分大小写的编程语言,你代码里用了大写的If,但正确的条件判断关键字是小写的if,这是触发语法错误的直接原因。

修正后的完整代码

//@version=5
strategy("EMA Cross Alerts", overlay=true)

// 示例EMA变量定义(需根据你的实际参数调整周期)
ema1_ = ta.ema(close, 10)
ema2_ = ta.ema(close, 20)
ema3_ = ta.ema(close, 50)
ema8_ = ta.ema(close, 80)

Continuationema = ta.crossover(ema2_, ema8_)
plotshape(Continuationema, style=shape.triangleup, color=color.new(color.blue, 0), location=location.abovebar)   

Bearema = ta.crossunder(ema1_, ema2_)
plotshape(Bearema, style=shape.triangledown, color=color.new(color.red, 0), location=location.abovebar)               

Bullema = ta.crossover(ema2_, ema3_)
plotshape(Bullema, style=shape.triangleup, color=color.new(color.green, 0), location=location.belowbar)             

// 警报逻辑修正
if Continuationema
    strategy.entry("Continuation", strategy.long, alert_message="Uptrend Detected")
    alert("Uptrend Continuation Detected. EMA2 Crossing Over EMA8")

// 可选:补充另外两个信号的警报逻辑
if Bearema
    strategy.entry("Bearish", strategy.short, alert_message="Downtrend Detected")
    alert("Bearish Signal Detected. EMA1 Crossing Under EMA2")

if Bullema
    strategy.entry("Bullish", strategy.long, alert_message="Bullish Trend Detected")
    alert("Bullish Signal Detected. EMA2 Crossing Over EMA3")

额外注意事项

  1. 必须在脚本开头声明版本号//@version=5,不同Pine Script版本语法存在差异,未声明可能引发额外错误。
  2. 确保ema1_、ema2_等EMA变量已提前定义,若你原代码中未定义,需补充对应ta.ema计算逻辑(示例中已给出参考)。
  3. 若你编写的是指标脚本而非策略脚本,需用alertcondition替代alert函数来设置警报规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:25:39