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

如何将复杂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="触发做空平仓")

使用说明

  1. 把上述代码替换你原来的策略代码,保存为指标添加到图表
  2. 创建TradingView警报时,「条件」下拉框直接选择对应操作:
    • 选「做多开仓」:绑定3commas做多机器人的开单规则
    • 选「做多平仓」:绑定3commas做多机器人的平仓规则
    • 选「做空开仓」:绑定3commas做空机器人的开单规则
    • 选「做空平仓」:绑定3commas做空机器人的平仓规则
  3. 警报触发频率选「仅一次」即可,避免重复触发同个信号

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:45:01