TradingView警报需配置为Webhook并对接欧易API:先设指标触发条件,再获取带签名验证的Webhook地址,接着构建含时间戳与HMAC-SHA256签名的请求体,必要时通过代理服务映射字段,最后启用欧易日志追踪交付状态。
欧易(okx)官方认证入口:
点击获取官方APP☞☞☞☞☞:

一、配置TradingView警报触发条件
TradingView图表中设置技术指标信号后,需将该信号绑定为可发送HTTP请求的警报。此步骤确保价格或指标达到预设阈值时生成结构化事件数据并推送至指定端点。
1、在TradingView图表界面右上角点击“警报”按钮,选择“创建警报”。
2、在“条件”栏中勾选已添加的技术指标(如RSI突破70或MACD金叉)。
3、在“操作”区域选择“Webhook URL”,并在输入框中粘贴欧易平台生成的Webhook地址。
4、于“消息”字段填入JSON格式字符串,包含symbol、side、order_type、quantity等必需键名,值可使用{{strategy.entry_id}}等变量动态填充。
二、获取并验证欧易Webhook接入地址
欧易API后台提供专用Webhook接收端点,该地址具备签名验证机制,仅接受来自可信源且携带合法X-BAPI-SIGN头的POST请求。必须确保地址未过期且权限范围覆盖现货或合约下单接口。
1、登录欧易开发者中心,进入“API管理”页面。
2、点击“创建API密钥”,勾选“Webhook”权限及对应交易权限(如spot_trade或futures_trade)。
3、在“Webhook设置”模块中点击“生成新地址”,复制显示的完整URL。
4、使用curl命令向该地址发送测试POST请求,检查返回状态码是否为200 OK及响应体中是否含{"code":0,"msg":"success"}。
三、构建兼容欧易签名规则的请求体
TradingView发出的Webhook请求必须符合欧易要求的签名算法与字段结构,否则会被服务端拒绝。签名基于请求时间戳、API密钥和原始JSON载荷生成,需在Header中传递X-BAPI-TIMESTAMP与X-BAPI-SIGN。
1、在TradingView警报“消息”字段中使用如下模板:
{"symbol":"BTC-USDT","side":"buy","order_type":"market","quantity":"0.001","timestamp":{{time}}}
2、将上述JSON字符串进行UTF-8编码,并拼接api_key=your_api_key×tamp={{time}}作为签名原文。
3、使用HMAC-SHA256算法对原文计算摘要,再经hex编码得到X-BAPI-SIGN值。
4、在TradingView Webhook高级设置中启用“自定义Header”,添加X-BAPI-TIMESTAMP与X-BAPI-SIGN字段并填入对应值。
四、部署中间代理服务处理字段映射
TradingView原生Webhook不支持运行时逻辑处理,当警报携带字段与欧易API参数不一致时,需通过轻量级代理服务完成键名转换、数值校验与异常拦截,避免无效订单提交。
1、在云服务器部署Python Flask应用,监听/notify路径接收TradingView POST请求。
2、解析原始JSON,将action映射为side,size转为quantity,type标准化为limit或market。
3、调用欧易SDK封装的place_order方法,传入转换后参数及预置API密钥。
4、将欧易API返回的order_id与status写入日志,并向TradingView返回HTTP 200响应。
五、启用欧易Webhook事件日志追踪
欧易控制台提供Webhook交付状态实时监控面板,可查看每条请求的响应延迟、HTTP状态码及错误详情。启用该功能有助于快速定位签名失效、字段缺失或限频拦截等问题。
1、进入欧易开发者中心,选择对应API密钥,点击“Webhook日志”标签页。
2、设置时间筛选范围,点击“刷新”加载最近100条交付记录。
3、对状态码为401的条目,检查X-BAPI-SIGN生成逻辑是否与当前时间戳同步。
4、对状态码为400的条目,展开响应体,确认message字段提示的具体缺失字段(如price未提供)。

















