TradingView Pine Script颜色变化告警脚本报错求助
问题解决:Pine Script alertcondition 报错修复
错误原因分析
- alertcondition 参数类型错误:
alertcondition()的第一个参数必须是布尔值(true/false),但你传入了颜色值(lime/green/red/orange),导致类型不匹配,触发翻译错误。 - Study 函数语法错误:
Study("Impulse MACD]", ...)里的标题多了一个多余的],属于语法错误。 - 多余的语法符号:第一个
alertcondition前的*号是无效符号,会干扰脚本解析。
修复后的完整代码
//@version=4 Study("Impulse MACD", shorttitle="IMACD_LB", overlay=false) lengthMA = input(34) lengthSignal = input(9) calc_smma(src, len) => smma=na(smma[1]) ? sma(src, len) : (smma[1] * (len - 1) + src) / len smma calc_zlema(src, length) => ema1=ema(src, length) ema2=ema(ema1, length) d=ema1-ema2 ema1+d src=hlc3 hi=calc_smma(high, lengthMA) lo=calc_smma(low, lengthMA) mi=calc_zlema(src, lengthMA) md=(mi>hi)? (mi-hi) : (mi<lo)? (mi - lo) : 0 sb=sma(md, lengthSignal) sh=md-sb mdc=src>mi?src>hi?lime:green:src<lo?red:orange plot(0, color=gray, linewidth=1, title="MidLine") plot(md, color=mdc, linewidth=2, title="ImpulseMACD", style=histogram) plot(sh, color=blue, linewidth=2, title="ImpulseHisto", style=histogram) plot(sb, color=maroon, linewidth=2, title="ImpulseMACDCDSignal") ebc=input(false, title="Enable bar colors") barcolor(ebc?mdc:na) // 修复后的告警条件:判断颜色值是否匹配 alertcondition(mdc == green or mdc == lime, title="Buy", message="green buy") alertcondition(mdc == orange, title="Sell", message="red sell")
关键修改说明
- 修正 Study 标题:移除了标题末尾多余的
],确保函数语法正确。 - 调整 alertcondition 条件:将颜色值判断改为布尔表达式,比如
mdc == green or mdc == lime,当指标颜色为绿色或 lime 时触发 Buy 告警;mdc == orange时触发 Sell 告警,符合你的需求。 - 移除无效符号:删掉了第一个
alertcondition前的*号。
内容的提问来源于stack exchange,提问作者Dominic3180
相关产品推荐
相关产品推荐

