输入/搜索内容
内置函数
结构体
内置变量与常量
通用约定
交易所
能力矩阵
中心化交易所
AscendEx
Backpack
BigONE
币安
Bitfinex
bitFlyer
Bitget
Bithumb
Bitstamp
Bybit
Coincheck
Coinone
CoinW
Crypto.com
DeepCoin
Deribit
DigiFinex
Gate
Gemini
HashKey
HitBTC
火币
Korbit
Kraken
库币
LBank
MEXC
OKX
Poloniex
Upbit
WEEX
WOO X
Zaif
去中心化交易所
预测市场
证券与期货
链上与自定义接入

OKEX(现货):OKX(欧易)现货,以及同一账户下的现货杠杆交易(逐仓、全仓)。使用OKX V5接口,需要配置API KEY的Access Key、Secret Key与Passphrase。

Futures_OKCoin(期货):OKX(欧易)永续合约(USDT、USDC保证金与币本位)、交割合约(币本位、USDT保证金、USD保证金)以及期权。使用OKX V5接口,需要配置API KEY的Access Key、Secret Key与Passphrase;下单数量为合约张数。

名称与配置
exchange.GetName()类型别名
OKEX现货欧易、OKX现货
Futures_OKCoin期货Futures_OKX、OKX期货、欧易期货
配置项必填默认值
---
Access Key是—
Secret Key是—
Passphrase是—
V5协议否勾选
模拟盘否不勾选

交易对与合约代码
OKEX(现货)

交易对示例:BTC_USDT、ETH_BTC

交易对写作BTC_USDT(对应OKX的BTC-USDT),不带合约代码,带合约后缀的写法(如BTC_USDT.swap)报错;合约请使用Futures_OKCoin交易所对象。

Futures_OKCoin(期货)

交易对示例:BTC_USDT、BTC_USDC、BTC_USD、BTC_USD_UM

计价币决定合约类型:BTC_USDT、BTC_USDC为USDT、USDC保证金合约,BTC_USD为币本位合约。OKX的USD保证金交割合约(交易所合约族为BTC-USD_UM)交易对写作BTC_USD_UM,例如BTC_USD_UM.quarter。

合约代码说明
swap永续合约(默认)。
this_week当周交割合约。
next_week次周交割合约。
month当月交割合约。
next_month次月交割合约。
quarter当季交割合约。
next_quarter次季交割合约。
third_quarter第三季度交割合约。
fourth_quarter第四季度交割合约。

交割合约按OKX合约列表中的档位查找,交易所没有挂牌该档位时报错(例如no quarter futures for BTC-USDT on okx)。

原生合约代码示例:BTC-USD-260925、HMSTR-USDT-250207

交割合约也可以直接写OKX的原生合约代码,包括没有固定周期的盘前交易合约:交易对设置为HMSTR_USDT,再exchange.SetContractType("HMSTR-USDT-250207");支持symbol参数的函数可以写成HMSTR_USDT.HMSTR-USDT-250207。OKX的长期交割合约(USD保证金,交易所合约族形如BTC-USD_UM_XPERP)没有固定档位,exchange.GetMarkets()中列为BTC_USD_UM_XPERP.BTC-USD_UM_XPERP-310404这样的原生代码形式,按同样方式使用。

专属IO指令
OKEX(现货)
指令参数说明返回值
simulatebool模拟盘(true)/实盘(false)切换,模拟盘请求带x-simulated-trading: 1请求头,接口地址不变。设置后的值。
trade_margin—切换为杠杆账户、逐仓(tdMode=isolated)。指令名本身。
trade_super_margin—切换为杠杆账户、全仓(tdMode=cross)。指令名本身。
trade_normal—切换回普通现货(tdMode=cash,默认)。指令名本身。
tdModestring直接设置交易模式:cash(现货)、cross、isolated(杠杆全仓、逐仓)。设置后的模式。

通用指令api、base、currency见exchange.IO。

Futures_OKCoin(期货)
指令参数说明返回值
simulatebool模拟盘(true)/实盘(false)切换,模拟盘请求带x-simulated-trading: 1请求头,接口地址不变。设置后的值。
crossbool全仓(true,默认)/逐仓(false)。只保存在本地,之后下单、条件单和exchange.SetMarginLevel()作为tdMode/mgnMode传入,不向交易所发请求,也不区分合约。设置后的值。
tdModestring直接设置下单的tdMode:cross、isolated、cash。设置后的模式。
dualbool双向(true,long_short_mode)/单向(false,net_mode)持仓。OKX的持仓模式是账户级设置,调用时向交易所发送切换请求。设置后的值。

通用指令api、base、currency见exchange.IO。

常用用法
用tdMode在杠杆逐仓、全仓与普通现货之间切换(仅OKEX)
javascript
function main() { // 杠杆逐仓,等同exchange.IO("trade_margin");全仓写cross Log(exchange.IO("tdMode", "isolated")) // isolated // 之后下单带tdMode=isolated,挂单与历史订单查询杠杆订单 Log(exchange.GetOrders("BTC_USDT")) // 切回普通现货,等同exchange.IO("trade_normal") Log(exchange.IO("tdMode", "cash")) // cash }
逐仓模式下设置杠杆并下单(仅Futures_OKCoin)
javascript
function main() { exchange.SetContractType("swap") // 只保存在本地,之后的下单、条件单和设置杠杆都按逐仓,等同exchange.IO("cross", false) Log(exchange.IO("tdMode", "isolated")) // isolated exchange.SetMarginLevel(5) var id = exchange.CreateOrder("BTC_USDT.swap", "buy", -1, 1) Log("订单Id:", id) }

函数支持差异

没有不支持的标准函数。

以回退方式支持:

  • exchange.GetRecords:原生周期为1分钟、3分钟、5分钟、15分钟、30分钟、1小时、2小时、4小时、6小时、12小时、1天、3天、1周、1月、3月;其它周期由托管者合成。

保证金、账户与模拟盘
全部交易所对象

模拟盘:勾选「模拟盘」或调用exchange.IO("simulate", true)使用OKX模拟盘,需要使用在OKX模拟盘页面创建的API KEY。

OKEX(现货)

账户:现货与杠杆共用OKX的同一套接口,区别在下单的tdMode和订单查询的品种类型。切换到杠杆后,连接器首次请求时查询账户模式(acctLv):现货模式的账户不能下杠杆单(报错acctLv is 1);单币种保证金模式下杠杆单带借币币种(买单借计价币、卖单借交易币);跨币种、组合保证金模式下全仓杠杆的订单登记在现货品种下,查询时自动按此处理。可以在下单附加参数中显式传tdMode、ccy覆盖。切换到杠杆后,exchange.GetMarkets()列出OKX的杠杆品种(instType为MARGIN),exchange.GetTickers()也按MARGIN查询而被OKX拒绝(报错),需要全市场行情时先切回trade_normal。

Futures_OKCoin(期货)

保证金模式:默认全仓,用exchange.IO("cross", false)或exchange.IO("tdMode", "isolated")切换为逐仓;也可以在下单附加参数中显式传tdMode。exchange.SetMarginLevel()按当前的全仓/逐仓设置杠杆(tdMode为cash时报错);双向持仓且逐仓时OKX按多、空两侧分别设置杠杆,按exchange.SetDirection()设置的方向选择一侧(buy为多、sell为空,未设置时为多)。

持仓模式:下单前自动查询账户的持仓模式,双向持仓时按开平方向带posSide;也可以用exchange.IO("dual", bool)切换。

期权
Futures_OKCoin(期货)

支持OKX期权,用法与期货合约相同。

  • exchange.GetMarkets()、exchange.GetTickers()不列出期权合约,可以通过OKX的/api/v5/public/instruments?instType=OPTION&uly=BTC-USD接口查询期权合约列表。
  • 当前合约为期权时,不传品种的exchange.GetPositions()、exchange.GetOrders()等按USD.option范围查询,连接器按OKX的期权标的列表逐个标的查询。
  • 从未成交的期权合约,exchange.GetTicker()的Last取标记价格。
  • 期权订单不带posSide。

期权代码示例:BTC-USD-260925-60000-C

期权代码为OKX原生代码:标的-计价币-到期日(YYMMDD)-行权价-C/P。交易对设置为BTC_USD,完整品种代码形如BTC_USD.BTC-USD-260925-60000-C。

注意事项
OKEX(现货)
  • 现货市价买单的下单量是计价币金额(连接器不设tgtCcy,按OKX默认口径);要按交易币数量下市价买单,在下单附加参数中传{"tgtCcy": "base_ccy"}。
  • exchange.ModifyOrder()使用OKX的改单接口(amend-order)原地修改,订单ID不变。
  • 条件单支持止盈、止损和OCO;exchange.ModifyConditionOrder()使用OKX的改算法单接口(amend-algos)原地修改,不撤单重下。
  • exchange.GetHistoryOrders()只能查单个交易对,传空串时报错;exchange.GetHistoryConditionOrders()不支持since参数,传入时报错。
Futures_OKCoin(期货)
  • exchange.GetFundings()不支持批量查询,需要传入具体的永续合约,例如exchange.GetFundings("ETH_USDT.swap");不传或传范围(如USDT.swap)时报错。
  • 条件单支持止盈、止损和OCO;exchange.ModifyOrder()、exchange.ModifyConditionOrder()使用OKX的改单接口原地修改,订单ID不变。
  • exchange.GetHistoryConditionOrders()不支持since参数,传入时报错;exchange.GetHistoryOrders()支持。