将Heikin Ashi策略脚本转为Study并添加买卖信号警报求助
问题解决:将Heikin Ashi策略脚本转为Study类型并实现警报功能
原脚本无法运行的核心原因是最后两行使用了Strategy模式专属的下单函数(strategy.long/strategy.short),而Study模式不支持这类策略交易指令。以下是修改后的完整代码及关键调整说明:
修改后的完整代码
study("Heikin Ashi Strategy [Krypt]", shorttitle="HA Strategy [Krypt]", overlay=true) res = input(title="Heikin Ashi Candle Time Frame", type=resolution, defval="60") hshift = input(1,title="Heikin Ashi Candle Time Frame Shift") res1 = input(title="Heikin Ashi EMA Time Frame", type=resolution, defval="180") mhshift = input(0,title="Heikin Ashi EMA Time Frame Shift") fama = input(1,"Heikin Ashi EMA Period") test = input(1,"Heikin Ashi EMA Shift") sloma = input(30,"Slow EMA Period") slomas = input(1,"Slow EMA Shift") logtransform = input(false, "Log Transform") stoploss = input(true, "Stop Loss") showplots = input(true, "Show Plots") ha_t = heikinashi(tickerid) ha_close = security(ha_t, res, logtransform ? log(close[hshift]) : close[hshift]) mha_close = security(ha_t, res1, logtransform ? log(close[mhshift]) : close[mhshift]) fma = ema(mha_close[test], fama) sma = ema(ha_close[slomas], sloma) plot(showplots ? (logtransform ? exp(fma) : fma) : na, title="MA", color=#0094ff, linewidth=2, style=line) plot(showplots ? (logtransform ? exp(sma) : sma) : na, title="SMA", color=#ff6a00, linewidth=2, style=line) golong = crossover(fma, sma) goshort = crossunder(fma, sma) // 替换原策略下单代码:用可视化标记显示买卖信号 plotshape(golong, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white) plotshape(goshort, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white) // 添加警报功能:触发信号时推送提醒 alertcondition(golong, title="Buy Alert", message="Heikin Ashi Strategy: Buy Signal Triggered") alertcondition(goshort, title="Sell Alert", message="Heikin Ashi Strategy: Sell Signal Triggered")
关键调整说明
移除的无效代码
直接删除原脚本最后两行:plot("Buy", strategy.long, when=golong, stop=(stoploss ? high+syminfo.mintick : na)) plot("Sell", strategy.short, when=goshort, stop=(stoploss ? low-syminfo.mintick : na))这两行是Strategy模式专属的下单逻辑,Study模式不支持,必须移除才能正常运行。
新增可视化信号标记
用plotshape函数在K线下方/上方绘制买入/卖出标签,直观展示信号触发位置,替代原策略下单的可视化逻辑。新增警报功能
通过alertcondition函数分别为买入、卖出信号配置警报,你可以在TradingView的警报设置中选择推送方式(邮件、短信、APP通知等)。保留核心逻辑
所有Heikin Ashi数据获取、EMA计算、信号判断的代码完全保留,确保策略核心逻辑不变。
内容的提问来源于stack exchange,提问作者Wags
相关产品推荐
相关产品推荐

