WOOFi Pro
永续合约(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指令
| 指令 | 参数 | 说明 | 返回值 |
|---|---|---|---|
api | method, 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()不需要签名。