币安合约openAPI说明

一,产品上存在的差异性

  • 账户资产:在USDT和本币位上是分开的,若需要统一账户资产,后端对这部分要进行整合。

  • 开仓方式:全仓和逐仓,我们现有的模式是逐仓,用户持仓的保证金通过自己操作进行调整,后端是否需要统一配置为全用户逐仓模式

  • 杠杆:单个交易对的杠杆值是与用户挂钩的,而且持仓和挂单都使用用户在该交易对下设置的杠杆值(同一保证金模式下),调整杠杆值对所有的挂单和持仓生效,杠杆调整变为连续的正整数

  • 持仓方式:单向持仓和双向持仓,我们目前使用的模式是双向持仓,这个后台要么同一配置要么前端调用接口设置

  • 数量计价方式:USDT只有数量,没有数量和多少张之间的兑换(例如XRPUSDT,数量就是多少个XRP),币本位上有张数和币之间的兑换(例如BTCUSD一个BTC等于194张),交易盘口数量不是多少张而是实时挂单数量

  • 风险限额:在币安APP上未看到相关功能和接口配置

  • 委托:币安把所有的挂单委托全部放在一起的,没有像我们一样做普通委托,计划委托和止盈止损做切分,接口也是全部的类型放在一起的,当前委托没有分页功能数据是全量,前端可根据挂单类型自行切分(历史委托暂不能实现)

  • 撤单:我们现有的APP只支持撤销普通委托的订单,币安支持全部撤单(当前交易对下的所有挂单),批量撤单(针对想要的orderList去进行撤单),可以撤销所有类型的订单(不局限于普通委托)

  • 持仓:无可平量概念,平台自动减仓功能说明

  • 订单:需要区分USDT订单和币本位订单,账单记录也需要

二,接口细则

说明

  • 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   // 撮合引擎时间
    }
]
  1. 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:<symbol>@miniTicker
StreamNam:!miniTicker@arr
例如wss://stream.binancefuture.com/ws/btcusdt@miniTicker)
socket 完整版 StreamName:<symbol>@ticker
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:<symbol>@markPrice StreamName:!markPrice@arr 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:<symbol>@kline_<interval> 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"   // 忽略此参数
  }
}
  1. 深度 → 霍比特(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:
<symbol>@depth<levels>
或 <symbol>@depth<levels>@500ms
或 <symbol>@depth<levels>@100ms
增量:
Stream 名称:
<symbol>@depth
OR <symbol>@depth@500ms
OR <symbol>@depth@100ms
响应模型:
{
  "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:<symbol>@aggTrade
响应模型:
[
  {
    "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":"<listenKey>@account",   // request name 1
            "res":            // request name 1 的请求结果
                ...
        },
        {
            "req":"<listenKey>@balance",   // request name 2 (如有)
            "res":            // request name 2 的请求结果 (如有)
                ...
        }
    ]
    "id": 12     // ID
}
账户信息:<listenKey>@account
响应
{
  "id":1,       // request ID
  "result":[
    {
      "req":"gN0SiRrevtS4O0ufdCpzd4N0MzHu2lVmwbHh6hj4g9eTT9Yfe55eUc4klmsEhnwC@account",  // request name
      "res":{       
        "feeTier":0,        // 账户等级
        "canTrade":true,    // 是否可以交易
        "canDeposit":true,  // 是否可以转入资金
        "canWithdraw":true, // 是否可以转出资金
        "accountAlias":"fsR"    // 账户唯一标识
      }
    }
  ]
}
账户余额:Request Name <listenKey>@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 <listenKey>@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"       // 持仓方向
          }
        ]
      }
    }
  ]
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,710评论 4 376
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,839评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,295评论 0 255
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,776评论 0 223
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,198评论 3 297
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,074评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,200评论 2 322
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,986评论 0 214
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,733评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,877评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,348评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,675评论 3 265
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,393评论 3 246
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,209评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,996评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,212评论 2 287
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 36,003评论 2 280

推荐阅读更多精彩内容