输入/搜索内容
内置函数
结构体
内置变量与常量
通用约定
交易所
能力矩阵
中心化交易所
去中心化交易所
Hyperliquid
Lighter
edgeX
Aster
Aevo
Pendle
WOOFi Pro
Uniswap / PancakeSwap
Aerodrome / Velodrome
KyberSwap
1inch
EVM DEX通用指令
Jupiter
OKX DEX
DEX策略示例
预测市场
证券与期货
链上与自定义接入

永续合约(WOO生态基于Orderly Network的永续合约DEX,与WOO X交易所是不同的产品和账户)。只有USDC结算的永续合约,账户为全仓、单向持仓。需要配置Orderly账户ID和Orderly API密钥(ed25519密钥对)。

名称与配置

exchange.GetName():Futures_WOOFi(期货);别名:WOOFi、Orderly。

配置项必填说明
AccountID是Orderly账户ID。
Access Key是Orderly API密钥的公钥(ed25519),带不带ed25519:前缀均可。
Secret Key是Orderly API密钥的私钥(base58编码),带不带ed25519:前缀均可。

交易对与合约代码

交易对示例:BTC_USDC、ETH_USDC

只有USDC结算的合约,计价币必须是USDC,例如ETH_USDC对应原生代码PERP_ETH_USDC,其它计价币会报错。

合约代码说明
swap永续合约。

只有永续合约,其它合约代码会报错。下单数量单位为基础币(exchange.GetMarkets()中CtVal为1)。

专属IO指令
指令参数说明返回值
apimethod, path[, params[, raw[, sign]]]直接调用Orderly接口。(详见表下)完整应答(含success、data、timestamp,不拆出data);success为false时报错。

表中长说明的其余部分:

  • api:/v1/public/、/v1/tv/开头的路径默认不签名,其它路径默认用ed25519密钥签名(orderly-key、orderly-signature等请求头,需要配置账户ID与API密钥);sign传true/false(也可以直接作为第4个参数)强制签名或不签名。GET的参数编入查询串,DELETE编成表单,其它方法以JSON请求体发送。raw不是请求体而是参数表(JSON对象或a=1&b=2),非空时整体替换params。

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

常用用法
用api调用公开接口与签名接口
javascript
function main() { // /v1/public/开头的路径默认不签名;返回完整应答,数据在data里 var info = exchange.IO("api", "GET", "/v1/public/info/PERP_ETH_USDC") Log("价格步长:", info.data.quote_tick, "最小数量:", info.data.base_min) var fr = exchange.IO("api", "GET", "/v1/public/funding_rate/PERP_ETH_USDC") Log("预测资金费率:", fr.data.est_funding_rate) // 其它路径默认用ed25519密钥签名 var orders = exchange.IO("api", "GET", "/v1/orders", {status: "INCOMPLETE"}) Log("挂单数:", orders.data.rows.length) var pos = exchange.IO("api", "GET", "/v1/positions") Log("持仓数:", pos.data.rows.length, "success:", pos.success) }

函数支持差异

没有不支持的标准函数。

以回退方式支持:

  • exchange.GetRecords:原生周期为1分钟、5分钟、15分钟、30分钟、1小时、4小时、12小时、1天、1周、1月、1年;其它周期由托管者合成。单次最多返回1000根。

保证金、账户与模拟盘

保证金模式:账户恒为全仓,没有逐仓,不支持exchange.IO("cross", ...)。exchange.SetMarginLevel()设置杠杆,杠杆必须是整数;交易所按整个账户生效,设置一个合约的杠杆会同时改变其它合约的杠杆。

持仓模式:只有单向(净)持仓,不支持exchange.IO("dual", ...),exchange.SetDirection()只用于区分开平仓。

账户:exchange.GetAccount()的权益为USDC持有量,浮动盈亏为各持仓未结算盈亏(unsettled_pnl)之和。exchange.GetAssets()按币种列出持有资产:冻结 = frozen + pending_short,可用 = 持有量 − 冻结。

注意事项
  • 条件单只支持止盈、止损单,不支持OCO(需要分成止盈、止损两张条件单下单);触发价按标记价格,委托价为-1(市价)时触发后按市价成交。
  • 限价单可以在最后一个对象参数里传{tif: "ioc"}、{tif: "fok"}或{postOnly: true},对应交易所的IOC、FOK、POST_ONLY订单类型;其它键原样并入下单请求体(同名覆盖连接器生成的字段)。
  • exchange.ModifyOrder()原地改单,订单ID不变,不传的价格或数量沿用原值;exchange.ModifyConditionOrder()原地修改触发价、委托价和数量,订单ID同样不变。
  • 市价单的Price为0,成交均价看AvgPrice(交易所的average_executed_price)。
  • exchange.GetPositions()返回的MarginLevel取该持仓的杠杆(交易所持仓行的leverage,缺失时取初始保证金率imr的倒数),Margin为占用的初始保证金(持仓价值 ÷ 杠杆)。
  • 盘口和K线接口也需要签名:exchange.GetDepth()、exchange.GetRecords()以及exchange.GetTicker()(买一、卖一价取自盘口)都要求配置好API密钥;exchange.GetTickers()、exchange.GetTrades()、exchange.GetFundings()、exchange.GetMarkets()不需要签名。