TradingView 警报自动执行交易到 Binance 配置教程


用 TradingView 做量化交易的人,迟早会遇到同一个问题:

策略信号出来了,但下单还是靠手动。警报响起的那一刻,你在睡觉、在开会、在看别的盘——等你反应过来,机会窗口早就关上了。

更根本的问题是:手动下单这件事本身,就和量化交易的逻辑相矛盾。 你写策略是为了排除情绪干扰,让规则执行,但只要还有"人"在中间,规则就不可能被严格执行。

这篇文章解决这个问题。读完你会理解整个自动化交易的工作原理,并完成从 TradingView 警报到 Binance 自动成交的完整配置。


先理解原理:这套系统是怎么工作的

在开始配置之前,花两分钟理解整个链路——这会让你后面的配置更清晰,出问题也更容易排查。

整个自动化交易链路由三个部分组成:

TradingView → FlamoTrade → Binance
 (信号源)   (执行中枢)  (交易所)

TradingView 负责产生信号。你的策略或指标触发条件后,TradingView 会发出一个警报。这个警报可以携带内容,通过 Webhook 发送到指定的 URL。

FlamoTrade 是中间的执行引擎。它接收 TradingView 发来的 Webhook 请求,解析里面的 JSON 交易指令,然后调用 Binance API 下单。它的核心价值是:把"收到信号"和"执行交易"这两件事可靠地连接起来,同时处理多账户并发、下单失败重试、Telegram 推送等一系列工程问题。

Binance 负责实际成交。FlamoTrade 通过你授权的 API Key 在你的账户上下单。

理解这个链路之后,你会发现配置的逻辑非常简单:让 TradingView 知道往哪里发信号,让 FlamoTrade 知道往哪个账户下单。


为什么需要 FlamoTrade 这个中间层

有人会问:TradingView 能不能直接调用 Binance API?

技术上,TradingView 的 Webhook 只能发送 HTTP 请求,它不具备签名验证、账户管理、异步并发等能力,无法直接驱动 Binance。

也有人尝试自己搭一个中间服务器来做这件事,但实际上要处理的问题远比想象的多:Binance API 的签名规则、时间戳验证、多账户的并发控制、下单失败的重试机制、交易所的限流保护……这些都需要相当的工程投入,而且需要长期维护。

FlamoTrade 做的就是这件事,而且已经稳定运行超过一年。对交易者来说,用现成的工具解决工程问题,把精力放在策略上,才是正确的分工。


开始配置

第一步:注册 FlamoTrade,获取 Webhook URL

打开 flamotrade.com,注册账户并登录。

登录后进入订阅界面,选择开启永久免费标准版,然后进入用户管理页面,找到 Webhook URL 一栏,复制这个地址:

https://api.flamotrade.com/webhook/你的专属密钥

这个 URL 就是你专属的信号接收地址。TradingView 往这里发请求,FlamoTrade 就会执行对应的交易指令。密钥是你身份的唯一标识,不要泄露给他人。

第二步:绑定 Binance API

FlamoTrade 需要通过 Binance API 在你的账户上下单。这里有一个安全设计值得理解:

Binance API Key 分权限。你只需要开通合约交易权限,不需要开通提现权限。这意味着即使 API Key 泄露,对方也无法转走你的资金,最多只能在合约上操作。这是最小权限原则的实际应用。

创建 API Key 时,将以下 IP 加入白名单:

192.243.127.172

这是 FlamoTrade 服务器的固定 IP。只有来自这个 IP 的请求才能使用你的 API Key,其他 IP 的请求会被 Binance 直接拒绝,进一步限制了风险敞口。

创建完成后,在 FlamoTrade 的 API 管理页面的交易账户列表中添加你的 API Key 和 Secret Key。FlamoTrade 对密钥进行加密存储,不会明文保存。

第三步:配置 Telegram 推送

这一步不是必须的,但强烈建议配置。

自动化交易的一个潜在风险是"失控"——系统在执行,你不知道它在做什么。Telegram 推送解决的就是这个问题:每一笔订单的触发、成交、失败,都会实时推送到你的手机,让你随时掌握系统状态。

  1. 在 Telegram 搜索 @BotFather,输入 /newbot,创建一个 Bot,保存 Token
  2. @userinfobot 获取你的 Chat ID
  3. 在 FlamoTrade 的 API 界面的 TelegramBot 设置页面填入 Token 和 Chat ID,推送语言选中文,保存
  4. 点击测试,收到消息说明配置成功

第四步:在 TradingView 创建警报

这是整个配置中最核心的一步,也是最容易出问题的地方。理解 JSON 指令的结构,后面调整参数会容易很多。

打开 TradingView,在你的策略或指标上创建警报,注意两个关键地方:

以下是最常用的几种指令模板,理解每个参数的含义:

市价做多(最基础的做法)

{
  "action": "buySell",
  "account": "ALL",
  "symbol": "ETHUSDT",
  "side": "BUY",
  "amount": "0",
  "usdt": "100",
  "multiple": "0",
  "price": "0",
  "orderType": "market",
  "cancelLast": "false",
  "closeLast": "reverse",
  "reduceOnly": "false",
  "delay": "0",
  "memo": ""
}

参数说明:

开仓同时设置止盈止损(推荐用这个)

{
  "action": "create",
  "account": "ALL",
  "symbol": "ETHUSDT",
  "side": "BUY",
  "amount": "0",
  "usdt": "100",
  "multiple": "0",
  "price": "0",
  "stopPrice": "{{close}}*(1-2%)",
  "profitPrice": "{{close}}*(1+4%)",
  "orderType": "market",
  "cancelLast": "true",
  "closeLast": "reverse",
  "reduceOnly": "false",
  "delay": "0",
  "memo": ""
}

stopPriceprofitPrice 支持数学表达式,{{close}} 是 TradingView 的警报占位符,会自动替换为触发时的收盘价。*(1-2%) 表示向下 2%,*(1+4%) 表示向上 4%。

这意味着你不需要自己计算价格——系统会在信号触发的瞬间,基于实时价格动态计算止盈止损位。

平仓

{
  "action": "closePosition",
  "account": "ALL",
  "symbol": "ETHUSDT",
  "side": "X",
  "amount": "0",
  "ratio": "1.0",
  "price": "0",
  "orderType": "market",
  "cancelLast": "true",
  "delay": "0",
  "memo": ""
}

sideX 双向全平,closeBuy 只平多,closeSell 只平空。ratio 是平仓比例,1.0 表示全平,0.5 表示平一半。


第五步:验证全流程

配置完成后,用小仓位做一次完整测试,确认三件事:

  1. TradingView 警报触发后,FlamoTrade 是否收到请求(TelegramBot 里会显示收到的替换占位符后的原始json数据)
  2. Telegram 是否收到推送订单状态信息
  3. Binance 合约账户是否出现对应的订单记录

三个都对,说明整个链路打通了。


几个值得注意的细节

延迟问题:从 TradingView 发出 Webhook 到 Binance 成交,正常情况下在 1 秒以内。这个延迟来自网络传输,不是 FlamoTrade 本身的处理时间。

多账户account 字段填 ALL 表示对所有账户同时下单。如果你管理多个账户,也可以填具体账户名,如 "bnc1 bnc2",FlamoTrade 会并发执行,而不是串行等待。

下单失败处理:FlamoTrade 内置重试机制。如果因为网络波动或交易所限流导致下单失败,系统会自动重试,并通过 Telegram 告知失败原因。

免费版:标准版永久免费,每月 60 次订单额度。对于低频策略或测试阶段完全够用。超出频率需要的话再考虑升级付费版。


总结

自动化交易的本质是:让规则在你不在场的情况下被严格执行。

这套配置做的事情很简单:TradingView 负责判断信号,FlamoTrade 负责可靠执行,Binance 负责实际成交。每个环节只做自己该做的事,中间没有人工干预的空间。

配置一次,之后策略运行时你甚至不需要打开电脑。

FlamoTrade 注册地址:flamotrade.com(标准版永久免费,无需信用卡)