一,产品上存在的差异性
账户资产:在USDT和本币位上是分开的,若需要统一账户资产,后端对这部分要进行整合。
开仓方式:全仓和逐仓,我们现有的模式是逐仓,用户持仓的保证金通过自己操作进行调整,后端是否需要统一配置为全用户逐仓模式
杠杆:单个交易对的杠杆值是与用户挂钩的,而且持仓和挂单都使用用户在该交易对下设置的杠杆值(同一保证金模式下),调整杠杆值对所有的挂单和持仓生效,杠杆调整变为连续的正整数
持仓方式:单向持仓和双向持仓,我们目前使用的模式是双向持仓,这个后台要么同一配置要么前端调用接口设置
数量计价方式:USDT只有数量,没有数量和多少张之间的兑换(例如XRPUSDT,数量就是多少个XRP),币本位上有张数和币之间的兑换(例如BTCUSD一个BTC等于194张),交易盘口数量不是多少张而是实时挂单数量
风险限额:在币安APP上未看到相关功能和接口配置
委托:币安把所有的挂单委托全部放在一起的,没有像我们一样做普通委托,计划委托和止盈止损做切分,接口也是全部的类型放在一起的,当前委托没有分页功能数据是全量,前端可根据挂单类型自行切分(历史委托暂不能实现)
撤单:我们现有的APP只支持撤销普通委托的订单,币安支持全部撤单(当前交易对下的所有挂单),批量撤单(针对想要的orderList去进行撤单),可以撤销所有类型的订单(不局限于普通委托)
持仓:无可平量概念,平台自动减仓功能说明
订单:需要区分USDT订单和币本位订单,账单记录也需要
二,接口细则
说明
- 接口可能需要用户的 API Key,如何创建API-KEY请参考这里
- 本篇列出REST接口的baseurl https://fapi.binance.com
- websocket
当前,唯一可以设置的属性是设置是否启用combined("组合")信息流。
当使用/ws/("原始信息流")进行连接时,combined属性设置为false,而使用 /stream/进行连接时则将属性设置为true
单请求(WS)
{
"method": "SUBSCRIBE",
"params":
[
"btcusd_200925@aggTrade",
],
"id": 1
}
组合请求(stream)
{
"method": "SUBSCRIBE",
"params":
[
"btcusd_200925@aggTrade",
"btcusd_200925@depth"
],
"id": 1
}
HTTP 返回代码
HTTP 4XX 错误码用于指示错误的请求内容、行为、格式。
HTTP 403 错误码表示违反WAF限制(Web应用程序防火墙)。
HTTP 429 错误码表示警告访问频次超限,即将被封IP
HTTP 418 表示收到429后继续访问,于是被封了。
HTTP 5XX 错误码用于指示Binance服务侧的问题。
HTTP 503 表示API服务端已经向业务核心提交了请求但未能获取响应,特别需要注意的是其不代表请求失败,而是未知。很可能已经得到了执行,也有可能执行失败,需要做进一步确认。IP 访问限制
每个请求将包含一个X-MBX-USED-WEIGHT-(intervalNum)(intervalLetter)的头,其中包含当前IP所有请求的已使用权重。
每个路由都有一个"权重",该权重确定每个接口计数的请求数。较重的接口和对多个交易对进行操作的接口将具有较重的"权重"。
收到429时,您有责任作为API退回而不向其发送更多的请求。
如果屡次违反速率限制和/或在收到429后未能退回,将导致API的IP被禁(http状态418)。
频繁违反限制,封禁时间会逐渐延长 ,对于重复违反者,将会被封从2分钟到3天。
访问限制是基于IP的,而不是API Key接口鉴权类型
NONE 不需要鉴权的接口
TRADE 需要有效的API-KEY和签名
USER_DATA 需要有效的API-KEY和签名
USER_STREAM 需要有效的API-KEY
MARKET_DATA 需要有效的API-KEY需要签名的接口 (TRADE 与 USER_DATA)
调用这些接口时,除了接口本身所需的参数外,还需要传递signature即签名参数。
签名使用HMAC SHA256算法. API-KEY所对应的API-Secret作为 HMAC SHA256 的密钥,其他所有参数作为HMAC SHA256的操作对象,得到的输出即为签名。
签名大小写不敏感。
当同时使用query string和request body时,HMAC SHA256的输入query string在前,request body在后枚举
- 交易对类型:
DELIVERY_CONTRACT 交割合约
PERPETUAL_CONTRACT 永续合约- 合约类型 (contractType):
PERPETUAL 永续合约
CURRENT_QUARTER 当季合约
NEXT_QUARTER 次季合约- 合约状态 (contractStatus):
PENDING_TRADING 待上市
TRADING 交易中
PRE_DELIVERING 结算中
DELIVERING 交割中
DELIVERED 已交割- 订单状态 (status):
NEW 新建订单
PARTIALLY_FILLED 部分成交
FILLED 全部成交
CANCELED 已撤销
REJECTED 订单被拒绝
EXPIRED 订单过期(根据timeInForce参数规则)- 订单种类 (orderTypes, type):
LIMIT 限价单
MARKET 市价单
STOP 止损限价单
STOP_MARKET 止损市价单
TAKE_PROFIT 止盈限价单
TAKE_PROFIT_MARKET 止盈市价单
TRAILING_STOP_MARKET 跟踪止损单- 订单方向 (side):
BUY 买入
SELL 卖出- 持仓方向:
BOTH 单一持仓方向
LONG 多头(双向持仓下)
SHORT 空头(双向持仓下)- 有效方式 (timeInForce):
GTC - Good Till Cancel 成交为止
IOC - Immediate or Cancel 无法立即成交(吃单)的部分就撤销
FOK - Fill or Kill 无法全部立即成交就撤销
GTX - Good Till Crossing 无法成为挂单方就撤销- 条件价格触发类型 (workingType)
MARK_PRICE
CONTRACT_PRICE- 响应类型 (newOrderRespType)
ACK
RESULT
行情接口 (接口没有标记required:true 均表示可选,有些接口配合使用时 required为false也可能为必传,具体看接口说明)
1.交易对配置 → 霍比特(ms_api/basic/config)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v1/exchangeInfo | none | 现在USDT和币本位合约的分区信息包括筛选需要分开接口去配置,霍比特此前分组通过id去分组组装 |
币本位 | GET /dapi/v1/exchangeInfo | none |
响应模型:
{
"exchangeFilters": [],
"rateLimits": [ // API访问的限制
{
"interval": "MINUTE", // 按照分钟计算
"intervalNum": 1, // 按照1分钟计算
"limit": 2400, // 上限次数
"rateLimitType": "REQUEST_WEIGHT" // 按照访问权重来计算
},
{
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200,
"rateLimitType": "ORDERS" // 按照订单数量来计算
}
],
"serverTime": 1565613908500, // 系统时间
"symbols": [ // 交易对信息
{
"symbol": "BLZUSDT", // 交易对
"status": "TRADING", // 交易对状态
"maintMarginPercent": "2.5000", // 请忽略
"requiredMarginPercent": "5.0000", // 请忽略
"baseAsset": "BLZ", // 标的资产
"quoteAsset": "USDT", // 报价资产
"marginAsset": "USDT", // 保证金资产
"pricePrecision": 5, // 价格小数点位数
"quantityPrecision": 0, // 数量小数点位数
"baseAssetPrecision": 8, // 标的资产精度
"quotePrecision": 8, // 报价资产精度
"underlyingType": "COIN",
"underlyingSubType": ["STORAGE"],
"settlePlan": 0,
"triggerProtect": "0.15", // 开启"priceProtect"的条件订单的触发阈值
"filters": [
{
"filterType": "PRICE_FILTER", // 价格限制
"maxPrice": "300", // 价格上限, 最大价格
"minPrice": "0.0001", // 价格下限, 最小价格
"tickSize": "0.0001" // 步进间隔
},
{
"filterType": "LOT_SIZE", // 数量限制
"maxQty": "10000000", // 数量上限, 最大数量
"minQty": "1", // 数量下限, 最小数量
"stepSize": "1" // 允许的步进值
},
{
"filterType": "MARKET_LOT_SIZE", // 市价订单数量限制
"maxQty": "590119", // 数量上限, 最大数量
"minQty": "1", // 数量下限, 最小数量
"stepSize": "1" // 允许的步进值
},
{
"filterType": "MAX_NUM_ORDERS", // 最多订单数限制
"limit": 200
},
{
"filterType": "MAX_NUM_ALGO_ORDERS", // 最多条件订单数限制
"limit": 100
},
{
"filterType": "PERCENT_PRICE", // 价格比限制
"multiplierUp": "1.1500", // 价格上限百分比
"multiplierDown": "0.8500", // 价格下限百分比
"multiplierDecimal": 4
}
],
"OrderType": [ // 订单类型
"LIMIT", // 限价单
"MARKET", // 市价单
"STOP", // 止损单
"STOP_MARKET", // 止损市价单
"TAKE_PROFIT", // 止盈单
"TAKE_PROFIT_MARKET", // 止盈暑市价单
"TRAILING_STOP_MARKET" // 跟踪止损市价单
],
"timeInForce": [ // 有效方式
"GTC", // 成交为止, 一直有效
"IOC", // 无法立即成交(吃单)的部分就撤销
"FOK", // 无法全部立即成交就撤销
"GTX" // 无法成为挂单方就撤销
]
}
],
"timezone": "UTC" // 服务器所用的时间区域
}
2.最新价格 → 霍比特: api/quote/v1/ticker
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v1/premiumIndex | symbol:交易对 required:false | 不发送交易对参数,则会返回所有交易对信息 |
币本位 | GET /dapi/v1/ticker/price | symbol:交易对 required:false pair:标的交易对 required:false |
响应模型:
{
"symbol": "LTCBTC", // 交易对
"price": "4.00000200", // 价格
"time": 1589437530011 // 撮合引擎时间
}
或(当不发送symbol或者pair)
[
{
"symbol": "BTCUSDT", // 交易对
"price": "6000.01", // 价格
"time": 1589437530011 // 撮合引擎时间
}
]
- 24hr价格变动情况 → api/quote/v1/ticker
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v1/ticker/24hr | symbol:交易对 required:false | 不发送交易对参数,则会返回所有交易对信息 |
币本位 | GET /dapi/v1/ticker/24hr | symbol:交易对 required:false pair:标的交易对 required:false |
|
socket 简版 | StreamName: StreamNam:!miniTicker@arr 例如wss://stream.binancefuture.com/ws/btcusdt@miniTicker) |
||
socket 完整版 | StreamName: StreamName:!ticker@arr |
arr 表示全市场交易对更新 |
响应模型:
响应:
{
"symbol": "LTCBTC", // 交易对
"price": "4.00000200", // 价格
"time": 1589437530011 // 撮合引擎时间
}
或(当不发送symbol)
[
{
"symbol": "BTCUSDT", // 交易对
"price": "6000.01", // 价格
"time": 1589437530011 // 撮合引擎时间
}
]
socket简版:
{
"e": "24hrMiniTicker", // 事件类型
"E": 123456789, // 事件时间(毫秒)
"s": "BNBUSDT", // 交易对
"c": "0.0025", // 最新成交价格
"o": "0.0010", // 24小时前开始第一笔成交价格
"h": "0.0025", // 24小时内最高成交价
"l": "0.0010", // 24小时内最低成交加
"v": "10000", // 成交量
"q": "18" // 成交额
}
完整版:
{
"e": "24hrTicker", // 事件类型
"E": 123456789, // 事件时间
"s": "BNBUSDT", // 交易对
"p": "0.0015", // 24小时价格变化
"P": "250.00", // 24小时价格变化(百分比)
"w": "0.0018", // 平均价格
"c": "0.0025", // 最新成交价格
"Q": "10", // 最新成交价格上的成交量
"o": "0.0010", // 24小时内第一比成交的价格
"h": "0.0025", // 24小时内最高成交价
"l": "0.0010", // 24小时内最低成交加
"v": "10000", // 24小时内成交量
"q": "18", // 24小时内成交额
"O": 0, // 统计开始时间
"C": 86400000, // 统计结束时间
"F": 0, // 24小时内第一笔成交交易ID
"L": 18150, // 24小时内最后一笔成交交易ID
"n": 18151 // 24小时内成交数
}
4.最新标记价格 / 资金费率 → 霍比特指数价/费率(mapi/contract/funding_rates,api/quote/v1/indices)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v1/premiumIndex | symbol:交易对 required:false | 不发送交易对参数,则会返回所有交易对信息 |
币本位 | GET /dapi/v1/premiumIndex | symbol:交易对 required:false pair:标的交易对 required:false |
|
socket | StreamName: |
arr返回全市场更新 |
响应模型:
{
"symbol": "BTCUSD_PERP", // 交易对
"pair": "BTCUSD", // 基础标的
"markPrice": "11029.69574559", // 标记价格
"indexPrice": "10979.14437500", // 指数价格
"estimatedSettlePrice": "10981.74168236", // 预估结算价,仅在交割开始前最后一小时有意义
"lastFundingRate": "0.00071003", // 最近更新的资金费率,只对永续合约有效,其他合约返回""
"interestRate": "0.00010000", // 标的资产基础利率,只对永续合约有效,其他合约返回""
"nextFundingTime": 1596096000000, // 下次资金费时间,只对永续合约有效,其他合约返回0
"time": 1596094042000 // 更新时间
}
socket:
{
"e": "markPriceUpdate", // 事件类型
"E": 1562305380000, // 事件时间
"s": "BTCUSDT", // 交易对
"p": "11794.15000000", // 标记价格
"i": "11784.62659091" // 现货指数价格
"r": "0.00038167", // 资金费率
"T": 1562306400000 // 下次资金时间
}
5.k线数据 → 霍比特(api/quote/v1/klines)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v1/klines | symbol:交易对 required:true interval:时间间隔 required:true startTime:起始时间 required:false endTime:起始时间 required:false limit:数量 required:false(默认500,最大1500) |
|
币本位 | GET /dapi/v1/klines | pair:标的交易对 required:true interval:时间间隔 required:true startTime:起始时间 required:false endTime:起始时间 required:false limit:数量 required:false(默认500,最大1500) |
|
socket | StreamName: |
interval 1m 3m 5m 15m 30m 1h 2h 4h 6h 8h 12h 1d 3d 1w 1M |
响应模型:
[
[
1499040000000, // 开盘时间
"0.01634790", // 开盘价
"0.80000000", // 最高价
"0.01575800", // 最低价
"0.01577100", // 收盘价(当前K线未结束的即为最新价)
"148976.11427815", // 成交量
1499644799999, // 收盘时间
"2434.19055334", // 成交额
308, // 成交笔数
"1756.87402397", // 主动买入成交量
"28.46694368", // 主动买入成交额
"17928899.62484339" // 请忽略该参数
]
]
socket:
{
"e": "kline", // 事件类型
"E": 123456789, // 事件时间
"s": "BNBUSDT", // 交易对
"k": {
"t": 123400000, // 这根K线的起始时间
"T": 123460000, // 这根K线的结束时间
"s": "BNBUSDT", // 交易对
"i": "1m", // K线间隔
"f": 100, // 这根K线期间第一笔成交ID
"L": 200, // 这根K线期间末一笔成交ID
"o": "0.0010", // 这根K线期间第一笔成交价
"c": "0.0020", // 这根K线期间末一笔成交价
"h": "0.0025", // 这根K线期间最高成交价
"l": "0.0015", // 这根K线期间最低成交价
"v": "1000", // 这根K线期间成交量
"n": 100, // 这根K线期间成交笔数
"x": false, // 这根K线是否完结(是否已经开始下一根K线)
"q": "1.0000", // 这根K线期间成交额
"V": "500", // 主动买入的成交量
"Q": "0.500", // 主动买入的成交额
"B": "123456" // 忽略此参数
}
}
- 深度 → 霍比特(api/quote/v1/depth)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v1/depth | symbol:交易对 required:true limit:数量 required:false 默认 500; 可选值:[5, 10, 20, 50, 100, 500, 1000] |
|
币本位 | GET /dapi/v1/depth | 同上 | |
socket | StreamNames: 或 或 增量: Stream 名称: OR OR |
响应模型:
{
"lastUpdateId": 1027024,
"E": 1589436922972, // 消息时间
"T": 1589436922959, // 撮合引擎时间
"bids": [ // 买单
[
"4.00000000", // 价格
"431.00000000" // 数量
]
],
"asks": [ // 卖单
[
"4.00000200", // 价格
"12.00000000" // 数量
]
]
}
socket:
{
"e": "depthUpdate", // 事件类型
"E": 1571889248277, // 事件时间
"T": 1571889248276, // 交易时间
"s": "BTCUSDT",
"U": 390497796,
"u": 390497878,
"pu": 390497794,
"b": [ // 买方
[
"7403.89", // 价格
"0.002" // 数量
]
],
"a": [ // 卖方
[
"7405.96", // 价格
"3.340" // 数量
]
]
}
增量:
{
"e": "depthUpdate", // 事件类型
"E": 123456789, // 事件时间
"T": 123456788, // 撮合时间
"s": "BNBUSDT", // 交易对
"U": 157, // 从上次推送至今新增的第一个 update Id
"u": 160, // 从上次推送至今新增的最后一个 update Id
"pu": 149, // 上次推送的最后一个update Id(即上条消息的‘u’)
"b": [ // 变动的买单深度
[
"0.0024", // 价格
"10" // 数量
]
],
"a": [ // 变动的卖单深度
[
"0.0026", // 价格
"100" // 数量
]
]
}
7.成交 → 霍比特(api/quote/v1/trades)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v1/trades 归集交易:/fapi/v1/aggTrades |
symbol:交易对 required:false limit:数量 required:false 默认值:500 最大值:1000. |
不发送交易对参数,则会返回所有交易对信息。 归集交易与逐笔交易的区别在于,同一价格、同一方向、同一时间(按秒计算)的trade会被聚合为一条建议我们使用归集交易 |
币本位 | GET /dapi/v1/trades 归集交易:/dapi/v1/aggTrades |
同上 | 同上 |
socket | Stream Name: |
响应模型:
[
{
"id": 28457, // 成交ID
"price": "9635.0", // 成交价格
"qty": "1", // 成交量(张数)
"baseQty": "0.01037883", // 成交额(标的数量)
"time": 1591250192508, // 时间
"isBuyerMaker": true // 买方是否为挂单方
}
]
归集交易:
[
{
"a": 26129, // 归集成交ID
"p": "0.01633102", // 成交价
"q": "4.70443515", // 成交量
"f": 27781, // 被归集的首个成交ID
"l": 27781, // 被归集的末个成交ID
"T": 1498793709153, // 成交时间
"m": true, // 是否为主动卖出单
}
]
socket
{
"e": "aggTrade", // 事件类型
"E": 123456789, // 事件时间
"s": "BNBUSDT", // 交易对
"a":
"p": "0.001", // 成交价格
"q": "100", // 成交笔数
"f": 100, // 被归集的首个交易ID
"l": 105, // 被归集的末次交易ID
"T": 123456785, // 成交时间
"m": true // 买方是否是做市方。如true,则此次成交是一个主动卖出单,否则是一个主动买入单。
}
账户和交易
1.账户信息
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v2/account (HMAC SHA256) |
timestamp:时间,required:true | 用户的http持仓数据可以从这儿取 |
币本位 | GET /dapi/v2/account (HMAC SHA256) |
同上 |
响应模型:
{
"feeTier": 0, // 手续费等级
"canTrade": true, // 是否可以交易
"canDeposit": true, // 是否可以入金
"canWithdraw": true, // 是否可以出金
"updateTime": 0,
"totalInitialMargin": "0.00000000", // 但前所需起始保证金总额(存在逐仓请忽略)
"totalMaintMargin": "0.00000000", // 维持保证金总额
"totalWalletBalance": "23.72469206", // 账户总余额
"totalUnrealizedProfit": "0.00000000", // 持仓未实现盈亏总额
"totalMarginBalance": "23.72469206", // 保证金总余额
"totalPositionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"totalOpenOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"totalCrossWalletBalance": "23.72469206", // 全仓账户余额
"totalCrossUnPnl": "0.00000000", // 全仓持仓未实现盈亏总额
"availableBalance": "23.72469206", // 可用余额
"maxWithdrawAmount": "23.72469206" // 最大可转出余额
"assets": [
{
"asset": "USDT", //资产
"walletBalance": "23.72469206", //余额
"unrealizedProfit": "0.00000000", // 未实现盈亏
"marginBalance": "23.72469206", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金
"positionInitialMargin": "0.00000000", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0.00000000", // 当前挂单所需起始保证金(基于最新标记价格)
"crossWalletBalance": "23.72469206", //全仓账户余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "23.72469206", // 可用余额
"maxWithdrawAmount": "23.72469206" // 最大可转出余额
}
],
"positions": [ // 头寸,将返回所有市场symbol。
//根据用户持仓模式展示持仓方向,即双向模式下只返回BOTH持仓情况,单向模式下只返回 LONG 和 SHORT 持仓情况
{
"symbol": "BTCUSDT", // 交易对
"initialMargin": "0", // 当前所需起始保证金(基于最新标记价格)
"maintMargin": "0", //维持保证金
"unrealizedProfit": "0.00000000", // 持仓未实现盈亏
"positionInitialMargin": "0", // 持仓所需起始保证金(基于最新标记价格)
"openOrderInitialMargin": "0", // 当前挂单所需起始保证金(基于最新标记价格)
"leverage": "100", // 杠杆倍率
"isolated": true, // 是否是逐仓模式
"entryPrice": "0.00000", // 持仓成本价
"maxNotional": "250000", // 当前杠杆下用户可用的最大名义价值
"positionSide": "BOTH", // 持仓方向
"positionAmt": "0" // 持仓数量
}
]
}
2.用户持仓 → 霍比特(mapi/futures/order/position)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v2/positionRisk (HMAC SHA256) | symbol :交易对 timestamp:时间required:true |
请与账户推送信息ACCOUNT_UPDATE配合使用,以满足您的及时性和准确性需求。 |
币本位 | GET /dapi/v1/positionRisk (HMAC SHA256) (HMAC SHA256) | symbol :交易对 marginAsset :保证金币种 timestamp:时间required:true |
marginAsset 和 pair 不要同时提供 |
响应模型:
[
{
"entryPrice": "6563.66500", // 开仓均价
"marginType": "isolated", // 逐仓模式或全仓模式
"isAutoAddMargin": "false",
"isolatedMargin": "15517.54150468", // 逐仓保证金
"leverage": "10", // 当前杠杆倍数
"liquidationPrice": "5930.78", // 参考强平价格
"markPrice": "6679.50671178", // 当前标记价格
"maxNotionalValue": "20000000", // 当前杠杆倍数允许的名义价值上限
"positionAmt": "20.000", // 头寸数量,符号代表多空方向, 正数为多,负数为空
"symbol": "BTCUSDT", // 交易对
"unRealizedProfit": "2316.83423560" // 持仓未实现盈亏
"positionSide": "LONG", // 持仓方向
}
]
3.账户余额 → 霍比特(mapi/contract/asset/tradeable)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v2/balance (HMAC SHA256) | timestamp:时间required:true | |
币本位 | GET /dapi/v2/balance (HMAC SHA256) | timestamp:时间required:true |
USDT响应模型:
[
{
"accountAlias": "SgsR", // 账户唯一识别码
"asset": "USDT", // 资产
"balance": "122607.35137903", // 总余额
"crossWalletBalance": "23.72469206", // 全仓余额
"crossUnPnl": "0.00000000" // 全仓持仓未实现盈亏
"availableBalance": "23.72469206", // 可用余额
"maxWithdrawAmount": "23.72469206" // 最大可转出余额
}
]
币本位:
[
{
"accountAlias": "SgsR", // 账户唯一识别码
"asset": "BTC", // 资产
"balance": "0.00250000", // 账户余额
"withdrawAvailable": "0.00250000", // 最大可提款金额,同`GET /dapi/account`中"maxWithdrawAmount"
"crossWalletBalance": "0.00241969", // 全仓账户余额
"crossUnPnl": "0.00000000", // 全仓持仓未实现盈亏
"availableBalance": "0.00241969", // 可用下单余额
"updateTime": 1592468353979
}
]
4.杠杆分层标准→ 霍比特 (ms_api/basic/config)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v1/leverageBracket | symbol:交易对,required:false timestamp:时间,required:true |
symbol和pair不传,返回所有币对的杠杠标准 原有霍比特是根据币对的配置信息和订单的维持保证金率和起始保证金计算得来的 |
币本位 | GET /dapi/v1/leverageBracket | pair:交易,required:false timestamp:时间,required:true |
同上 |
响应模型:
USDT本位:
[
{
"symbol": "ETHUSDT",
"brackets": [
{
"bracket": 1, // 层级
"initialLeverage": 75, // 该层允许的最高初始杠杆倍数
"notionalCap": 10000, // 该层对应的名义价值上限
"notionalFloor": 0, // 该层对应的名义价值下限
"maintMarginRatio": 0.0065, // 该层对应的维持保证金率
"cum":0 // 速算数
},
]
}
]
币本位:
[
{
"pair": "BTCUSD",
"brackets": [
{
"bracket": 1, // 层级
"initialLeverage": 125, // 该层允许的最高初始杠杆倍数
"qtyCap": 50, // 该层对应的数量上限
"qtylFloor": 0, // 该层对应的数量下限
"maintMarginRatio": 0.004 // 该层对应的维持保证金率
},
]
}
]
5.更改持仓模式
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | POST /fapi/v1/positionSide/dual (HMAC SHA256) |
dualSidePosition:(string) required:true "true": 双向持仓模式; "false": 单向持仓模式 timestamp:时间 required:true |
单向模式:下单只能一个方向 双向模式:可以多空双开 目前我们APP使用的是双向模式,这个看是后台统一配置还是APP调用接口? |
币本位 | POST /dapi/v1/positionSide/dual (HMAC SHA256) |
同上 | 同上 |
响应模型:
{
"code": 200,
"msg": "success"
}
6.查询当前用户持仓模式
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v1/positionSide/dual (HMAC SHA256) |
dualSidePosition:(string) required:true "true": 双向持仓模式; "false": 单向持仓模式 timestamp:时间 required:true |
若为true ,请调用更改持仓模式进行更改 |
币本位 | GET /dapi/v1/positionSide/dual (HMAC SHA256) |
同上 | 同上 |
响应模型:
{
"code": 200,
"msg": "success"
}
7.下单 → 霍比特(mapi/contract/order/create)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | POST /fapi/v1/order (HMAC SHA256) | symbol:交易对required:true side:买卖方向 SELL, BUY required:true positionSide:持仓方向,单向持仓模式下非必填,默认且仅可填BOTH;在双向持仓模式下必填,且仅可选择 LONG 或 SHORT type:订单类型 LIMIT, MARKET, STOP, TAKE_PROFIT, STOP_MARKET, TAKE_PROFIT_MARKET, TRAILING_STOP_MARKET required:true quantity:下单数量 使用closePosition不支持此参数 price:委托价格 stopPrice:触发价, 仅 STOP, STOP_MARKET, TAKE_PROFIT, TAKE_PROFIT_MARKET 需要此参数 timeInForce:有效方法 workingType:标记价格还是合约最新价格 stopPrice 触发类型: MARK_PRICE(标记价格), CONTRACT_PRICE(合约最新价). 默认 CONTRACT_PRICE priceProtect:条件单触发保护:"TRUE","FALSE", 默认"FALSE". 仅 STOP, STOP_MARKET, TAKE_PROFIT,TAKE_PROFIT_MARKET 需要此参数 newOrderRespType:响应类型(ACK,RESULT) timestamp:时间 required:true |
|
币本位 | POST /dapi/v1/order (HMAC SHA256) | 同上 |
说明 1.Type 强制要求的参数
LIMIT ------- timeInForce, quantity, price
MARKET ------- quantity
STOP, TAKE_PROFIT ----- quantity, price, stopPrice
STOP_MARKET, TAKE_PROFIT_MARKET ----stopPrice
TRAILING_STOP_MARKET ----- callbackRate
2.根据 order type的不同,某些参数强制要求,具体如下:
LIMIT:timeInForce, quantity, price
MARKET:quantity
3,条件单的触发必须:
STOP, STOP_MARKET 止损单:
买入: 最新合约价格/标记价格高于等于触发价stopPrice
卖出: 最新合约价格/标记价格低于等于触发价stopPrice
TAKE_PROFIT, TAKE_PROFIT_MARKET 止盈单:
买入: 最新合约价格/标记价格低于等于触发价stopPrice
卖出: 最新合约价格/标记价格高于等于触发价stopPrice
4.闪电平仓用此接口实现
响应模型:
{
"clientOrderId": "testOrder", // 用户自定义的订单号
"cumQty": "0",
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 22542179, // 系统订单号
"avgPrice": "0.00000", // 平均成交价
"origQty": "10", // 原始委托数量
"price": "0", // 委托价格
"reduceOnly": false, // 仅减仓
"side": "SELL", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "0", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1566818724722, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
}
8.撤单 → 霍比特(mapi/contract/order/cancel)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | DELETE /fapi/v1/order (HMAC SHA256) | symbol:交易对 required:true orderId:系统订单号 origClientOrderId:用户自定义的订单号 timestamp:时间required:true |
order和origClientOrderId必须使用一个 |
币本位 | DELETE /fapi/v1/order (HMAC SHA256) | 同上 |
响应模型:
{
"avgPrice": "0.0", // 平均成交价
"clientOrderId": "myOrder1", // 用户自定义的订单号
"cumQty": "0",
"cumBase": "0", // 成交金额(标的数量)
"executedQty": "0", // 成交量(张数)
"orderId": 283194212, // 系统订单号
"origQty": "11", // 原始委托数量
"price": "0", // 委托价格
"reduceOnly": false, // 仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "CANCELED", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSD_200925", // 交易对
"pair": "BTCUSD", // 标的交易对
"timeInForce": "GTC", // 有效方法
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1571110484038, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
}
9.全部撤单 → 霍比特(mapi/contract/order/batch_cancel)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | DELETE /fapi/v1/allOpenOrders (HMAC SHA256) 批量撤销订单:DELETE /fapi/v1/batchOrders (HMAC SHA256) |
symbol:交易对 required:true timestamp:时间required:true 批量撤销增加参数: orderIdList:系统订单号, 最多支持10个订单比如[1234567,2345678] origClientOrderIdList:用户自定义的订单号, 最多支持10个订单 比如["my_id_1","my_id_2"] 需要encode双引号。逗号后面没有空格。 |
要实现撤销全部普通委托需要自己做筛选 |
币本位 | DELETE /dapi/v1/allOpenOrders (HMAC SHA256) 批量撤销订单:DELETE /dapi/v1/batchOrders (HMAC SHA256) |
同上 | 同上 |
全部测单:
{
"code": "200",
"msg": "The operation of cancel all open order is done."
}
批量撤单:
[
{
"clientOrderId": "myOrder1", // 用户自定义的订单号
"cumQty": "0",
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 283194212, // 系统订单号
"origQty": "11", // 原始委托数量
"price": "0", // 委托价格
"reduceOnly": false, // 仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "CANCELED", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"timeInForce": "GTC", // 有效方法
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1571110484038, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
},
{
"code": -2011,
"msg": "Unknown order sent."
}
]
10.查询当前委托→ 霍比特(mapi/contract/order/open_orders)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v1/openOrders (HMAC SHA256) | symbol:交易 required:false pair:标的交易对 required:false timestamp:时间required:true (币本位多一个pair:标的交易对,required:false) |
不带symbol参数,会返回所有交易对的挂单 |
币本位 | GET /dapi/v1/openOrders (HMAC SHA256) |
响应模型:
[
{
"avgPrice": "0.00000", // 平均成交价
"clientOrderId": "abc", // 用户自定义的订单号
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 1917641, // 系统订单号
"origQty": "0.40", // 原始委托数量
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"price": "0", // 委托价格
"reduceOnly": false, // 是否仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"time": 1579276756075, // 订单时间
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1579276756075, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
}
]
11.查询历史委托 → 霍比特(mapi/contract/order/trade_orders)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v1/allOrders (HMAC SHA256) | symbol:true required:true orderId:只返回此orderID及之后的订单,缺省返回最近的订单 startTime:起始时间 endTime:结束时间 limit:数量 timestamp:时间 required:true |
|
币本位 | GET /dapi/v1/allOrders (HMAC SHA256) | 多一个pair:标的交易对(symbol两者比选其一) |
响应模型:
[
{
"avgPrice": "0.00000", // 平均成交价
"clientOrderId": "abc", // 用户自定义的订单号
"cumQuote": "0", // 成交金额
"executedQty": "0", // 成交量
"orderId": 1917641, // 系统订单号
"origQty": "0.40", // 原始委托数量
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"price": "0", // 委托价格
"reduceOnly": false, // 是否仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSDT", // 交易对
"time": 1579276756075, // 订单时间
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1579276756075, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
}
]
12.查询历史成交 → 霍比特 (mapi/contract/order/my_trades)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v1/userTrades (HMAC SHA256) | symbol:交易对 required:true orderId:只返回此orderID及之后的订单,缺省返回最近的订单 startTime:起始时间 endTime:结束时间 limit:数量 timestamp:时间 required:true |
|
币本位 | GET /dapi/v1/userTrades (HMAC SHA256) | 同上 |
响应模型:
[
{
"buyer": false, // 是否是买方
"commission": "-0.07819010", // 手续费
"commissionAsset": "USDT", // 手续费计价单位
"id": 698759, // 交易ID
"maker": false, // 是否是挂单方
"orderId": 25851813, // 订单编号
"price": "7819.01", // 成交价
"qty": "0.002", // 成交量
"quoteQty": "15.63802", // 成交额
"realizedPnl": "-0.91539999", // 实现盈亏
"side": "SELL", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"symbol": "BTCUSDT", // 交易对
"time": 1569514978020 // 时间
}
]
13.查询历史成交 → 霍比特 (mapi/contract/order/my_trades)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v1/userTrades (HMAC SHA256) | symbol:交易对 required:true orderId:只返回此orderID及之后的订单,缺省返回最近的订单 startTime:起始时间 endTime:结束时间 limit:数量 timestamp:时间 required:true |
|
币本位 | GET /dapi/v1/userTrades (HMAC SHA256) | 同上 |
响应模型:
[
{
"buyer": false, // 是否是买方
"commission": "-0.07819010", // 手续费
"commissionAsset": "USDT", // 手续费计价单位
"id": 698759, // 交易ID
"maker": false, // 是否是挂单方
"orderId": 25851813, // 订单编号
"price": "7819.01", // 成交价
"qty": "0.002", // 成交量
"quoteQty": "15.63802", // 成交额
"realizedPnl": "-0.91539999", // 实现盈亏
"side": "SELL", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"symbol": "BTCUSDT", // 交易对
"time": 1569514978020 // 时间
}
]
14.查询资金流水 → 霍比特 (mapi/contract/asset/balance_flow)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v1/income (HMAC SHA256) | symbol:交易对 incomeType:收益类型 "TRANSFER","WELCOME_BONUS", "FUNDING_FEE", "REALIZED_PNL", "COMMISSION", "INSURANCE_CLEAR", "DELIVERED_SETTELMENT" orderId:只返回此orderID及之后的订单,缺省返回最近的订单 startTime:起始时间 endTime:结束时间 limit:数量 timestamp:时间required:true |
|
币本位 | GET /fapi/v1/income (HMAC SHA256) | 同上 |
响应模型:
[
{
"symbol": "", // 交易对,仅针对涉及交易对的资金流
"incomeType": "TRANSFER", // 资金流类型
"income": "-0.37500000", // 资金流数量,正数代表流入,负数代表流出
"asset": "BTC", // 资产内容
"info":"WITHDRAW", // 备注信息,取决于流水类型
"time": 1570608000000, // 时间
"tranId":"9689322392", // 划转ID
"tradeId":"" // 引起流水产生的原始交易ID
}
]
15.调整保证金 → 霍比特(mapi/contract/asset/modify_margin)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | POST /fapi/v1/positionMargin (HMAC SHA256) | symbol:交易对required:true positionSide:持仓方向,单向持仓模式下非必填,默认且仅可填BOTH;在双向持仓模式下必填,且仅可选择 LONG 或 SHORT amount:保证金资金 required:true type:调整方向 1: 增加逐仓保证金,2: 减少逐仓保证金required:true timestamp:时间 required:true |
目前我们APP没有使用减少保证金 |
币本位 | POST /dapi/v1/positionMargin (HMAC SHA256) | 同上 | 同上 |
响应模型:
{
"amount": 100.0,
"code": 200,
"msg": "Successfully modify position margin.",
"type": 1
}
16.持仓ADL队列估算
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | GET /fapi/v1/adlQuantile | symbol:交易对 timestamp:时间 required:true |
每30秒更新数据 队列分数0,1,2,3,4,分数越高说明在ADL队列中的位置越靠前 |
币本位 | GET /dapi/v1/adlQuantile | 同上 | 同上 |
响应模型:
[
{
"symbol": "ETHUSDT",
"adlQuantile":
{
// 对于全仓状态下的双向持仓模式的交易对,会返回 "LONG", "SHORT" 和 "HEDGE", 其中"HEDGE"的存在仅作为标记;如果多空均有持仓的情况下,"LONG"和"SHORT"应返回共同计算后相同的队列分数。
"LONG": 3,
"SHORT": 3,
"HEDGE": 0 // HEDGE 仅作为指示出现,请忽略数值
}
},
{
"symbol": "BTCUSDT",
"adlQuantile":
{
// 对于单向持仓模式或者是逐仓状态下的双向持仓模式的交易对,会返回 "LONG", "SHORT" 和 "BOTH" 分别表示不同持仓方向上持仓的adl队列分数
"LONG": 1, // 双开模式下多头持仓的ADL队列估算分
"SHORT": 2, // 双开模式下空头持仓的ADL队列估算分
"BOTH": 0 // 单开模式下持仓的ADL队列估算分
}
}
]
websocket用户相关
1.生成user data stream
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | POST /fapi/v1/listenKey 延长有效期:PUT /fapi/v1/listenKey 关闭:DELETE/fapi/v1/listenKey |
none | 有效期都是60分钟 |
币本位 | POST /dapi/v1/listenKey 延长有效期:PUT /dapi/v1/listenKey 关闭:DELETE/dapi/v1/listenKey |
none | 同上 |
响应模型:
{
"listenKey": "pqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1"
}
2.Balance和Position更新推送 → (/mapi/ws/user:futures_balance、futures_position)持仓和账户余额变更
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | 都是发送用户监听事件 - SUBSCRIBE | 1中的user data stream(listenKey) | 账户更新事件的 event type 固定为 ACCOUNT_UPDATE 字段"m"代表了事件推出的原因,包含了以下可能类型: DEPOSIT WITHDRAW ORDER FUNDING_FEE WITHDRAW_REJECT ADJUSTMENT INSURANCE_CLEAR ADMIN_DEPOSIT ADMIN_WITHDRAW MARGIN_TRANSFER MARGIN_TYPE_CHANGE ASSET_TRANSFER OPTIONS_PREMIUM_FEE OPTIONS_SETTLE_PROFIT> |
币本位 | 同上 | 同上 | 同上 |
USDT响应模型:
{
"e": "ACCOUNT_UPDATE", // 事件类型
"E": 1564745798939, // 事件时间
"T": 1564745798938 , // 撮合时间
"a": // 账户更新事件
{
"m":"ORDER", // 事件推出原因
"B":[ // 余额信息
{
"a":"USDT", // 资产名称
"wb":"122624.12345678", // 钱包余额
"cw":"100.12345678" // 除去逐仓仓位保证金的钱包余额
},
{
"a":"BNB",
"wb":"1.00000000",
"cw":"0.00000000"
}
],
"P":[
{
"s":"BTCUSDT", // 交易对
"pa":"0", // 仓位
"ep":"0.00000", // 入仓价格
"cr":"200", // (费前)累计实现损益
"up":"0", // 持仓未实现盈亏
"mt":"isolated", // 保证金模式
"iw":"0.00000000", // 若为逐仓,仓位保证金
"ps":"BOTH" // 持仓方向
}
]
}
}
币本位:
{
"e": "ACCOUNT_UPDATE", // 事件类型
"E": 1564745798939, // 事件时间
"T": 1564745798938, // 撮合时间
"i": "SfsR", // 账户唯一识别码 accountAlias
"a": // 账户更新事件
{
"m":"ORDER", // 事件推出原因
"B":[ // 余额信息
{
"a":"BTC", // 资产名称
"wb":"122624.12345678", // 钱包余额
"cw":"100.12345678" // 除去逐仓保证金的钱包余额
},
{
"a":"ETH",
"wb":"1.00000000",
"cw":"0.00000000"
}
],
"P":[
{
"s":"BTCUSD_200925", // 交易对
"pa":"0", // 仓位
"ep":"0.0", // 入仓价格
"cr":"200", // (费前)累计实现损益
"up":"0", // 持仓未实现盈亏
"mt":"isolated", // 保证金模式
"iw":"0.00000000", // 若为逐仓,仓位保证金
"ps":"BOTH" // 持仓方向
}
]
}
}
3.订单/交易 更新推送 → 霍比特(mapi/contract/asset/tradeable)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | 都是发送用户监听事件 - SUBSCRIBE | 1中的user data stream(listenKey) | |
币本位 | 都是发送用户监听事件 - SUBSCRIBE | 1中的user data stream(listenKey) |
响应模型:
{
"e":"ORDER_TRADE_UPDATE", // 事件类型
"E":1568879465651, // 事件时间
"T":1568879465650, // 撮合时间
"i": "SfsR", // 账户唯一识别码 accountAlias
"o":{
"s":"BTCUSD_200925", // 交易对
"c":"TEST", // 客户端自定订单ID
// 特殊的自定义订单ID:
// "autoclose-"开头的字符串: 系统强平订单
// "delivery-"开头的字符串: 系统交割平仓单
"S":"SELL", // 订单方向
"o":"LIMIT", // 订单类型
"f":"GTC", // 有效方式
"q":"0.001", // 订单原始数量
"p":"9910", // 订单原始价格
"ap":"0", // 订单平均价格
"sp":"0", // 订单停止价格
"x":"NEW", // 本次事件的具体执行类型
"X":"NEW", // 订单的当前状态
"i":8886774, // 订单ID
"l":"0", // 订单末次成交量
"z":"0", // 订单累计已成交量
"L":"0", // 订单末次成交价格
"ma": "BTC", // 保证金资产类型
"N": "BTC", // 该成交手续费资产类型
"n": "0", // 该成交手续费数量
"T":1568879465651, // 成交时间
"t":0, // 成交ID
"rp": "0", // 该成交已实现盈亏
"b":"0", // 买单净值
"a":"9.91", // 卖单净值
"m": false, // 该成交是作为挂单成交吗?
"R":false , // 是否是只减仓单
"wt": "CONTRACT_PRICE", // 触发价类型
"ot": "LIMIT", // 原始订单类型
"ps":"LONG", // 持仓方向
"cp":false, // 是否为触发平仓单
"AP":"7476.89", // 追踪止损激活价格
"cr":"5.0", // 追踪止损回调比例
"pP": false // 是否开启条件单触发保护
}
}
4.订单/交易 更新推送 → 霍比特(mapi/contract/asset/tradeable)
合约 | 接口 | 参数 | 说明 |
---|---|---|---|
USDT | 都是发送用户监听事件 - SUBSCRIBE | 1中的user data stream(listenKey) | 当有新订单创建、订单有新成交或者新的状态变化时会推送此类事件 事件类型统一为 ORDER_TRADE_UPDATE |
币本位 | 都是发送用户监听事件 - SUBSCRIBE | 1中的user data stream(listenKey) | 当有新订单创建、订单有新成交或者新的状态变化时会推送此类事件 事件类型统一为 ORDER_TRADE_UPDATE |
响应模型:
{
"e":"ORDER_TRADE_UPDATE", // 事件类型
"E":1568879465651, // 事件时间
"T":1568879465650, // 撮合时间
"i": "SfsR", // 账户唯一识别码 accountAlias
"o":{
"s":"BTCUSD_200925", // 交易对
"c":"TEST", // 客户端自定订单ID
// 特殊的自定义订单ID:
// "autoclose-"开头的字符串: 系统强平订单
// "delivery-"开头的字符串: 系统交割平仓单
"S":"SELL", // 订单方向
"o":"LIMIT", // 订单类型
"f":"GTC", // 有效方式
"q":"0.001", // 订单原始数量
"p":"9910", // 订单原始价格
"ap":"0", // 订单平均价格
"sp":"0", // 订单停止价格
"x":"NEW", // 本次事件的具体执行类型
"X":"NEW", // 订单的当前状态
"i":8886774, // 订单ID
"l":"0", // 订单末次成交量
"z":"0", // 订单累计已成交量
"L":"0", // 订单末次成交价格
"ma": "BTC", // 保证金资产类型
"N": "BTC", // 该成交手续费资产类型
"n": "0", // 该成交手续费数量
"T":1568879465651, // 成交时间
"t":0, // 成交ID
"rp": "0", // 该成交已实现盈亏
"b":"0", // 买单净值
"a":"9.91", // 卖单净值
"m": false, // 该成交是作为挂单成交吗?
"R":false , // 是否是只减仓单
"wt": "CONTRACT_PRICE", // 触发价类型
"ot": "LIMIT", // 原始订单类型
"ps":"LONG", // 持仓方向
"cp":false, // 是否为触发平仓单
"AP":"7476.89", // 追踪止损激活价格
"cr":"5.0", // 追踪止损回调比例
"pP": false // 是否开启条件单触发保护
}
}
websocket用户相关
币本位独有的事件:用户通过listenKey与服务器建立成功的用户信息websocket连接之后,可以使用请求获取账户信息
{
"method": "REQUEST",
"params":
[
"@account", // request name 1
"@balance" // request name 2 (如有)
],
"id": 12 // request ID.
}
对应响应(可根据req作区分):
{
"result"[
{
"req":"@account", // request name 1
"res": // request name 1 的请求结果
...
},
{
"req":"@balance", // request name 2 (如有)
"res": // request name 2 的请求结果 (如有)
...
}
]
"id": 12 // ID
}
账户信息:@account
响应
{
"id":1, // request ID
"result":[
{
"req":"gN0SiRrevtS4O0ufdCpzd4N0MzHu2lVmwbHh6hj4g9eTT9Yfe55eUc4klmsEhnwC@account", // request name
"res":{
"feeTier":0, // 账户等级
"canTrade":true, // 是否可以交易
"canDeposit":true, // 是否可以转入资金
"canWithdraw":true, // 是否可以转出资金
"accountAlias":"fsR" // 账户唯一标识
}
}
]
}
账户余额:Request Name @balance
响应
{
"id":2, // ID
"result":[
{
"req":"gN0SiRrevtS4O0ufdCpzd4N0MzHu2lVmwbHh6hj4g9eTT9Yfe55eUc4klmsEhnwC@balance", // reqeust name
"res":{
"accountAlias":"fsR", // 账户唯一标识
"balances":[ // 余额信息
{
"asset":"BTC", // 资产
"balance":"0.00241628", // 账户余额
"crossWalletBalance":"0.00235137", // 可用于全仓的账户余额
"crossUnPnl":"0.00000000", // 全仓持仓的未实现盈亏
"availableBalance":"0.00235137", // 可下单余额
"maxWithdrawAmount":"0.00235137" // 最大可转出余额
}
]
}
}
]
}
账户持仓:Request Name @position
-------------
对于单向持仓模式,仅会展示"BOTH"方向的持仓
对于双向持仓模式,会展示所有"BOTH", "LONG", 和"SHORT"方向的持仓
响应
{
"id":3,
"result":[
{
"req":"gN0SiRrevtS4O0ufdCpzd4N0MzHu2lVmwbHh6hj4g9eTT9Yfe55eUc4klmsEhnwC@position",
"res":{
"positions":[
{
"entryPrice":"12044.90000003",
"marginType":"ISOLATED", // 保证金类型, "CROSSED"表示全仓,"ISOLATED"表示逐仓
"isAutoAddMargin":false,
"isolatedMargin":"0.00006388", // 逐仓保证金余额
"leverage":125, // 当前杠杆倍数
"liquidationPrice":"12002.39091452", // 估计强平价
"markPrice":"12046.06021667", // 当前标记价格
"maxQty":"50", // 当前杠杆倍数允许的数量上限(标的数量)
"positionAmt":"1", // 持仓数量
"symbol":"BTCUSD_200925", // 交易对
"unRealizedProfit":"0.00000079", // 持仓未实现盈亏
"positionSide":"LONG" // 持仓方向
}
]
}
}
]
}