交易命令JSON文档
本文档包含所有交易命令序列化后的JSON格式示例,用于API调用参考。
同步命令
同步命令会立即返回结果。
自定义请求
{
"account_id": 1,
"method": "Request",
"request": {
"auth": true,
"body": {
"key2": "value2"
},
"headers": {
"Content-Type": "application/json"
},
"method": "GET",
"path": "/api/v1/test",
"query": {
"key": "value"
},
"url": "https://api.example.com/api/v1/test"
},
"sync": true
}
响应:
返回交易所原始响应数据
响应示例:
"Ok": {
// 交易所返回的原始数据
}
获取订单历史
{
"account_id": 1,
"end_time": 1704067200000,
"method": "GetOrders",
"start_time": 1672531200000,
"symbol": "BTC_USDT",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| id | String | 订单ID |
| symbol | String | 交易对名称 |
| status | String | 订单状态 |
| order_type | String | 订单类型: Limit/Market |
| side | String | 交易方向: Buy/Sell |
| pos_side | String | 持仓方向: Long/Short |
| price | Number | 委托价格 |
| amount | Number | 委托数量 |
| filled | Number | 已成交数量 |
| filled_avg_price | Number | 成交均价 |
响应示例:
"Ok": [
{
"id": "order123",
"symbol": "BTC_USDT",
"status": "Open",
"order_type": "Limit",
"side": "Buy",
"pos_side": "Long",
"price": 50000.0,
"amount": 0.1,
"filled": 0.0,
"filled_avg_price": 0.0
}
]
获取当前挂单
{
"account_id": 1,
"method": "GetOpenOrders",
"symbol": "BTC_USDT",
"sync": true
}
响应字段:
同GetOrders
响应示例:
"Ok": [
{
"id": "order123",
"symbol": "BTC_USDT",
"status": "Open",
"order_type": "Limit",
"side": "Buy",
"pos_side": "Long",
"price": 50000.0,
"amount": 0.1,
"filled": 0.0,
"filled_avg_price": 0.0
}
]
获取所有挂单
{
"account_id": 1,
"method": "GetAllOpenOrders",
"sync": true
}
响应字段:
同GetOrders
响应示例:
"Ok": [
{
"id": "order123",
"symbol": "BTC_USDT",
"status": "Open",
"order_type": "Limit",
"side": "Buy",
"pos_side": "Long",
"price": 50000.0,
"amount": 0.1,
"filled": 0.0,
"filled_avg_price": 0.0
}
]
查询持仓
{
"account_id": 1,
"method": "Position",
"symbol": "BTC_USDT",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| symbol | String | 交易对名称 |
| timestamp | Number | 时间戳 |
| margin_mode | String | 保证金模式: Cross/Isolated |
| side | String | 持仓方向: Long/Short |
| leverage | Number | 杠杆倍数 |
| amount | Number | 持仓数量 |
| entry_price | Number | 开仓均价 |
| unrealized_pnl | Number | 未实现盈亏 |
响应示例:
"Ok": [
{
"symbol": "BTC_USDT",
"timestamp": 1678234567000,
"margin_mode": "Cross",
"side": "Long",
"leverage": 10,
"amount": 0.1,
"entry_price": 50000.0,
"unrealized_pnl": 100.0
}
]
查询所有持仓
{
"account_id": 1,
"method": "Positions",
"sync": true
}
响应字段:
同Position
响应示例:
"Ok": [
{
"symbol": "BTC_USDT",
"timestamp": 1678234567000,
"margin_mode": "Cross",
"side": "Long",
"leverage": 10,
"amount": 0.1,
"entry_price": 50000.0,
"unrealized_pnl": 100.0
}
]
获取最大持仓
{
"account_id": 1,
"method": "MaxPosition",
"symbol": "BTC_USDT",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| long | PositionValue | 多仓最大持仓 |
| short | PositionValue | 空仓最大持仓 |
PositionValue:
- Notional: 最大持仓价值
- Quantity: 最大持仓数量
响应示例:
"Ok": {
"long": {
"Notional": 10000000.0
},
"short": {
"Quantity": 100.0
}
}
最大杠杆
{
"account_id": 1,
"method": "MaxLeverage",
"symbol": "BTC_USDT",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| leverage | Number | 最大杠杆 |
响应示例:
"Ok": {
"leverage": 125
}
查询USDT余额
{
"account_id": 1,
"method": "UsdtBalance",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| asset | String | 资产名称 |
| balance | Number | 总余额 |
| available_balance | Number | 可用余额 |
| unrealized_pnl | Number | 未实现盈亏 |
响应示例:
"Ok": {
"asset": "USDT",
"balance": 1000.0,
"available_balance": 900.0,
"unrealized_pnl": 100.0
}
查询多币种余额
{
"account_id": 1,
"method": "Balance",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| asset | String | 资产名称 |
| balance | Number | 总余额 |
| available_balance | Number | 可用余额 |
| unrealized_pnl | Number | 未实现盈亏 |
响应示例:
"Ok": [
{
"asset": "BTC",
"balance": 1.0,
"available_balance": 0.8,
"unrealized_pnl": 0.0
},
{
"asset": "USDT",
"balance": 10000.0,
"available_balance": 8000.0,
"unrealized_pnl": 100.0
}
]
查询指定币种余额
{
"account_id": 1,
"asset": "BTC",
"method": "BalanceByCoin",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| asset | String | 资产名称 |
| balance | Number | 总余额 |
| available_balance | Number | 可用余额 |
| unrealized_pnl | Number | 未实现盈亏 |
响应示例:
"Ok": {
"asset": "BTC",
"balance": 1.0,
"available_balance": 0.8,
"unrealized_pnl": 0.0
}
获取手续费
{
"account_id": 1,
"method": "FeeRate",
"symbol": "BTC_USDT",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| taker | Number | Taker手续费率 |
| maker | Number | Maker手续费率 |
响应示例:
"Ok": {
"taker": 0.0004,
"maker": 0.0002
}
查询是否双向持仓
{
"account_id": 1,
"method": "IsDualSidePosition",
"sync": true
}
响应示例:
"Ok": true
设置双向持仓
{
"account_id": 1,
"is_dual_side": true,
"method": "SetDualSidePosition",
"sync": true
}
响应:
响应示例:
"Ok": null
获取账户信息
{
"account_id": 1,
"method": "GetAccountInfo",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| total_mmr | Number | 总保证金率 |
| total_equity | Number | 总权益 |
| total_available | Number | 总可用 |
响应示例:
"Ok": {
"total_mmr": 0.0,
"total_equity": 1234.56,
"total_available": 1234.56
}
获取账户模式
{
"account_id": 1,
"method": "GetAccountMode",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| account_mode | AccountMode | 账户模式 |
AccountMode枚举
| 枚举名 | 描述 |
|---|---|
| Classic | 初始经典账户模型 |
| SpotAndSwap | 现货和合约模式 |
| MultiCurrency | 跨币种保证金模式 |
| Portfolio | 组合保证金模式 |
响应示例:
"Ok": "MultiCurrency"
获取用户ID
{
"account_id": 1,
"method": "GetUserId",
"sync": true
}
响应示例:
"Ok": "user_12345"
查询交易所折扣信息
{
"account_id": 1,
"method": "GetFeeDiscountInfo",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| token | String | 折扣币 |
| rate | Number | 折扣率: 例如: 0.8 表示 八折 |
响应示例:
"Ok": {
"token": "USDT",
"rate": 0.85
}
查询账户是否开启原生币手续费折扣
{
"account_id": 1,
"method": "IsFeeDiscountEnabled",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| is_enabled | Boolean | 是否开启原生币手续费折扣 |
响应示例:
"Ok": true
开关账户原生币手续费折扣
{
"account_id": 1,
"enable": true,
"method": "SetFeeDiscountEnabled",
"sync": true
}
响应:
响应示例:
"Ok": null
查询24h交易信息
{
"account_id": 1,
"method": "Ticker",
"symbol": "BTC_USDT",
"sync": true
}
响应字段
| 字段 | 类型 | 描述 |
|---|---|---|
| symbol | String | 交易对名称 |
| timestamp | Number | 时间戳 |
| high | Number | 最高价 |
| low | Number | 最低价 |
| open | Number | 开盘价 |
| close | Number | 收盘价 |
| volume | Number | 成交量,基础货币 |
| quote_volume | Number | 成交额, 报价货币 |
| change | Number | 涨跌幅 |
| change_percent | Number | 涨跌幅百分比 |
响应示例:
"Ok": [
{
"symbol": "BTC_USDT",
"timestamp": 1678234567000,
"high": 50000.0,
"low": 49000.0,
"open": 49500.0,
"close": 50000.0,
"volume": 1000.0,
"quote_volume": 5000000.0,
"change": 500.0,
"change_percent": 0.01
}
]
查询所有交易对的24h交易信息
{
"account_id": 1,
"method": "Tickers",
"sync": true
}
响应字段
同Ticker
响应示例:
"Ok": [
{
"symbol": "BTC_USDT",
"timestamp": 1678234567000,
"high": 50000.0,
"low": 49000.0,
"open": 49500.0,
"close": 50000.0,
"volume": 1000.0,
"quote_volume": 5000000.0,
"change": 500.0,
"change_percent": 0.01
}
]
查询最佳买卖价
{
"account_id": 1,
"method": "Bbo",
"symbol": "BTC_USDT",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| symbol | String | 交易对名称 |
| bid_price | Number | 最佳买单价格 |
| bid_qty | Number | 最佳买单数量 |
| ask_price | Number | 最佳卖单价格 |
| ask_qty | Number | 最佳卖单数量 |
| timestamp | Number | 时间戳 |
响应示例:
"Ok": [
{
"symbol": "BTC_USDT",
"bid_price": 50000.0,
"bid_qty": 1000.0,
"ask_price": 51000.0,
"ask_qty": 1000.0,
"timestamp": 1678234567000
}
]
查询所有交易对的最佳买卖价
{
"account_id": 1,
"method": "BboTickers",
"sync": true
}
响应字段:
同Bbo
响应示例:
"Ok": [
{
"symbol": "BTC_USDT",
"bid_price": 50000.0,
"bid_qty": 1000.0,
"ask_price": 51000.0,
"ask_qty": 1000.0,
"timestamp": 1678234567000
}
]
查询深度
{
"account_id": 1,
"limit": 20,
"method": "Depth",
"symbol": "BTC_USDT",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| symbol | String | 交易对名称 |
| timestamp | Number | 时间戳 |
| bids | Array(DepthEntry) | 买单深度 |
| asks | Array(DepthEntry) | 卖单深度 |
DepthEntry 数据结构:
| 字段 | 类型 | 描述 |
|---|---|---|
| price | Number | 价格 |
| amount | Number | 数量 |
响应示例:
"Ok": {
"symbol": "BTC_USDT",
"timestamp": 1678234567000,
"bids": [
[50000.0, 1000.0],
[49990.0, 1000.0]
],
"asks": [
[51000.0, 1000.0],
[51010.0, 1000.0]
]
}
查询产品信息
{
"account_id": 1,
"method": "Instrument",
"symbol": "BTC_USDT",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| symbol | String | 交易对名称 |
| state | String | 交易状态 |
| price_tick | Number | 价格步长 |
| amount_tick | Number | 数量步长 |
| price_precision | Number | 交易所的价格小数位 |
| amount_precision | Number | 交易所的数量小数位 |
| min_qty | Number | 数量下限, 最小下单数量 |
| min_notional | Number | 最小名义价值,仅币安/bitget有该规则 |
| price_multiplier | Number | 价格乘数 |
| amount_multiplier | Number | 数量乘数 |
交易状态:
- Normal: 正常
- Maintenance: 交易所维护
- LimitOpen: 限制开仓
- CloseOnly: 关闭交易
响应示例:
"Ok": {
"symbol": "BTC_USDT",
"state": "Normal",
"price_tick": 0.1,
"amount_tick": 0.001,
"price_precision": 1,
"amount_precision": 3,
"min_qty": 0.001,
"min_notional": 5.0,
"price_multiplier": 1.0,
"amount_multiplier": 1.0
}
查询所有产品信息
{
"account_id": 1,
"method": "Instruments",
"sync": true
}
响应字段:
同Instrument
响应示例:
"Ok": [
{
"symbol": "BTC_USDT",
"state": "Normal",
"price_tick": 0.1,
"amount_tick": 0.001,
"price_precision": 1,
"amount_precision": 3,
"min_qty": 0.001,
"min_notional": 5.0,
"price_multiplier": 1.0,
"amount_multiplier": 1.0
}
]
查询资金费率
{
"account_id": 1,
"method": "FundingRate",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 | 必填 |
|---|---|---|---|
| symbol | String | 交易对名称 | 是 |
| funding_rate | Number | 当前资金费率 | 是 |
| next_funding_at | Number | 下次资金费时间戳 | 是 |
| funding_interval | Number | 资金费结算周期,以小时为单位 | 否 |
响应示例:
"Ok": [
{
"symbol": "BTC_USDT",
"funding_rate": 0.0001,
"next_funding_at": 1678234567000,
"funding_interval": 8
}
]
查询单个交易对资金费率
{
"account_id": 1,
"method": "FundingRateBySymbol",
"symbol": "BTC_USDT",
"sync": true
}
响应字段:
同FundingRate
响应示例:
"Ok": [
{
"symbol": "BTC_USDT",
"funding_rate": 0.0001,
"next_funding_at": 1678234567000,
"funding_interval": 8
}
]
标记价格
{
"account_id": 1,
"method": "MarkPrice",
"symbol": "BTC_USDT",
"sync": true
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| symbol | String | 交易对名称 |
| mark_price | Number | 标记价格 |
| timestamp | Number | 时间戳 |
响应示例:
"Ok": {
"symbol": "BTC_USDT",
"mark_price": 50000.0,
"timestamp": 1678234567000
}
异步命令
异步命令会通过回调或事件返回结果。
异步命令的返回值仅表示命令已成功发送,实际执行结果将通过对应的回调函数返回。例如:异步下单结果在 on_order_submitted 中返回,修改订单、批量下单、批量撤单等操作均遵循此机制。
异步下单
{
"account_id": 1,
"method": "PlaceOrder",
"order": {
"amount": 0.1,
"cid": "client123456",
"filled": 0.0,
"filled_avg_price": 0.0,
"id": "",
"order_type": "Limit",
"pos_side": "Long",
"price": 50000.0,
"quote_amount": null,
"side": "Buy",
"source": "Order",
"status": "Open",
"symbol": "BTC_USDT",
"time_in_force": "GTC",
"timestamp": 0
},
"params": {
"is_dual_side": false,
"leverage": 10,
"margin_mode": "Cross",
"market_order_mode": "Safe",
"market_order_slippage": 0.002
},
"sync": false
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| Ok | String | 订单ID |
响应示例:
"Ok": "order_12345"
异步批量下单
{
"account_id": 1,
"method": "BatchPlaceOrder",
"orders": [
{
"amount": 0.1,
"cid": "client123456",
"filled": 0.0,
"filled_avg_price": 0.0,
"id": "",
"order_type": "Limit",
"pos_side": "Long",
"price": 50000.0,
"quote_amount": null,
"side": "Buy",
"source": "Order",
"status": "Open",
"symbol": "BTC_USDT",
"time_in_force": "GTC",
"timestamp": 0
},
{
"amount": 1.0,
"cid": "client789012",
"filled": 0.0,
"filled_avg_price": 0.0,
"id": "",
"order_type": "Limit",
"pos_side": "Short",
"price": 3000.0,
"quote_amount": null,
"side": "Sell",
"source": "Order",
"status": "Open",
"symbol": "ETH_USDT",
"time_in_force": "GTC",
"timestamp": 0
}
],
"params": {
"is_dual_side": false,
"leverage": 10,
"margin_mode": "Cross",
"market_order_mode": "Safe",
"market_order_slippage": 0.002
},
"sync": false
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| BatchOrderRsp | BatchOrderRsp | 订单列表 |
响应示例:
"Ok": {
"success_list": [
{
"id": "order id",
"cid": null
},
{
"id": null,
"cid": "order client id"
}
],
"failure_list": [
{
"id": "order id",
"cid": null,
"error_code": 0,
"error": "error"
},
{
"id": null,
"cid": "order client id",
"error_code": 0,
"error": "error"
}
]
}
异步修改订单
{
"account_id": 1,
"method": "AmendOrder",
"order": {
"amount": 0.15,
"cid": "client123456",
"filled": 0.0,
"filled_avg_price": 0.0,
"id": "",
"order_type": "Limit",
"pos_side": null,
"price": 52000.0,
"quote_amount": null,
"side": "Buy",
"source": "Order",
"status": "Open",
"symbol": "BTC_USDT",
"time_in_force": "GTC",
"timestamp": 0
},
"sync": false
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| Ok | String | 订单ID |
响应示例:
"Ok": "order_12345"
异步撤单
{
"account_id": 1,
"method": "CancelOrder",
"order_id": {
"Id": "test_order_id"
},
"symbol": "BTC_USDT",
"sync": false
}
响应字段:
成功返回 Ok:null
响应示例:
"Ok": null
异步批量撤单
{
"account_id": 1,
"method": "BatchCancelOrder",
"symbol": "BTC_USDT",
"sync": false
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| BatchOrderRsp | BatchOrderRsp | 订单列表 |
响应示例:
"Ok": {
"success_list": [
{
"id": "order id",
"cid": null
},
{
"id": null,
"cid": "order client id"
}
],
"failure_list": [
{
"id": "order id",
"cid": null,
"error_code": 0,
"error": "error"
},
{
"id": null,
"cid": "order client id",
"error_code": 0,
"error": "error"
}
]
}
异步批量撤单根据订单ID
{
"account_id": 1,
"cids": [
"client1",
"client2"
],
"ids": [
"order1",
"order2"
],
"method": "BatchCancelOrderById",
"symbol": "BTC_USDT",
"sync": false
}
响应字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| BatchOrderRsp | BatchOrderRsp | 订单列表 |
响应示例:
"Ok": {
"success_list": [
{
"id": "order id",
"cid": null
},
{
"id": null,
"cid": "order client id"
}
],
"failure_list": [
{
"id": "order id",
"cid": null,
"error_code": 0,
"error": "error"
},
{
"id": null,
"cid": "order client id",
"error_code": 0,
"error": "error"
}
]
}
错误处理
所有API在发生错误时会返回以下格式:
错误响应示例:
{
"命令名": {
"Err": {
"code": 10001, // 错误码
"error": "错误描述",
"location": "错误位置"
}
}
}
通用枚举值
订单状态(status)
Open- 未成交PartiallyFilled- 部分成交Filled- 全部成交Canceled- 已取消
订单类型 (order_type):
Limit: 限价单Market: 市价单
订单方向 (side):
Buy: 买入Sell: 卖出
持仓方向 (pos_side):
Long: 多仓Short: 空仓
订单有效期 (time_in_force):
GTC: Good Till Cancel, 一直有效直到取消IOC: Immediate or Cancel, 立即成交或取消FOK: Fill or Kill, 完全成交或取消
保证金模式 (margin_mode):
Cross: 全仓模式Isolated: 逐仓模式
交易对状态 (state):
Normal: 正常交易Suspended: 暂停交易