OKX信号策略警报规范2.0

发布于 2023年8月30日更新于 2024年4月4日阅读时长 13 分钟

文章概述

简介

随着信号机器人的推出,TradingView用户现在可以在OKX上发布他们的信号并创建一个信号机器人。在本指南中,我们将为用户介绍OKX支持的各种警报信息规格。

对于那些精通PineScript并完全依赖策略脚本来发送信号的用户,我们精心设计了一个专属的规格格式。该格式无缝整合了PineScript的策略占位符,让您可以轻松发送交易信号。如果您是PineScript策略的本地用户,该格式将是您的理想伴侣,它提供了一种简化的方法,可将您的策略脚本与TradingView的策略占位符合并。如果您是 strategy.*类函数的TradingView策略脚本类用户,请参阅下面的【A节 - PineScript策略用户】

另一方面,我们理解并非所有人都只依赖PineScript策略脚本。在本指南的【B节 - 通用兼容】中,我们提供了一套超越脚本方法的通用规范。这些规范适用于所有信号生成方法。无论您是使用自定义指标、各种图表技术,还是偏好手动警报,这个"一刀切"的规范框架都能满足您的需求。

PineScript脚本速览: "Strategy" 与 "Indicator"

PineScript策略既可用于历史数据的回溯测试,也可用于实时市场的前瞻测试。除执行指标计算外,策略还包括调用 strategy.*() 函数,将交易订单传送至 PineScript的经纪模拟器。然后,模拟器可以模拟这些订单的执行。回溯测试的结果在图表底部的 "策略测试器"选项卡中可视化显示,该选项卡与 "PineScript编辑器“选项卡相邻。

Sect A - express overview 1

另一方面,PineScript指标也涉及计算,但不用于回溯测试。由于独立于经纪商模拟器,指标消耗的资源更少,执行速度更快。

Sect A - express overview 2

请注意,您可以灵活地使用A节或B节中的格式,两者完全兼容。 根据您传输的信息,系统将智能地识别所使用的格式,并相应地解析您的信息。无论您选择哪种方式,这种智能处理都能确保无缝体验。

A节 - PineScript策略用户

以下规范专为使用 PineScript 策略(主要是 strategy.* 函数)编写算法的用户量身定制。该格式专门用于容纳策略占位符值,确保无缝适应性。如需深入了解策略脚本以及使用策略占位变量发送警报的过程,请访问 链接 了解更多信息。

如果您对这一概念不熟悉,【B节 - 通用兼容】提供了另一种构建警报的方法,适用于更广泛的场景。

警报消息规范概述

参数
类型
id
必选
  • 来自TradingView的{{strategy.order.id}}

操作
action
必选
  • 来自TradingView的{{strategy.order.action}}

marketPosition
必选
  • 来自TradingView的{{strategy.market_position}}

prevMarketPosition
必选
  • 来自TradingView的{{strategy.prev_market_position}}

工具
instrument
必选
  • 来自TradingView的{{ticker}}

  • OKX工具格式

信号代码
signalToken
必选
信号创建时由OKX提供
时间戳
timestamp
必选
来自TradingView的{{timenow}}
最大延迟
maxLag
可选
[1,3600]之间的非负整数值。默认为60。
投资类型
investmentType
可选*


  • base(供买入和卖出讯号使用) 以基数货币表示的金额

  • margin 固定保证金(只适用于买入讯号)

  • contract 固定张数(只供买入讯号使用)

  • percentage_balance 可用保证金比例 (只供买入讯号使用)

  • percentage_investment 初始投资额比例(只供买入讯号使用)基于您的策略中的活跃投资额百分比进行下单 活跃投资在策略创建时等同于您在创建策略时投入的初始保证金,随后您可以透过手动添加保证金去改变活跃投资额

  • percentage_position 持仓比例(只供卖出讯号使用)

金额
amount
必选
  • base(正浮点数)

  • 保证金(计价货币)(正浮点数)

  • 张数(正整数)

  • 可用保证金比例(浮动值在[0.01,100]之间,单位为%)

  • 初始投资额比例(浮动值在[0.01,100]之间,单位为%)

  • 持仓比例(浮动值在[0.01,100]之间,单位为%)

* 如果信号被视为进场信号,investmentType 将默认为 "percentage_investment";如果信号被视为出场信号,investmentType 将默认为 "percentage_position"。不过,我们强烈建议将该值设为 "base",将金额设为"{{strategy.order.contracts}}",以便与 TradingView 策略实现最大程度的兼容。

1. 「警报消息」- id

Sect A - id

id - 订单标识符

{{strategy.order.id}} - 返回已执行订单的 ID(在生成订单的函数调用中作为第一个参数使用的字符串:strategy.entry、strategy.exit 或 strategy.order)。

2. 「警报消息」- 操作

Sect A - action

操作 - "买入"或"卖出"?

{{strategy.order.action}} 返回已执行订单的"buy"或"sell"字符串。

3. 「警报消息」- marketPosition

Sect A - MarketPosition

marketPosition - 预期仓位状态(订单执行时)

{{strategy.market_position}} - 以字符串形式返回策略的当前位置:"long", "flat",或"short"。

4. 「警报消息」- prevMarketPosition

Sect A - prevMarketPosition

prevMarketPosition - 以前的仓位状态(订单执行前)

{{strategy.prev_market_position}} - 以字符串形式返回策略的前一个位置: "long", "flat", 或 "short".

5. 「警报消息」- 工具

Sect A - instrument

类型一:ticker — TradingView占位符值

“标准占位符” * 是由双大括号包围并包含在警报消息中的文字片段。
"{{ticker}}"将返回生成警报的TradingView的代码。
例如:“BTCUSDT. P”、“ETHUSDT.P”

* 在PineScript中访问变量的标准占位符。在这里了解更多。

类型二:OKX工具格式

工具ID,或OKXAPI中的“instId”。更多细节可以点击链接查看。

例如:"BTC-USDT-SWAP"、"ETH-USDT-SWAP"

6. 「警报消息」- 信号代码

Sect A - signalToken

信号代码:信号的身份验证。这种安全措施,用于确保传入的请求是合法和授权的。当用户在OKX成功创建新信号时,将自动生成此信号代码,并需要将其复制到TradingView警报消息。

如何定位已激活信号的信号代码?

  1. 查看信号配置信息

Sect A - locate signalToken 1.png -CN

  1. 在警报信息部分找到信号代码

Sect A - locate signalToken 2.png -CN

7. 「警报消息」- 时间戳

Sect A - timestamp

timenow - TradingView占位符值

“标准占位符”*是由双大括号包围并包含在警报消息中的文字片段。

"{{timenow}}" 将返回生成警报的当前和确切时间,UTC和yyyy-MM-ddTHH:mm:ssZ格式。

例如: "2023-06-01T17:38:10Z"

* 在PineScript中访问变量的标准占位符。在这里了解更多。

8. 「警报消息」- maxLag

Sect A - maxLag

maxLag - 最大可接受延迟

在信号策略中,“maxLag”是指在交易信号被接收前以秒为单位的最大可接受延迟时间。
默认设置为30秒。设置maxLag值有助于确保信号策略的及时运行,避免对可能不再反映当前市场状况的过时信号或潜在不准确信号采取行动。

9. 「警报消息」- 投资类型和金额

Sect A - investmenttype and amount

重要提示: 为了确保与您的TradingView策略有最佳的兼容性,我们强烈建议将 investmentType 配置为"base",并将数量设置为"{{strategy.order.contract}}"。通过这种方法,OKX 上的订单数量将与您TradingView策略中指定的订单数量保持一致。

只供买入讯号使用

  • base: 基准货币金额(建议选择)
  • 保证金:以报价货币计价的投资保证金
  • 张数:固定数量的订单张数
  • 可用保证金比例 :基于可用保证金的百分比(即开立新订单的可用保证金)
  • 初始投资额百分比:基于您的策略的活跃投资百分比
    活跃投资通常是您在创建策略时的初始投资保证金,并且保持不变,直到您补充更多保证金并选择增加此值。例如,如果您创建一个初始投资1000 USDT的策略,您的活跃投资将被设置为1000 USDT。对于任何传入的信号,这是将用于计算您订单大小的值。假设在运行策略几天后,您认为其表现良好,并重新投资另外1000 USDT的保证金并将其添加到您的活跃投资中。此后,您的活跃投资将增加到2000 USDT,这将是用于计算您订单大小的新值。如果您不确定您的策略当前的活跃投资价值是多少,您随时可以在“策略详细信息”部分进行查看。

仅适用于卖出信号

  • base: 基准货币金额(建议选择)
  • 持仓比例:基于未平仓头寸的百分比

B节 - 通用兼容

以下提供的规范用途广泛,可根据任何情况进行定制。无论您是使用 PineScript 制作策略或指标脚本,还是手动将警报输入 TradingView 的警报用户界面,这些规格都具有适应性和可定制性。

警报消息规范概述

参数
类型
操作
action
必选
  • 开多(ENTER_LONG)

  • 开空(ENTER_SHORT)

  • 平多(EXIT_LONG)

  • 平空(EXIT_SHORT)

工具
instrument
必选
  • 来自TradingView的{{ticker}}

  • OKX工具格式

信号代码
signalToken
必选
信号创建时由OKX提供
时间戳
timestamp
必选
来自TradingView的{{timenow}}
最大延迟
maxLag
可选
[1,3600]之间的非负整数值。默认为60。
订单类型
orderType
可选*
  • 市价(market)

  • 限价(limit)

订单价格偏移量
orderPriceOffset
可选**

[0,100]之间的浮动值,单位为%
投资类型
investmentType
可选*

  • 固定保证金(只适用于买入讯号)

  • 固定张数(只供买入讯号使用)

  • 可用保证金比例 (只供买入讯号使用)

  • 初始投资额比例(只供买入讯号使用)基于您的策略中的活跃投资额百分比进行下单 活跃投资在策略创建时等同于您在创建策略时投入的初始保证金,随后您可以透过手动添加保证金去改变活跃投资额

  • 持仓比例(只供卖出讯号使用)

金额
amount
可选*
  • 保证金(计价货币)(正浮点数)

  • 张数(正整数)

  • 可用保证金比例(浮动值在[0.01,100]之间,单位为%)

  • 初始投资额比例(浮动值在[0.01,100]之间,单位为%)

  • 持仓比例(浮动值在[0.01,100]之间,单位为%)

* :如果在创建 OKX 信号策略时未配置任何设置,则 * 参数是必填的
** :如果订单类型是被限制的,则需要填写 ** 参数

1. 「警报消息」- 操作

交易模式:

假设在OKX信号策略以单向(买入/卖出)模式运行,这意味着只会在一个方向上持有头寸。

下单
  • 开多 — ENTER_LONG:下单持有多头头寸,预期价格会上涨。
  • 开空 — ENTER_SHORT:下单持有空头头寸,预期价格会下跌。
平仓
  • 平多 — EXIT_LONG:下单出售持有头寸部分即平仓多头头寸。
  • 平空 — EXIT_SHORT:下单回购头寸部分即平仓空头头寸。

2. 「警报消息」- 工具

类型一:ticker — TradingView占位符值

“标准占位符” * 是由双大括号包围并包含在警报消息中的文字片段。
"{{ticker}}"将返回生成警报的TradingView的代码。
例如:“BTCUSDT. P”、“ETHUSDT.P”。

* 在PineScript中访问变量的标准占位符。在这里了解更多。

类型二:OKX工具格式

工具ID,或OKXAPI中的“instId”。更多细节可以点击链接查看。

例如:"BTC-USDT-SWAP"、"ETH-USDT-SWAP"

3. 「警报消息」- 信号代码

信号代码:信号的身份验证。这种安全措施,用于确保传入的请求是合法和授权的。当用户在OKX成功创建新信号时,将自动生成此信号代码,并需要将其复制到TradingView警报消息。

4. 「警报消息」- 时间戳

timenow - TradingView占位符值

“标准占位符”*是由双大括号包围并包含在警报消息中的文字片段。

"{{timenow}}" 将返回生成警报的当前和确切时间,UTC和yyyy-MM-ddTHH: mm:ssZ格式。

格式示例(UTC 时间,ISO 8061 格式)

  • yyyy-MM-ddTHH:mm:ssZ 格式 例如:"2023-06-01T17:38:10Z"
  • yyyy-MM-ddTHH:mm:ss.SSSZ 格式 例如:"2023-06-01T17:38:10.836Z"
  • yyyy-MM-ddTHH:mm:ss+0000 格式 例如:"2023-06-01T17:38:10+0000"

* 在PineScript中访问变量的标准占位符。在这里了解更多。

5. 「警报消息」- maxLag

maxLag - 最大可接受延迟

在信号策略中,“maxLag”是指在交易信号被接收前以秒为单位的最大可接受延迟时间。
默认设置为30秒。设置maxLag值有助于确保信号策略的及时运行,避免对可能不再反映当前市场状况的过时信号或潜在不准确信号采取行动。

6. 「警报消息」- 订单

订单类型(orderType)

  • 市场价(market):通过市场价进行下单,比如开仓(action=ENTER_XX)或平仓(action=EXIT_XX)时,则无需提供orderPriceOffset。
  • 限价(limit):设置限价单,进行开仓(action=ENTER_XX)或平仓(action=EXIT_XX)。

订单价格偏移量(orderPriceOffset)

如上所述,该参数仅在限价单类型需要填写,即当下单限价单时,允许订单以限定价格为基数的偏移量,可以在增加订单成交的几率的同时,又能确保以较为理想的价格成交。设置后,在不同操作时,偏移价格计算方式如下:
开多:[1-(订单价格偏移量/100)]*买一价
开空:[1+(订单价格偏移量/100)]*卖一价
平多:[1+(订单价格偏移量/100)]*卖一价
平空:[1-(订单价格偏移量/100)]*买一价

7. 「警报消息」- 投资类型和金额

只供买入讯号使用

  • 保证金:以报价货币计价的投资保证金
  • 张数:固定数量的订单张数
  • 可用保证金比例 :基于可用保证金的百分比(即开立新订单的可用保证金)
  • 初始投资额百分比:基于您的策略的活跃投资百分比
    活跃投资通常是您在创建策略时的初始投资保证金,并且保持不变,直到您补充更多保证金并选择增加此值。例如,如果您创建一个初始投资1000 USDT的策略,您的活跃投资将被设置为1000 USDT。对于任何传入的信号,这是将用于计算您订单大小的值。假设在运行策略几天后,您认为其表现良好,并重新投资另外1000 USDT的保证金并将其添加到您的活跃投资中。此后,您的活跃投资将增加到2000 USDT,这将是用于计算您订单大小的新值。如果您不确定您的策略当前的活跃投资价值是多少,您随时可以在“策略详细信息”部分进行查看。

仅适用于卖出信号

  • 持仓比例:基于未平仓头寸的百分比

B节警报设置示例

示例1:多头开仓->多头平仓(全部平仓)

示例2:无多仓的多仓->短仓(一步反转)

示例3:多头开仓->多头平仓(部分平仓)->多头平仓(完全平仓)

示例4:使用多次下单开仓

多重进场是信号策略的一项功能,允许对给定工具执行多重进场。交易者可以通过入场点的多样化(即美元成本平均法)来优化交易方法,从而有可能增加在动态市场环境中捕捉盈利交易的机会。

示例5:仅使用触发信号(不使用订单相关字段)

对于信号提供商而言,鉴于用户已在机器人中配置了某些可选参数,他们可以将这些参数排除在外。这对于只提供买入/卖出触发信号的提供商特别有用,因为每个用户都可以自行决定投资多少。

示例6:仅使用触发信号(不使用订单相关字段)

如果用户在信号平台和策略创建平台的参数配置中都没有指定订单详细信息,则将使用默认值。

  • 对于买入(开仓)信号,默认情况下,它将使用市场订单以 X% 的比例进行下单( 单对时,X=100;多对时,X=50。
  • 对于卖出(平仓)信号,默认情况下,它将在收到信号后关闭100%未平仓头寸。

示例7:字段顺序优先级

信号策略的参数优先于信号平台的参数,即OKX信号策略的参数优先于TradingView的信号参数。这里还需要注意两个规则:

  1. 规则1:信号策略和信号平台都定义了字段
对于 订单类型
市场订单(策略)✅
限价单(信号)❌
  1. 规则2:机器人/信号之一定义字段
对于 投资类型和金额
不适用(策略)❌
100%可用余额(信号)✅

FAQs

如果您有任何关于信号策略的问题,可以查看本文章中用户最常提出的一些问题。