Backpack
Backpack(现货):Backpack Exchange的现货交易(主要以USDC计价),包括交易所上线的代币化股票;账户读取现货余额。使用在Backpack创建的API密钥(ED25519密钥对)接入。永续合约见Futures_Backpack交易所对象。
Futures_Backpack(期货):Backpack Exchange的USDC永续合约,包括代币化股票的永续合约。账户是统一抵押账户,只有全仓、单向持仓。使用在Backpack创建的API密钥(ED25519密钥对)接入。现货见Backpack交易所对象。
名称与配置
exchange.GetName() | 类型 | 别名 |
|---|---|---|
Backpack | 现货 | Backpack Exchange |
Futures_Backpack | 期货 | — |
| 配置项 | 必填 | 说明 |
| - | - | - |
| Access Key | 是 | Backpack API密钥的公钥(base64编码)。 |
| Secret Key | 是 | 与公钥对应的ED25519私钥(32字节种子,base64或十六进制)。 |
交易对与合约代码
Backpack(现货)
交易对示例:SOL_USDC、BTC_USDC、SPCX-US_USDC
交易对写作SOL_USDC。代币化股票的交易所币名带.(如SPCX.US),在交易对和资产名中写作-:SPCX-US_USDC。
Futures_Backpack(期货)
交易对示例:BTC_USDC、ETH_USDC
Backpack永续合约以USDC计价,交易对写作ETH_USDC(省略计价币时按USDC处理)。代币化股票的交易所币名带.(如MU.US),在交易对和资产名中写作-:MU-US_USDC。
| 合约代码 | 说明 |
|---|---|
swap | 永续合约(交易所代码ETH_USDC_PERP),完整品种代码形如ETH_USDC.swap。 |
Backpack只有永续合约,其它合约代码都会报错。
专属IO指令
| 指令 | 参数 | 说明 | 返回值 |
|---|---|---|---|
selfTradePreventionMode | string | 自成交预防,可选Allow、RejectTaker、RejectMaker、RejectBoth(区分大小写),设置后之后的订单和条件单随单带上。 | 成功返回设置的取值;取值不在上述范围内时报错。 |
api | method, path[, params[, raw]] | 直接调用Backpack接口,默认签名。(详见表下) | 交易所的原始应答;应答带message或error错误信息时报错。 |
表中长说明的其余部分:
api:私有接口要在params(或raw对象)里写上交易所规定的指令名instruction(如balanceQuery、orderQueryAll),它只参与签名,不随请求发送。raw非空时整体替换params:GET可以是JSON对象或a=1&b=2,其它方法必须是JSON对象。path也可以是完整URL。第4个参数传false时不签名,只能用于公开的GET接口。
通用指令base、currency见exchange.IO。
常用用法
调用私有接口(签名要带instruction)与公开接口
javascript
function main() {
// 私有接口:instruction写交易所规定的指令名,只参与签名,不随请求发送
var balances = exchange.IO("api", "GET", "/api/v1/capital", {instruction: "balanceQuery"})
Log(balances) // {"USDC": {"available": "...", "locked": "...", "staked": "..."}, ...}
var orders = exchange.IO("api", "GET", "/api/v1/orders", {instruction: "orderQueryAll"})
Log(orders) // 当前挂单数组
// 公开接口:最后一个参数传false时不签名(只能用于GET)
var t = exchange.IO("api", "GET", "/api/v1/ticker", "symbol=SOL_USDC", false)
Log(t.lastPrice)
}
设置自成交预防(取值区分大小写)
javascript
function main() {
// 之后的订单和条件单随单带上;取值不在可选范围内时报错并返回空值
Log(exchange.IO("selfTradePreventionMode", "RejectTaker")) // RejectTaker
}
函数支持差异
不支持(调用时报错并返回空值):exchange.ModifyOrder、exchange.ModifyConditionOrder。
以回退方式支持:
exchange.GetRecords:原生周期为1分钟、3分钟、5分钟、15分钟、30分钟、1小时、2小时、4小时、6小时、8小时、12小时、1天、3天、1周、1月;其它周期由托管者合成。
保证金、账户与模拟盘
Futures_Backpack(期货)
保证金模式:Backpack是统一抵押账户,只有全仓,没有全仓/逐仓切换指令。exchange.SetMarginLevel()修改的是账户级的杠杆上限(leverageLimit),对所有合约生效;调用时同时把账户的自动借贷设置(autoBorrowSettlements、autoLend、autoRepayBorrows)设为开启。
持仓模式:只有单向(净)持仓,没有双向持仓。平仓单(closebuy、closesell)以只减仓(reduceOnly)方式下单。exchange.GetPositions()的MarginLevel为初始保证金率的倒数。
账户:exchange.GetAccount()读取抵押品账户:Balance为可用净权益,FrozenBalance为占用的净权益,Equity为净权益;各抵押币种在exchange.GetAssets()中逐币列出。
注意事项
全部交易所对象
- 客户端订单号
clientId必须是0~4294967295之间的整数,其它值报错,订单不会发出。 exchange.GetTickers()的批量行情没有盘口,Buy、Sell取最新成交价;需要真实买一、卖一时用exchange.GetTicker()。- 条件单只支持止盈、止损单,不支持OCO;Backpack的触发单不区分止盈、止损,查询时按触发价与当前最新价的关系判定类型。委托价为0时触发后以市价成交。不支持修改条件单,需要先撤销再重新创建。
exchange.GetHistoryOrders()、exchange.GetHistoryConditionOrders()只能按单个品种查询,不支持since参数(交易所的历史订单接口没有时间范围),传入大于0的since或空字符串品种会报错。
Backpack(现货)
- 市价买单的下单量是要花费的计价币金额(按Backpack的
quoteQuantity下单),市价卖单为交易币数量。按计价币金额下的市价买单在订单查询中没有委托价,Price为0,Amount为已成交的交易币数量。 exchange.GetOrders()、exchange.GetHistoryOrders()只返回普通订单,不含条件单;用exchange.GetOrder()查询条件单的订单号会报错,条件单用exchange.GetConditionOrder()查询,挂单与历史条件单分别用exchange.GetConditionOrders()、exchange.GetHistoryConditionOrders()查询。exchange.GetAccount()、exchange.GetAssets()只统计可用与冻结数量,不包含质押中的数量。
Futures_Backpack(期货)
- 市价单的下单量是合约数量(交易币数量),买卖相同。
exchange.GetOrders()、exchange.GetHistoryOrders()只返回普通订单,不含条件单;用exchange.GetOrder()查询条件单的订单号会报错,条件单用exchange.GetConditionOrder()查询。- 各合约的资金费率结算间隔不同,
exchange.GetFundings()按交易所合约信息给出。