如何将复杂TradingView策略转换为适配3commas交易机器人的触发警报
解决方案
首先明确你使用的是抛物转向(SAR)策略,多空信号的触发逻辑非常清晰,对应核心变量uptrend的翻转时刻:
- 当
uptrend从false变为true时:触发做多开仓信号,同时触发做空平仓信号 - 当
uptrend从true变为false时:触发做空开仓信号,同时触发做多平仓信号
以下是改好的可直接使用的指标版本,已经内置4个对应3commas操作的警报条件:
//@version=4 study("SAR策略多空警报指标", overlay=true) start = input(0.02) increment = input(0.02) maximum = input(0.2) var bool uptrend = na var float EP = na var float SAR = na var float AF = start var float nextBarSAR = na // 原策略核心计算逻辑保留 if bar_index > 0 firstTrendBar = false SAR := nextBarSAR if bar_index == 1 float prevSAR = na float prevEP = na lowPrev = low[1] highPrev = high[1] closeCur = close closePrev = close[1] if closeCur > closePrev uptrend := true EP := high prevSAR := lowPrev prevEP := high else uptrend := false EP := low prevSAR := highPrev prevEP := low firstTrendBar := true SAR := prevSAR + start * (prevEP - prevSAR) if uptrend if SAR > low firstTrendBar := true uptrend := false SAR := max(EP, high) EP := low AF := start else if SAR < high firstTrendBar := true uptrend := true SAR := min(EP, low) EP := high AF := start if not firstTrendBar if uptrend if high > EP EP := high AF := min(AF + increment, maximum) else if low < EP EP := low AF := min(AF + increment, maximum) if uptrend SAR := min(SAR, low[1]) if bar_index > 1 SAR := min(SAR, low[2]) else SAR := max(SAR, high[1]) if bar_index > 1 SAR := max(SAR, high[2]) nextBarSAR := SAR + AF * (EP - SAR) // 定义四个信号 long_open = not uptrend[1] and uptrend // 做多开仓 long_close = uptrend[1] and not uptrend // 做多平仓 short_open = uptrend[1] and not uptrend // 做空开仓 short_close = not uptrend[1] and uptrend // 做空平仓 // 图表信号标记(方便核对信号准确性,不需要可以删除) plotshape(long_open, title="做多开仓", location=location.belowbar, color=color.green, style=shape.labelup, text="多", size=size.small) plotshape(long_close, title="做多平仓", location=location.abovebar, color=color.red, style=shape.labeldown, text="平多", size=size.small) plotshape(short_open, title="做空开仓", location=location.abovebar, color=color.red, style=shape.labeldown, text="空", size=size.small) plotshape(short_close, title="做空平仓", location=location.belowbar, color=color.green, style=shape.labelup, text="平空", size=size.small) // 原SAR绘图保留 plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange) plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua) // 内置警报条件,创建警报时直接选择即可 alertcondition(long_open, title="做多开仓", message="触发做多开仓") alertcondition(long_close, title="做多平仓", message="触发做多平仓") alertcondition(short_open, title="做空开仓", message="触发做空开仓") alertcondition(short_close, title="做空平仓", message="触发做空平仓")
使用说明
- 把上述代码替换你原来的策略代码,保存为指标添加到图表
- 创建TradingView警报时,「条件」下拉框直接选择对应操作:
- 选「做多开仓」:绑定3commas做多机器人的开单规则
- 选「做多平仓」:绑定3commas做多机器人的平仓规则
- 选「做空开仓」:绑定3commas做空机器人的开单规则
- 选「做空平仓」:绑定3commas做空机器人的平仓规则
- 警报触发频率选「仅一次」即可,避免重复触发同个信号
内容的提问来源于stack exchange,提问作者Sunney Jim
相关产品推荐
相关产品推荐

