如何配置 OKX 交易信号机器人连接 TradingView

·

随着 OKX Signal Bot 的推出,TradingView 用户和信号供应商现在可以基于 TradingView 信号发布和配置自动化交易机器人。本文将提供一份详细指南,帮助您逐步完成设置,开始使用信号进行自动化交易。

在开始之前,建议您预先了解 OKX 告警消息的详细规范,这将帮助您更顺畅地完成配置。若在配置过程中遇到任何问题,也可随时查阅常见问题解答(FAQ)部分寻求解决方案。


第一步:登录并访问 Signal Bot

首先,登录您的 OKX 账户,依次导航至“交易” -> “交易机器人” -> “策略市场”。

在出现的标签页中,选择“信号机器人”,然后点击“创建”按钮。


第二步:创建自定义信号

在信号机器人创建页面,选择“添加自定义信号”选项,开始配置您的专属交易信号。

OKX 为用户提供了简化的信号创建流程。第一步中,您需要为信号命名,并可选择添加一段描述(最多500字符)。完成后,点击“创建信号”进入下一步。

创建成功后,系统将自动生成 Webhook URL 和 AlertMsg 消息规范。请保存这些信息,后续在 TradingView 设置中将会用到。根据您的策略类型,通常有两种配置路径:

快速了解 Pine Script:策略脚本 vs 指标脚本

TradingView 策略脚本
策略脚本专用于历史回测和实时市场的前瞻测试。除了性能指标计算,它还包含 strategy.*() 订单函数,能够向模拟经纪商发送交易指令。测试结果会显示在图表下方的“策略测试器”中。若您使用这类脚本,请直接参照“策略脚本配置指南”。

TradingView 指标/研究脚本
指标脚本同样执行计算,但不用于回测场景。因其不依赖经纪商模拟器,资源消耗更低、运行更快。这类脚本也称为“研究脚本”(PineScript™ v4 中称为“study”)。若您使用指标、研究脚本或第三方程序,请参照“自定义模式配置指南”。


第三步:配置 TradingView 警报

请确保打开 TradingView 图表,并选择您希望交易的合约品种(注意:需选择正确的永续合约)。OKX 支持的永续合约完整列表,可在交易页面的交易对选择器中查看。

3.1 策略脚本配置指南(使用 Pine Script 策略函数)

  1. 保存并添加策略:在 Pine 编辑器中配置好策略脚本后,点击“保存”并“添加到图表”。如果已有策略脚本,直接添加至图表。
  2. 调整策略属性:点击图表上策略名称旁的齿轮图标,根据您的偏好调整订单参数(如订单大小)。完成后点击“确定”。
  3. 设置订单参数(三种模式)

    • 以 USDT 为单位:直接输入法币数量。为确保与 OKX 兼容,需设置 investmentTypebaseamount{{strategy.order.contracts}}
    • 以合约数量为单位:需注意 TradingView 与 OKX 对“合约”的定义不同。在 OKX 上,每个永续合约的合约面值不同(例如 BTCUSDT 合约代表 0.01 BTC)。同样设置 investmentTypebaseamount{{strategy.order.contracts}}
    • 以净值百分比为单位:此模式依赖于回测中的初始资金和净值计算,与实际交易可能存在偏差。建议优先使用 USDT 或合约数量模式。
  4. 创建警报:点击顶部工具栏的“警报”图标,条件选择刚添加的策略脚本,并设置为“订单执行时”。
  5. 填写警报消息:从 OKX 信号页面的“TradingView”标签页中复制警报消息模板,粘贴到 TradingView 警报的“消息”框中。您可按需修改,但请确保符合 OKX 消息规范。
  6. 设置 Webhook:在“通知”部分选择“Webhook URL”,粘贴从 OKX 复制的 Webhook URL,最后点击“创建”。

请注意:使用 Webhook 功能需要您拥有 TradingView 付费订阅。

3.2 指标/研究脚本配置指南

  1. 添加脚本至图表:在 Pine 编辑器中配置并保存您的指标脚本,然后添加到图表。
  2. 设置警报条件:点击“警报”,条件选择您刚添加的指标产生的特定信号(例如,“MACD 金叉”)。
  3. 填写消息模板:从 OKX 信号页面的“自定义”标签页复制对应的消息模板(如 ENTER_LONG),粘贴到警报的“消息”部分。
  4. 设置 Webhook:在通知中选择 Webhook URL,粘贴 OKX 提供的 URL 并创建警报。

重要提示:OKX 提供 4 种不同操作的消息模板(ENTER_LONG, EXIT_LONG, ENTER_SHORT, EXIT_SHORT)。请根据您的交易逻辑选择正确的操作类型。

3.3 图表分析指南(适用于使用基础指标或绘图的用户)

  1. 创建价格/指标警报:点击“警报”按钮,设置基于价格或常用指标的条件(例如,RSI-14 上穿 30)。
  2. 填入消息模板:将 OKX 的 AlertMsg 规范粘贴到“消息”字段中。请根据您的交易意图选择正确的消息动作(如 ENTER_LONG)。
  3. 设置 Webhook:在“通知”中填入 OKX 的 Webhook URL 并创建警报。

3.4 第三方程序指南(适用于信号提供商)

如果您通过自有程序(如 Python 脚本)生成交易信号并希望发送至 OKX,请参考文末附录 B 的 Python Webhook 请求示例。

如果您需要从固定的第三方 IP 地址向 OKX 发送请求,请联系客服并提供相关理由,我们的团队将为您处理。否则,所有外部信号默认将被视为无效。


第四步:配置您的信号机器人

成功发布信号后,即可开始创建信号机器人。点击“创建机器人”,进入配置页面。

您需要设置一些基础参数:

此外,机器人还提供高级自定义选项:

您可以选择在机器人层面统一设置这些参数,也可以依靠 TradingView 警报消息来动态传递这些指令。这为您提供了高度的灵活性。

完成所有设置后,点击“确认”完成机器人的创建。


第五步:监控与管理机器人

恭喜!您的信号机器人已开始运行。它将实时监听您设置的信号源并自动执行交易。

您可以在“交易机器人”页面随时监控其 performance。点击“详情”图标可以查看:

此外,您还可以进行手动干预:

  1. 调整保证金:在机器人详情页面,您可以随时增加或移除分配给机器人的资金。
  2. 手动下单:您可以无视 incoming 信号,直接通过机器人下达手动订单,用于开仓、加仓、减仓或平仓。
  3. 一键平仓:只需点击一下,即可按市价完全平掉某个交易对的所有持仓。
  4. 停止机器人:停止后,系统将平掉所有持仓并取消所有未完成订单,剩余资金将返回您的交易账户。您可以在机器人详情页右上角或“订单”标签页中执行此操作。

👉 探索更多自动化交易策略与工具


常见问题(FAQ)

Q1: 使用 Signal Bot 需要付费吗?
A1: 使用 OKX 的 Signal Bot 本身是免费的。但请注意,如果您使用 TradingView 的 Webhook 功能来发送警报,则需要拥有 TradingView 的付费订阅计划。

Q2: 为什么我的 TradingView 警报触发后,OKX 机器人没有执行交易?
A2: 请按以下步骤排查:1) 检查 TradingView 警报消息是否严格遵循了 OKX 的 AlertMsg 规范;2) 确认 Webhook URL 填写正确;3) 查看信号机器人的详情页面中的“信号日志”,通常会有失败的具体原因记录。

Q3: 我可以在一个机器人上连接多个交易信号吗?
A3: 目前,一个信号机器人通常与一个特定的信号源(Webhook URL)绑定。如果您有多个策略,建议为每个策略分别创建信号和机器人,以便于独立管理和风控。


附录

A. 示例:MACD 指标脚本与 alertcondition()

这是一个简单的 Pine Script 示例,使用 MACD 指标生成金叉和死叉警报条件。

//@version=5
indicator('MACD Sample Script', overlay=true)

// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)

// Define conditions
goldenCross = ta.crossover(macdLine, signalLine)
deathCross = ta.crossunder(macdLine, signalLine)

// Create alert conditions
alertcondition(condition=goldenCross, title="MACD Golden Cross", message="")
alertcondition(condition=deathCross, title="MACD Death Cross", message="")

在 TradingView 上创建警报时,选择对应的条件(如“MACD Golden Cross”),并将 OKX 提供的消息模板粘贴到“消息”框中即可。

B. 示例:Python Webhook 请求代码片段

以下是一个使用 Python 发送 ENTER_LONG 信号的示例代码框架:

import requests
import json
import datetime

url = 'https://okxdog.com/algo/signal/trigger'  # 实盘交易URL
# url = 'https://okxdog.com/pap/algo/signal/trigger'  # 模拟盘交易URL

signal_data = {
    "action": "ENTER_LONG",
    "instrument": "BTC-USDT-SWAP",
    "signalToken": "your_actual_signal_token_here",  # 替换为您的真实 signalToken
    "timestamp": datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S.%fZ'),
    "maxLag": "60",
    "orderType": "market",
    "investmentType": "base",
    "amount": "100"  # 投资金额或比例
}

headers = {'Content-Type': 'application/json'}

response = requests.post(url, data=json.dumps(signal_data), headers=headers)

if response.status_code == 200:
    print('信号触发成功')
else:
    print(f'信号触发失败,状态码: {response.status_code}, 返回信息: {response.text}')

请注意:使用时需将 your_actual_signal_token_here 替换为您在 OKX 创建信号时获得的真实 token。

C. 推荐的 TradingView 示例脚本


免责声明:本文内容仅供参考,不构成任何投资建议。交易数字货币涉及高风险,您可能会损失全部投资。请在投资前充分了解相关风险并谨慎决策。