English
NAV
console python

中文社区和参考资料

欢迎使用 Bybit APIs 和 Websocket官方文档!

如果您在使用API的过程中遇到问题需要帮助,请加入我们的 官方Telegram API讨论群

中文社区和参考资料

更新日志

2021-09-24

REST API

2021-09-14

Websocket API

REST API

2021-09-03

Websocket API

2021-08-23

REST API

2021-07-29

REST API

2021-06-28

REST API

2021-06-18

REST API

2021-06-03

REST API

2021-05-11

REST API

2021-05-11

REST API

2021-04-22

REST API

2021-04-07

REST API

2021-04-02

REST API

2021-03-24

2021-03-22

2021-03-15

REST API

2021-03-12

REST API

2021-03-11

2021-03-04

2021-02-02

Websocket API

2021-01-25

REST API

2021-01-12

REST API

2020-12-31

REST API

服务升级后新增v2接口路由,列表如下:

2020-12-17

REST API

2020-11-20

REST API

2020-11-12

REST API

2020-11-10

Websocket API

废弃接口将于2020年11月30日彻底下线

REST API

旧版API将在2020年12月10日进行废弃处理。届时旧版API的频率限制将会降低到原有的1/2,并在12月17日彻底下线。

2020

2020-11-02

REST API

2020-10-26

REST API

2020-10-21

REST API

2020-10-12

REST API

2020-09-27

REST API

Websocket API

2020-09-15

REST API

2020-08-19

REST API

2020-07-07

REST API

2020-06-22

REST API

2020-05-21

REST API

2020-04-29

REST API

2020-04-27

REST API

2020-04-17

REST API

2020-04-14

REST API

2020-03-31

REST API

2020-03-26

REST API

2020-03-16

REST API

2020-03-09

REST API

2020-03-02

Websocket API

2020-02-26

REST API

2020-02-10

REST API

2019

2019-12-27

REST API

2019-12-18

REST API

Websocket API

2019-12-13

REST API

2019-12-02

REST API

2019-11-19

REST API

2019-11-07

REST API

2019-11-04

REST API

Websocket API

2019-10-22

REST API

Websocket API

FAQ

reduce_only and close_on_trigger - what's the difference?

Why aren't all my orders showing on the website?

Calculating order size based on available wallet balance

Can I exchange assets with the API?

Where are Bybit's servers located?

AWS Singapore, Availability Zone ID apse1-az3.

How do I get funds for testnet?

To get testnet funds, please contact the website's customer support using the yellow support button shown in the bottom-right corner.

Why are my Closed PNL prices inaccurate?

Why are values returned to too many decimal places? (float precision issue)

鉴权/认证

所有private接口都需要认证,public 接口不需要认证。

公共参数

需要签名的接口必须包含以下参数:

另外我们提供可选的recv_window参数(单位是毫秒,默认值为5000),来指定请求在多长时间内有效,同时用来防止重放攻击。

构建请求

拼接参数示例(以查询账号余额接口为例):

param_str = "api_key=B2Rou0PLPpGqcU0Vu2&leverage=100&symbol=BTCUSD&timestamp=1542434791747"

# api_key=B2Rou0PLPpGqcU0Vu2&
# leverage=100&
# symbol=BTCUSD&
# timestamp=1542434791747

参数按照 字母顺序 排列,然后计算sign

1. 所有参数按照字母顺序排序,然后按照query string格式拼接。

2. 使用HMAC_SHA256算法对第1步中拼接的query string签名,并转换为16进制字符串,得出sign参数。

GET请求格式(查询账号余额):

GET /v2/private/order?symbol=BTCUSD&api_key=B2Rou0PLPpGqcU0Vu2&timestamp=1542434791000&sign=670e3e4aa32b243f2dedf1dafcec2fd17a440e71b05681550416507de591d908 HTTP/1.1
Host: api-testnet.bybit.com

POST请求格式(创建订单):

POST /v2/private/order/cancel HTTP/1.1
Host: api-testnet.bybit.com
Content-Type: application/json

{
    "api_key": "B2Rou0PLPpGqcU0Vu2",
    "symbol": "BTCUSD",
    "order_id": "3bd1844f-f3c0-4e10-8c25-10fea03763f6",
    "timestamp": 1542434791000,
    "sign": "670e3e4aa32b243f2dedf1dafcec2fd17a440e71b05681550416507de591d908"
}

3. 将sign参数加到请求参数中即可;注意GETPOST请求参数格式不同,详见右边示例。

行情接口

以下市场行情数据接口不需要验权.

Orderbook

请求示例

curl https://api.bybit.com/v2/public/orderBook/L2?symbol=BTCUSD
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Market.Market_orderbook(symbol="BTCUSD").result())

响应示例

{
    "ret_code": 0,                              // return code
    "ret_msg": "OK",                            // error message
    "ext_code": "",                             // additional error code
    "ext_info": "",                             // additional error info
    "result": [
        {
            "symbol": "BTCUSD",                 // symbol
            "price": "9487",                    // price
            "size": 336241,                     // size (in USD contracts)
            "side": "Buy"                       // side
        },
        {
            "symbol": "BTCUSD",                 // symbol
            "price": "9487.5",                  // price
            "size": 522147,                     // size (in USD contracts)
            "side": "Sell"                      // side
        }
    ],
    "time_now": "1567108756.834357"             // UTC timestamp
}

获取Bybit当前Orderbook信息.

HTTP 请求

GET /v2/public/orderBook/L2

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型

返回参数

参数 类型 说明
symbol string 合约类型
price string 委托价格
size integer 合约数量
side string 方向

查询K线数据

请求示例

curl https://api.bybit.com/v2/public/kline/list?symbol=BTCUSD&interval=1&limit=2&from=1581231260
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Kline.Kline_get(symbol="BTCUSD", interval="m", **{'from':1581231260}).result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": [{
        "symbol": "BTCUSD",
        "interval": "1",
        "open_time": 1581231300,
        "open": "10112.5",
        "high": "10112.5",
        "low": "10112",
        "close": "10112",
        "volume": "75981",
        "turnover": "7.51394369"
    }, {
        "symbol": "BTCUSD",
        "interval": "1",
        "open_time": 1581231360,
        "open": "10112",
        "high": "10112.5",
        "low": "10112",
        "close": "10112",
        "volume": "24616",
        "turnover": "2.4343353100000003"
    }],
    "time_now": "1581928016.558522"
}

查询K线数据

HTTP 请求

GET /v2/public/kline/list

请求参数

parameter 是否必须 类型 说明
symbol true string 合约类型
interval true string 数据更新频率. 枚举值: 1 3 5 15 30 60 120 240 360 720 "D" "M" "W"
from true integer 起始时间戳(单位秒)
limit false integer 每页数量, 最大200. 默认每页200条

返回参数

参数 类型 说明
symbol string 合约类型
interval string 数据更新频率. 枚举值: 1 3 5 15 30 60 120 240 360 720 "D" "M" "W"
open_time integer 开始时间
open string 开始价格
high string 最高价格
low string 最低价格
close string 结束价格
volume string 交易量
turnover string 成交金额

合约最新信息

请求示例

curl https://api.bybit.com/v2/public/tickers
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Market.Market_symbolInfo().result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": [
        {
            "symbol": "BTCUSD",
            "bid_price": "7230",
            "ask_price": "7230.5",
            "last_price": "7230.00",
            "last_tick_direction": "ZeroMinusTick",
            "prev_price_24h": "7163.00",
            "price_24h_pcnt": "0.009353",
            "high_price_24h": "7267.50",
            "low_price_24h": "7067.00",
            "prev_price_1h": "7209.50",
            "price_1h_pcnt": "0.002843",
            "mark_price": "7230.31",
            "index_price": "7230.14",
            "open_interest": 117860186,
            "open_value": "16157.26",
            "total_turnover": "3412874.21",
            "turnover_24h": "10864.63",
            "total_volume": 28291403954,
            "volume_24h": 78053288,
            "funding_rate": "0.0001",
            "predicted_funding_rate": "0.0001",
            "next_funding_time": "2019-12-28T00:00:00Z",
            "countdown_hour": 2,
            "delivery_fee_rate": "0",
            "predicted_delivery_price": "0.00",
            "delivery_time": ""
        },
        {
            "symbol": "BTCUSDM21",
            "bid_price": "67895",
            "ask_price": "67895.5",
            "last_price": "67895.50",
            "last_tick_direction": "ZeroPlusTick",
            "prev_price_24h": "68073.00",
            "price_24h_pcnt": "-0.002607",
            "high_price_24h": "69286.50",
            "low_price_24h": "66156.00",
            "prev_price_1h": "68028.50",
            "price_1h_pcnt": "-0.001955",
            "mark_price": "67883.88",
            "index_price": "62687.89",
            "open_interest": 531821673,
            "open_value": "0.00",
            "total_turnover": "85713.36",
            "turnover_24h": "2371.47",
            "total_volume": 5352251354,
            "volume_24h": 160716002,
            "funding_rate": "0",
            "predicted_funding_rate": "0",
            "next_funding_time": "",
            "countdown_hour": 0,
            "delivery_fee_rate": "0.0005",
            "predicted_delivery_price": "0.00",
            "delivery_time": "2021-06-25T08:00:00Z"
        }
    ],
    "time_now": "1577484619.817968"
}

获取Bybit的最新合约信息

HTTP 请求

GET /v2/public/tickers

请求参数

参数 是否必须 类型 说明
symbol false string 合约类型

返回参数

参数 类型 说明
symbol string 合约类型
bid_price string 第一笔挂单买入价
ask_price string 第一笔挂单卖出价
last_price string 最新成交价
tick_direction string 价格变化方向
prev_price_24h string 24小时前的整点市价
price_24h_pcnt string 市价相对24h变化百分比
high_price_24h string 最近 24 小时最高价
low_price_24h string 最近 24 小时最低价
prev_price_1h string 1小时前的整点市价
price_1h_pcnt string 市价相对1小时前变化百分比
mark_price string 标记价格
index_price string 指数价格
open_interest number 未平仓合约数量
open_value string 未平仓价值
total_turnover string 总营业额
turnover_24h string 24小时营业额
total_volume number 总交易量
volume_24h number 最近 24 小时成交量
funding_rate string 资金费率
predicted_funding_rate string 预测资金费率
next_funding_time string 下次结算资金费用时间
countdown_hour number 结算资金费用剩余时间
delivery_fee_rate string 交割费率,仅交割合约有效
predicted_delivery_price string 预期交割价,仅交割合约有效
delivery_time string 交割时间,仅交割合约有效

平台交易历史数据

请求示例

curl https://api.bybit.com/v2/public/trading-records?symbol=BTCUSD
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Market.Market_tradingRecords(symbol="BTCUSD").result())

响应示例

{
    "ret_code": 0,                                   // error code 0 means success
    "ret_msg": "OK",                                 // error message
    "ext_code": "",
    "ext_info": "",
    "result": [
        {
            "id": 7724919,                                   // ID
            "symbol": "BTCUSD",                             // contract type
            "price": 9499.5,                                // execution price
            "qty": 9500,                                    // execution quantity
            "side": "Buy",                                  // side
            "time": "2019-11-19T08:03:04.077Z"              // UTC time
        }
    ],
    "time_now": "1567109419.049271"
}

获取Bybit的最近成交数据。如果您想获取历史所有的成交记录,请通过这里下载历史行情。

HTTP 请求

GET /v2/public/trading-records

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
from false int 起始ID. 默认: 返回最新数据
limit false int 默认返回500条数据. 最大返回1000条数据

返回参数

参数 类型 说明
id number 最新数据ID
symbol string 合约类型
price number 交易价格
qty number 交易数量
side string 方向
time string UTC 时间

查询合约信息

请求示例

curl https://api.bybit.com/v2/public/symbols
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Symbol.Symbol_get().result())

响应示例

{
    "ret_code":0,
    "ret_msg":"OK",
    "ext_code":"",
    "ext_info":"",
    "result":[
        {
            "name":"BTCUSD",
            "alias":"BTCUSD",
            "status":"Trading",
            "base_currency":"BTC",
            "quote_currency":"USD",
            "price_scale":2,
            "taker_fee":"0.00075",
            "maker_fee":"-0.00025",
            "leverage_filter":{
                "min_leverage":1,
                "max_leverage":100,
                "leverage_step":"0.01"
            },
            "price_filter":{
                "min_price":"0.5",
                "max_price":"999999.5",
                "tick_size":"0.5"
            },
            "lot_size_filter":{
                "max_trading_qty":1000000,
                "min_trading_qty":1,
                "qty_step":1
            }
        },
        {
            "name":"EOSUSD",
            "alias":"EOSUSD",
            "status":"Trading",
            "base_currency":"EOS",
            "quote_currency":"USD",
            "price_scale":3,
            "taker_fee":"0.00075",
            "maker_fee":"-0.00025",
            "leverage_filter":{
                "min_leverage":1,
                "max_leverage":50,
                "leverage_step":"0.01"
            },
            "price_filter":{
                "min_price":"0.001",
                "max_price":"1999.999",
                "tick_size":"0.001"
            },
            "lot_size_filter":{
                "max_trading_qty":1000000,
                "min_trading_qty":1,
                "qty_step":1
            }
        },
        {
            "name":"BTCUSDT",
            "alias":"BTCUSDT",
            "status":"Trading",
            "base_currency":"BTC",
            "quote_currency":"USDT",
            "price_scale":2,
            "taker_fee":"0.00075",
            "maker_fee":"-0.00025",
            "leverage_filter":{
                "min_leverage":1,
                "max_leverage":100,
                "leverage_step":"0.01"
            },
            "price_filter":{
                "min_price":"0.5",
                "max_price":"999999.5",
                "tick_size":"0.5"
            },
            "lot_size_filter":{
                "max_trading_qty":100,
                "min_trading_qty":0.001,
                "qty_step":0.001
            }
        },
        {
            "name":"BTCUSDM21",
            "alias":"BTCUSD0625",
            "status":"Trading",
            "base_currency":"BTC",
            "quote_currency":"USD",
            "price_scale":2,
            "taker_fee":"0.00075",
            "maker_fee":"-0.00025",
            "leverage_filter":{
                "min_leverage":1,
                "max_leverage":100,
                "leverage_step":"0.01"
            },
            "price_filter":{
                "min_price":"0.5",
                "max_price":"999999.5",
                "tick_size":"0.5"
            },
            "lot_size_filter":{
                "max_trading_qty":1000000,
                "min_trading_qty":1,
                "qty_step":1
            }
        }
    ],
    "time_now":"1615801223.589808"
}

获取合约信息.

HTTP 请求

GET /v2/public/symbols

请求参数

parameter 是否必须 类型 说明

返回参数

参数 类型 说明
name string 合约名称
alias string 合约名称
status string 合约状态
base_currency string 基础货币
quote_currency string 报价货币
price_scale number 价格范围
taker_fee string taker 手续费
maker_fee string maker 手续费
leverage_filter > min_leverage number 最小杠杆数
leverage_filter > max_leverage number 最大杠杆数
leverage_filter > leverage_step string 杠杆最小增加或减少数量
price_filter > min_price string 最小价格
price_filter > max_price string 最大价格
price_filter > tick_size string 价格最小增加或减少数量
lot_size_filter > max_trading_qty number 最大交易数量
lot_size_filter > min_trading_qty number 最小交易数量
lot_size_filter > qty_step number 合约数量最小单位

标记价格K线

请求示例

curl "https://api.bybit.com/v2/public/mark-price-kline?symbol=BTCUSD&interval=1&limit=2&from=1581231260"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Kline.Kline_markPrice(symbol="BTCUSD", interval="30",limit=200, **{'from':1600544880}).result())

响应示例


{
    "ret_code":0,
    "ret_msg":"OK",
    "ext_code":"",
    "ext_info":"",
    "result":[
        {
            "id":2,
            "symbol":"BTCUSD",
            "period":"1",
            "start_at":1582231260,
            "open":100,
            "high":120,
            "low":88,
            "close":115
        }
    ],
    "time_now":"1591263582.601795"
}

查询标记价格K线

HTTP 请求

GET /v2/public/mark-price-kline

请求参数

parameter 是否必须 类型 说明
symbol true string 合约类型
interval true string 数据更新频率. 枚举值: 1 3 5 15 30 60 120 240 360 720 "D" "M" "W"
from true integer 起始时间戳(单位秒)
limit false integer 最大200. 默认每页200条

返回参数

参数 类型 说明
symbol string 合约类型
period string 数据记录周期. 5min 15min 30min 1h 4h 1d
start_at integer 开始时间戳(秒)
open integer 开始价格
high integer 最高价格
low integer 最低价格
close integer 结束价格

查询指数价格K线数据

请求示例

curl "https://api.bybit.com/v2/public/index-price-kline?symbol=BTCUSD&interval=1&limit=2&from=1581231260"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Kline.Kline_indexPrice(symbol="BTCUSD", interval="1", **{'from':1615067084}).result())

响应示例

{
    "ret_code":0,
    "ret_msg":"OK",
    "ext_code":"",
    "ext_info":"",
    "result":[
        {
            "symbol":"BTCUSD",
            "period":"1",
            "open_time":1582231260,
            "open":"10106.09",
            "high":"10108.75",
            "low":"10104.66",
            "close":"10108.73"
        }
    ],
    "time_now":"1591263582.601795"
}

指数价格K线

HTTP 请求

GET /v2/public/index-price-kline

请求参数

parameter 是否必须 类型 说明
symbol true string 合约类型
interval true string 数据更新频率. 枚举值: 1 3 5 15 30 60 120 240 360 720 "D" "M" "W"
from true integer 起始时间戳(单位秒)
limit false integer 最大200. 默认每页200条

返回参数

参数 类型 说明
symbol string 合约类型
period string 数据记录周期. 5min 15min 30min 1h 4h 1d
open_time integer 开始时间戳(秒)
open string 开始价格
high string 最高价格
low string 最低价格
close string 结束价格

查询溢价K线数据

请求示例

curl "https://api.bybit.com/v2/public/premium-index-kline?symbol=BTCUSD&interval=1&limit=2&from=1581231260"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Kline.Kline_premiumIndexPrice(symbol="BTCUSD", interval="1", **{'from':1615067084}).result())

响应示例

{
    "ret_code":0,
    "ret_msg":"OK",
    "ext_code":"",
    "ext_info":"",
    "result":[
        {
            "symbol":"BTCUSD",
            "period":"1",
            "open_time":1582231260,
            "open":"0.000588",
            "high":"0.000618",
            "low":"0.000588",
            "close":"0.000618"
        }
  ],
    "time_now":"1591263582.601795"
}

溢价K线

HTTP 请求

GET /v2/public/premium-index-kline

请求参数

parameter 是否必须 类型 说明
symbol true string 合约类型
interval true string 数据更新频率. 枚举值: 1 3 5 15 30 60 120 240 360 720 "D" "M" "W"
from true integer 起始时间戳(单位秒)
limit false integer 最大200. 默认每页200条

返回参数

参数 类型 说明
symbol string 合约类型
period string 数据记录周期. 5min 15min 30min 1h 4h 1d
open_time integer 开始时间戳(秒)
open string 开始价格
high string 最高价格
low string 最低价格
close string 结束价格

平台进阶数据

未平合约持仓数量

请求示例

curl https://api.bybit.com/v2/public/open-interest?symbol=BTCUSD&period=5min
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Market.Market_openInterest(symbol="BTCUSD", limit=2, period="5min").result())

响应示例

{
    "ret_code":0,
    "ret_msg":"OK",
    "ext_code":"",
    "ext_info":"",
    "result":[
        {
            "open_interest":371491978,
            "timestamp":1597658100,
            "symbol":"BTCUSD"
        },
        {
            "open_interest":370696076,
            "timestamp":1597657800,
            "symbol":"BTCUSD"
        }
    ],
    "time_now":"1597658304.938839"
}

获取Bybit各个合约的持仓数量

HTTP 请求

GET /v2/public/open-interest

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
period true string 数据记录周期. 5min 15min 30min 1h 4h 1d
limit false int 返回数据最大200条. 默认返回50条

返回参数

参数 类型 说明
open_interest number 未平仓合约数量
timestamp number 时间戳(秒)
symbol string 合约类型

主动成交大额订单

请求示例

curl https://api.bybit.com/v2/public/big-deal?symbol=BTCUSD
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Market.Market_bigDeal(symbol="BTCUSD", limit=2).result())

响应示例

{
    "ret_code":0,
    "ret_msg":"OK",
    "ext_code":"",
    "ext_info":"",
    "result":[
        {
            "symbol":"BTCUSD",
            "side":"Sell",
            "timestamp":1597623362,
            "value":1242368
        },
        {
            "symbol":"BTCUSD",
            "side":"Buy",
            "timestamp":1597623363,
            "value":1242368
        }
    ],
    "time_now":"1597658434.219859"
}

获取Bybit主动成交大于500000USD的订单,时间范围是最近24h内。

HTTP 请求

GET /v2/public/big-deal

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
limit false int 返回数据最大1000条. 默认返回500条

返回参数

参数 类型 说明
symbol string 合约类型
side string 方向
timestamp number 时间戳(秒)
value number 订单价值

用户多空持仓比率

请求示例

curl https://api.bybit.com/v2/public/account-ratio?symbol=BTCUSD&period=5min
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Market.Market_accountRatio(symbol="BTCUSD", limit=2, period="5min").result())

响应示例

{
    "ret_code":0,
    "ret_msg":"OK",
    "ext_code":"",
    "ext_info":"",
    "result":[
        {
            "symbol":"BTCUSD",
            "buy_ratio":0.6538,
            "sell_ratio":0.3462,
            "timestamp":1597659000
        },
        {
            "symbol":"BTCUSD",
            "buy_ratio":0.6533,
            "sell_ratio":0.3467,
            "timestamp":1597658700
        }
    ],
    "time_now":"1597659230.743313"
}

获取Bybit平台用户多空持仓比率

HTTP 请求

GET /v2/public/account-ratio

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
period true string 数据记录周期. 5min 15min 30min 1h 4h 1d
limit false int 返回数据最大500条. 默认返回50条

返回参数

参数 类型 说明
symbol string 合约类型
buy_ratio number 多仓人数占比
sell_ratio number 空仓人数占比
timestamp number 时间戳(秒)

账户/交易接口

以下账户/交易接口都需要鉴权.

活动单

创建活动委托单

请求示例

curl https://api.bybit.com/v2/private/order/create \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","side":"Buy","symbol":"BTCUSD","order_type":"Market","qty":10,"time_in_force":"GoodTillCancel","timestamp":{timestamp},"sign":"{sign}"}'

import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Order.Order_new(side="Buy",symbol="BTCUSD",order_type="Market",qty=1,time_in_force="GoodTillCancel").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": {
        "user_id": 1,
        "order_id": "335fd977-e5a5-4781-b6d0-c772d5bfb95b",
        "symbol": "BTCUSD",
        "side": "Buy",
        "order_type": "Limit",
        "price": 8800,
        "qty": 1,
        "time_in_force": "GoodTillCancel",
        "order_status": "Created",
        "last_exec_time": 0,
        "last_exec_price": 0,
        "leaves_qty": 1,
        "cum_exec_qty": 0,
        "cum_exec_value": 0,
        "cum_exec_fee": 0,
        "reject_reason": "",
        "order_link_id": "",
        "created_at": "2019-11-30T11:03:43.452Z",
        "updated_at": "2019-11-30T11:03:43.455Z"
    },
    "time_now": "1575111823.458705",
    "rate_limit_status": 98,
    "rate_limit_reset_ms": 1580885703683,
    "rate_limit": 100
}

市价活动委托: 一个传统的市场价格订单,会以当前的最优价格为您成交订单。当且仅当选择市价单时,price可为空!为了保护市价单遭遇严重的滑点,Bybit将市价单转为限价单进入撮合,买单价格高于最优卖价,卖单价格低于最优买价。限价价格和成交价格均可通过用户成交记录接口查询。

限价活动委托: 您可以为您的订单设置一个执行价格,当市场价格达到您的设置价格时,系统会为您成交订单。

止盈止损: 您仅能在开仓时设置止盈止损条件单,一旦持有仓位后提交活动委托时关联的止盈止损则不会生效。

委托数量: 表示您要购买/卖出的永续合约数,对于委托数量目前Bybit只允许提交正整数。

委托价格: 如果是下限价单,该参数为必填. 在没有仓位时,做多的委托价格需高于市价的10%、低于1百万。如有仓位时则需优于强平价。价格增减最小单位请参考交易对接口响应中的price_filter字段。

自定义条件单ID: 您可以自定义活动委托订单ID,我们会为您关联到系统的订单ID,并把系统的唯一订单ID在活动委托创建成功后一并返回给您,您可以使用该订单ID去取消活动委托,同时要求您传递的自定义订单ID最大长度不超过36个字段且唯一

每个账户最多可同时持有500个活动订单。这是针对合约的,因此可以允许出现例如:账户同时持有300个BTCUSD的活动单、280个ETHUSD合约的活动单。

当您达到订单上限的时候的时候,仍然可以下单设置了参数reduce_onlycloseOnTrigger的订单。

HTTP 请求

POST /v2/private/order/create

请求参数

参数 是否必须 类型 说明
side true string 方向
symbol true string 合约类型
order_type true string 委托单价格类型
qty true integer 委托数量(1个委托1美元),只能为正整数
price false number 委托价格
time_in_force true string 执行策略
close_on_trigger false bool 触发后平仓. 如果下平仓单,请设置为true,避免因为保证金不足而导致下单失败
order_link_id false string 机构自定义订单ID, 最大长度36位,且同一机构下自定义ID不可重复
take_profit false number 止盈价格,仅开仓时生效
stop_loss false number 止损价格,仅开仓时生效
tp_trigger_by false string 止盈激活价格类型,默认为LastPrice
sl_trigger_by false string 止损激活价格类型,默认为LastPrice
reduce_only false bool 只减仓

返回参数

参数 类型 说明
user_id number 用户ID
order_id string 订单ID
symbol string 合约类型
side string 方向
order_type string 交易记录类型
price number 委托价格
qty number 委托数量
time_in_force string 执行策略
order_status string 订单状态
last_exec_time string 最近一次成交时间
last_exec_price string 最近一次成交价格
leaves_qty number 剩余委托数量
cum_exec_qty number 累计成交数量
cum_exec_value number 累计成交价值
cum_exec_fee number 累计成交手续费
reject_reason string 被拒单的原因
order_link_id string 机构自定义订单ID
created_at string 创建时间
updated_at string 更新时间
take_profit number 止盈价格
stop_loss number 止损价格
tp_trigger_by string 止盈激活价格类型,默认为LastPrice
sl_trigger_by string 止损激活价格类型,默认为LastPrice

查询活动委托

请求示例

curl "https://api.bybit.com/v2/private/order/list?api_key={api_key}&timestamp={timestamp}&sign={sign}&symbol=BTCUSD"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Order.Order_getOrders(symbol="BTCUSD",order_status="New").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": {
        "data": [
            {
                "user_id": 160861,
                "order_status": "Cancelled",
                "symbol": "BTCUSD",
                "side": "Buy",
                "order_type": "Market",
                "price": "9800",
                "qty": "16737",
                "time_in_force": "ImmediateOrCancel",
                "order_link_id": "",
                "order_id": "fead08d7-47c0-4d6a-b9e7-5c71d5df8ba1",
                "created_at": "2020-07-24T08:22:30Z",
                "updated_at": "2020-07-24T08:22:30Z",
                "leaves_qty": "0",
                "leaves_value": "0",
                "cum_exec_qty": "0",
                "cum_exec_value": "0",
                "cum_exec_fee": "0",
                "reject_reason": "EC_NoImmediateQtyToFill"
            }
        ],
        "cursor": "w01XFyyZc8lhtCLl6NgAaYBRfsN9Qtpp1f2AUy3AS4+fFDzNSlVKa0od8DKCqgAn"
    },
    "time_now": "1604653633.173848",
    "rate_limit_status": 599,
    "rate_limit_reset_ms": 1604653633171,
    "rate_limit": 600
}

获取我的活动委托单列表。

创建/取消订单是异步的,因此该接口可能返回的数据可能会有延迟。如果要获取订单的实时信息,可以调用接口实时查询活动单信息.

HTTP 请求

GET /v2/private/order/list

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
order_status false string 指定订单状态查询订单列表。不传该参数则默认查询所有状态订单。该参数支持多状态查询,状态之间用英文逗号分割。
direction false string 搜索方向:prev:上一页,next:下一页,默认为 next
limit false integer 每页数量, 最大50. 默认每页20条
cursor false string 翻页标记,请使用返回的cursor,签名时使用返回的原始数据,发送request时请进行urlencode

返回参数

参数 类型 说明
data > user_id integer 用户ID
data > symbol string 合约类型
data > side string 方向
data > order_type string 交易记录类型
data > price string 委托价格
data > qty string 委托数量
data > time_in_force string 执行策略
data > order_status string 订单状态
data > leaves_qty string 剩余委托数量
data > leaves_value string 剩余挂单数量对应的预估价值
data > cum_exec_qty string 累计成交数量
data > cum_exec_value string 累计成交价值
data > cum_exec_fee string 累计成交手续费
data > reject_reason string 被拒单的原因
data > order_link_id string 机构自定义订单ID
data > created_at string 创建时间
data > order_id string 订单ID
data > take_profit number 止盈价格
data > stop_loss number 止损价格
data > tp_trigger_by string 止盈激活价格类型,默认为LastPrice
data > sl_trigger_by string 止损激活价格类型,默认为LastPrice
cursor string 翻页标记

撤销活动委托单

请求示例

curl https://api.bybit.com/v2/private/order/cancel \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD","order_id":"","timestamp":{timestamp},"sign":"{sign}"}'
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Order.Order_cancel(symbol="BTCUSD", order_id="").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": {
        "user_id": 1,
        "order_id": "3bd1844f-f3c0-4e10-8c25-10fea03763f6",
        "symbol": "BTCUSD",
        "side": "Buy",
        "order_type": "Limit",
        "price": 8800,
        "qty": 1,
        "time_in_force": "GoodTillCancel",
        "order_status": "New",
        "last_exec_time": 0,
        "last_exec_price": 0,
        "leaves_qty": 1,
        "cum_exec_qty": 0,
        "cum_exec_value": 0,
        "cum_exec_fee": 0,
        "reject_reason": "",
        "order_link_id": "",
        "created_at": "2019-11-30T11:17:18.396Z",
        "updated_at": "2019-11-30T11:18:01.811Z"
    },
    "time_now": "1575112681.814760",
    "rate_limit_status": 98,
    "rate_limit_reset_ms": 1580885703683,
    "rate_limit": 100
}

所有撤销活动委托都必须填写order_idorder_link_idorder_id - 当您成功创建了活动委托时会为您返回36位唯一的订单ID。

您可以撤销未成交、部分成交的活动委托单。但全部成交的活动委托不可取消。

HTTP 请求

POST /v2/private/order/cancel

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
order_id false string 订单ID。如果未填order_link_id则为必填字段。
order_link_id false string 机构ID。如果未填order_id则为必填字段。

返回参数

参数 类型 说明
user_id number 用户ID
order_id string 订单ID
symbol string 合约类型
side string 方向
order_type string 交易记录类型
price number 委托价格
qty number 委托数量
time_in_force string 执行策略
order_status string 订单状态
last_exec_time string 最近一次成交时间
last_exec_price string 最近一次成交价格
leaves_qty number 剩余委托数量
cum_exec_qty number 累计成交数量
cum_exec_value number 累计成交价值
cum_exec_fee number 累计成交手续费
reject_reason string 被拒单的原因
order_link_id string 机构自定义订单ID
created_at string 创建时间
updated_at string 更新时间
take_profit number 止盈价格
stop_loss number 止损价格
tp_trigger_by string 止盈激活价格类型,默认为LastPrice
sl_trigger_by string 止损激活价格类型,默认为LastPrice

撤销所有活动委托单

请求示例

curl https://api.bybit.com/v2/private/order/cancelAll \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD","timestamp":{timestamp},"sign":"{sign}"}'
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Order.Order_cancelAll(symbol="BTCUSD").result())

响应示例

{
    "ret_code": 0,      
    "ret_msg": "OK",    
    "ext_code": "",     
    "ext_info": "",
    "result": [
        {
            "clOrdID": "89a38056-80f1-45b2-89d3-4d8e3a203a79",  
            "user_id": 1,                                  
            "symbol": "BTCUSD",                                
            "side": "Buy",                                      
            "order_type": "Limit",                              
            "price": "7693.5",                                  
            "qty": 1,                                           
            "time_in_force": "GoodTillCancel",                  
            "create_type": "CreateByUser",                     
            "cancel_type": "CancelByUser",                      
            "order_status": "",                                 
            "leaves_qty": 1,                                    
            "leaves_value": "0",                                
            "created_at": "2019-11-30T10:38:53.564428Z",        
            "updated_at": "2019-11-30T10:38:59.102589Z",        
            "cross_status": "PendingCancel",  // `PendingCancel` means the matching engine received the cancellation but there is no guarantee that the cancellation will be successful.
            "cross_seq": 387734027                              
        }
    ],
    "time_now": "1575110339.105675",
    "rate_limit_status": 98,
    "rate_limit_reset_ms": 1580885703683,
    "rate_limit": 100
}

撤销所有未成交、部分成交的活动委托单。但全部成交的活动委托不可取消。

HTTP 请求

POST /v2/private/order/cancelAll

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型

返回参数

参数 类型 说明
clOrdID string uuid类型的唯一订单号
user_id number 用户ID
symbol string 合约类型
side string 方向
order_type string 交易记录类型
price number 委托价格
qty number 委托数量
time_in_force string 执行策略
create_type string 下单操作的触发场景
cancel_type string 取消操作的触发场景
order_status string 订单状态
leaves_qty number 剩余委托数量
leaves_value number 剩余挂单数量对应的预估价值
created_at string 创建时间
updated_at string 更新时间
cross_status string 取消操作的触发场景
cross_seq number 撮合版本号

修改活动单信息

请求示例

curl https://api.bybit.com/v2/private/order/replace \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD","order_id":"","timestamp":{timestamp},"sign":"{sign}"}'
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Order.Order_replace(symbol="BTCUSD", order_id="").result())

响应示例

{
    "ret_code": 0,    //Error code,
    "ret_msg": "ok",  //Error message,
    "ext_code": "",
    "result": {
        "order_id": "efa44157-c355-4a98-b6d6-1d846a936b93"
    },
    "time_now": "1539778407.210858",    // UTC timestamp
    "rate_limit_status": 99, // The remaining number of accesses in one minute
    "rate_limit_reset_ms": 1580885703683,
    "rate_limit": 100             
}

本接口可以修改您的活动单信息.

HTTP 请求

POST /v2/private/order/replace

请求参数

参数 是否必须 类型 说明
order_id false string 订单ID。如果未填order_link_id则为必填字段。
order_link_id false string 机构ID。如果未填order_id则为必填字段。
symbol true string 合约类型.
p_r_qty false integer 修改后的订单数量。如果是未完全成交订单,则表示修改剩余未成交的部分。如果不修改这个字段,请不要传这个参数。
p_r_price false string 修改后的订单价格。如果不修改这个字段,请不要传这个参数。
take_profit false number 修改后的止盈价格。如果不修改这个字段,请不要传这个参数。
stop_loss false number 修改后的止损价格。如果不修改这个字段,请不要传这个参数。
tp_trigger_by false string 止盈激活价格类型,默认为LastPrice
sl_trigger_by false string 止损激活价格类型,默认为LastPrice

返回参数

参数 类型 说明
order_id string 订单ID

实时查询活动委托

请求示例

curl "https://api.bybit.com/v2/private/order?api_key={api_key}&symbol=BTCUSD&timestamp={timestamp}order_id={order_id}&sign={sign}"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Order.Order_query(symbol="BTCUSD", order_id="").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": {
        "user_id": 106958,
        "symbol": "BTCUSD",
        "side": "Buy",
        "order_type": "Limit",
        "price": "11756.5",
        "qty": 1,
        "time_in_force": "PostOnly",
        "order_status": "Filled",
        "ext_fields": {
            "o_req_num": -68948112492,
            "xreq_type": "x_create"
        },
        "last_exec_time": "1596304897.847944",
        "last_exec_price": "11756.5",
        "leaves_qty": 0,
        "leaves_value": "0",
        "cum_exec_qty": 1,
        "cum_exec_value": "0.00008505",
        "cum_exec_fee": "-0.00000002",
        "reject_reason": "",
        "cancel_type": "",
        "order_link_id": "",
        "created_at": "2020-08-01T18:00:26Z",
        "updated_at": "2020-08-01T18:01:37Z",
        "order_id": "e66b101a-ef3f-4647-83b5-28e0f38dcae0"
    },
    "time_now": "1597171013.867068",
    "rate_limit_status": 599,
    "rate_limit_reset_ms": 1597171013861,
    "rate_limit": 600
}

//当只传参数symbol的时候,返回结构如下:
{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": [
        {
            "user_id": 100228,
            "symbol": "BTCUSD",
            "side": "Sell",
            "order_type": "Limit",
            "price": "17740",
            "qty": 10,
            "time_in_force": "GoodTillCancel",
            "order_status": "New",
            "ext_fields": {
                "o_req_num": 434743,
                "xreq_type": "x_create"
            },
            "last_exec_time": "1608193181.827761",
            "leaves_qty": 10,
            "leaves_value": "0.00056369",
            "cum_exec_qty": 0,
            "cum_exec_value": "0.00008505",
            "cum_exec_fee": "-0.00000002",
            "reject_reason": "EC_NoError",
            "cancel_type": "UNKNOWN",
            "order_link_id": "",
            "created_at": "2020-12-17T08:19:41.827637283Z",
            "updated_at": "2020-12-17T08:19:41.827761Z",
            "order_id": "d570d931-771e-4911-a24e-cdeddedb5b0e"
        },
        ...
        {
            "user_id": 100228,
            "symbol": "BTCUSD",
            "side": "Sell",
            "order_type": "Limit",
            "price": "17740",
            "qty": 10,
            "time_in_force": "GoodTillCancel",
            "order_status": "New",
            "ext_fields": {
                "o_req_num": 434728,
                "xreq_type": "x_create"
            },
            "last_exec_time": "1608193178.955412",
            "leaves_qty": 10,
            "leaves_value": "0.00056369",
            "cum_exec_qty": 0,
            "cum_exec_value": "0.00008505",
            "cum_exec_fee": "-0.00000002",
            "reject_reason": "EC_NoError",
            "cancel_type": "UNKNOWN",
            "order_link_id": "",
            "created_at": "2020-12-17T08:19:38.955297869Z",
            "updated_at": "2020-12-17T08:19:38.955412Z",
            "order_id": "88b91101-7ac1-40af-90b8-72d53fe23622"
        }
    ],
    "time_now": "1608193190.911073",
    "rate_limit_status": 599,
    "rate_limit_reset_ms": 1608193190909,
    "rate_limit": 600
}

实时查询活动委托。当传递参数order_idorder_link_id其中任意一个时,将返回单条订单数据,如果参数order_idorder_link_id都不传递时,将返回所有未成交的订单,最多500条。

HTTP 请求

GET /v2/private/order

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
order_id false string 订单ID
order_link_id false string 机构自定义订单ID

返回参数

参数 类型 说明
user_id number 用户ID
symbol string 合约类型
side string 方向
order_type string 交易记录类型
price number 委托价格
qty number 委托数量
time_in_force string 执行策略
order_status string 订单状态
ext_fields json 扩展字段
leaves_qty number 剩余委托数量
leaves_value number 剩余挂单数量对应的预估价值
cum_exec_qty number 累计成交数量
cum_exec_value number 累计成交价值
cum_exec_fee order_link_id string
reject_reason string 被拒单的原因
cancel_type string 取消操作的触发场景
order_link_id string 机构自定义订单ID
created_at string 创建时间
updated_at string 更新时间
order_id string 订单ID
take_profit number 止盈价格
stop_loss number 止损价格
tp_trigger_by string 止盈激活价格类型,默认为LastPrice
sl_trigger_by string 止损激活价格类型,默认为LastPrice

条件单

创建条件委托单

请求示例

curl https://api.bybit.com/v2/private/stop-order/create \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","order_type":"Limit","side":"Buy","symbol":"BTCUSD","qty":1,"price":8100,"base_price":8300,"stop_px":8150,"time_in_force":"GoodTillCancel","order_link_id":"cus_order_id_1","timestamp":{timestamp},"sign":"{sign}"}'
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Conditional.Conditional_new(order_type="Limit",side="Buy",symbol="XRPUSD",qty="1",price="0.2569",base_price="15700",stop_px="0.2119",time_in_force="GoodTillCancel").result())

响应示例

{
    "ret_code":0,
    "ret_msg":"OK",
    "ext_code":"",
    "ext_info":"",
    "result":{
        "user_id":160880,
        "symbol":"BTCUSD",
        "side":"Buy",
        "order_type":"Limit",
        "price":"9003",
        "qty":"2",
        "time_in_force":"GoodTillCancel",
        "remark":"127.0.0.1",
        "leaves_qty":"2",
        "leaves_value":"0",
        "stop_px":"8232",
        "reject_reason":"EC_NoError",
        "stop_order_id":"eaf205ac-9dcc-44f6-8731-734e2101e61b",
        "created_at":"2020-11-06T07:48:43.940Z",
        "updated_at":"2020-11-06T07:48:43.940Z"
    },
    "time_now":"1604648923.942177"
}

市价条件委托: 一个传统的市场价格订单,会以当前的最优价格为您成交订单。当且仅当选择市价单时,'price', '可为空!

限价条件委托: 您可以为您的订单设置一个执行价格,当市场价格达到您的设置价格时,系统会为您成交订单。

止盈止损: 您仅能在开仓时设置止盈止损条件单,一旦持有仓位后提交活动委托时关联的止盈止损则不再有效。一旦持仓后,当创建订单后发送的止盈止损信息将不再有效。

委托数量: 表示您要购买/卖出的永续合约数,对于委托数量目前Bybit只允许提交正整数。

委托价格: 表示您期望购买/卖出永续合约的价格,可以根据交易对接口查询不同symbol价格阶梯。

条件委托触发价格: 您可以为您的条件委托单设置一个触发价格,条件委托单不进入委托表(Order Book),只有触发条件成立如市场价格到达触发价格时,条件委托单才会进入交易系统。当市场价格到达触发价格:1)您的限价条件委托单进入Order Book,等待被执行;2)您的市价条件委托单将按照市场最优价格立即被执行。

自定义条件单ID: 您可以自定义活动委托订单ID,我们会为您关联到系统的订单ID,并把系统的唯一订单ID在活动委托创建成功后一并返回给您,您可以使用该订单ID去取消活动委托,同时要求您传递的自定义订单ID最大长度不超过36个字段且唯一。

HTTP 请求

POST /v2/private/stop-order/create

请求参数

参数 是否必须 类型 说明
side true string 方向
symbol true string 合约类型
order_type true string 委托单价格类型
qty true string 委托数量(1个委托1美元),只能为正整数
price false string 条件委托执行价格。如果条件委托是限价单,则price为必传字段
base_price true string 当前市价。用于和stop_px值进行比较,确定当前条件委托是看空到stop_px时触发还是看多到stop_px触发。主要是用来标识当前条件单预期的方向
stop_px true string 触发价格
time_in_force true string 执行策略
trigger_by false string 触发价格类型. 默认为最新市价
close_on_trigger false bool 触发后平仓. 如果下平仓单,请设置为true,避免因为保证金不足而导致下单失败
order_link_id false string 机构自定义订单ID, 最大长度36位,且同一机构下自定义ID不可重复
take_profit false number 止盈价格
stop_loss false number 止损价格
tp_trigger_by false string 止盈激活价格类型,默认为LastPrice
sl_trigger_by false string 止损激活价格类型,默认为LastPrice

返回参数

参数 类型 说明
user_id integer 用户ID
symbol string 合约类型
side string 方向
order_type string 订单类型
price string 委托价格
qty string 委托数量
time_in_force string 执行策略
trigger_by string 触发价格类型. 默认为最新市价
base_price string 下单时市价
remark string 备注
reject_reason string 被拒单的原因
stop_px string 触发价格
stop_order_id string 条件委托订单ID。
created_at string 创建时间
order_link_id string 机构自定义订单ID
take_profit number 止盈价格
stop_loss number 止损价格
tp_trigger_by string 止盈激活价格类型,默认为LastPrice
sl_trigger_by string 止损激活价格类型,默认为LastPrice

查询条件委托

请求示例

curl "https://api.bybit.com/v2/private/stop-order/list?api_key={api_key}&timestamp={timestamp}&sign={sign}"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Conditional.Conditional_getOrders(symbol="BTCUSD",stop_order_status="Untriggered").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": {
        "data": [
            {
                "user_id": 160861,
                "stop_order_status": "Active",
                "symbol": "ETHUSD",
                "side": "Buy",
                "order_type": "Market",
                "stop_order_type": "TakeProfit",
                "price": "220",
                "qty": "120",
                "time_in_force": "ImmediateOrCancel",
                "base_price": "258",
                "order_link_id": "",
                "created_at": "2019-08-02T07:37:24Z",
                "updated_at": "2019-08-02T07:38:40Z",
                "stop_px": "224.3",
                "stop_order_id": "6d0dec74-f516-4d95-81f1-c85e60c9a331"
            }
        ],
        "cursor": "zZtvOJ0gc3UOxZOwotsJSZyMTOgyC9tj1DmFyUU6eNHUL0X4NLwZvo8iqI6ltPIc"
    },
    "time_now": "1604653512.292878",
    "rate_limit_status": 599,
    "rate_limit_reset_ms": 1604653512287,
    "rate_limit": 600
}

获取我的条件委托单列表。

创建/取消订单是异步的,因此该接口可能返回的数据可能会有延迟。如果要获取订单的实时信息,可以调用接口实时查询条件单信息

HTTP 请求

GET /v2/private/stop-order/list

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
stop_order_status false string 指定订单状态查询订单列表。不传该参数则默认查询所有状态订单
direction false string 搜索方向:prev:上一页,next:下一页,默认为 next
limit false integer 每页数量, 最大50. 默认每页20条
cursor false string 翻页标记,请使用返回的cursor,签名时使用返回的原始数据,发送request时请进行urlencode

返回参数

参数 类型 说明
data > user_id integer 用户ID
data > stop_order_status string 条件单状态
data > symbol string 合约类型
data > side string 方向
data > order_type string 订单类型
data > price number 委托价格
data > qty number 委托数量
data > time_in_force string 执行策略
data > stop_order_type string 委托单价格类型
data > trigger_by string 触发价格类型
data > base_price number 下单时市价
data > order_link_id string 机构自定义订单ID
data > created_at string 创建时间
data > updated_at string 更新时间
data > stop_px number 触发价格
data > stop_order_id string 条件委托订单ID。
data > take_profit number 止盈价格
data > stop_loss number 止损价格
data > tp_trigger_by string 止盈激活价格类型,默认为LastPrice
data > sl_trigger_by string 止损激活价格类型,默认为LastPrice
cursor string 翻页标记

撤消条件委托单

请求示例

curl https://api.bybit.com/v2/private/stop-order/cancel \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD","stop_order_id":"xxx","timestamp":{timestamp},"sign":"{sign}"}'
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Conditional.Conditional_cancel(symbol="BTCUSD", stop_order_id="").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": {
        "stop_order_id": "c1025629-e85b-4c26-b4f3-76e86ad9f8cb"
    },
    "ext_info": null,
    "time_now": "1577452218.567120",
    "rate_limit_status": 97,
    "rate_limit_reset_ms": 1577452218573,
    "rate_limit": "100"
}

您可以撤销所有未被激活的条件委托,或止盈止损单。本质上所有条件委托在被激活后都是属于活动委托,所以条件委托一旦被激活,您需要通过调用取消活动委托接口来取消所有未成交、部分成交的活动委托单。同样全部成交的活动委托不可取消。

HTTP 请求

POST /v2/private/stop-order/cancel

请求参数

参数 required type comments
symbol true string 合约类型
stop_order_id false string 订单ID。如果未填order_link_id则为必填字段。
order_link_id false string 机构ID。如果未填stop_order_id则为必填字段。

返回参数

参数 类型 说明
stop_order_id string 条件委托订单ID。

撤消全部条件委托单

请求示例

curl https://api.bybit.com/v2/private/stop-order/cancelAll \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD","timestamp":{timestamp},"sign":"{sign}"}'
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Conditional.Conditional_cancelAll(symbol="BTCUSD").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": [
        {
            "clOrdID": "dea89649-9492-459d-a8c4-c298b87b3d26",
            "user_id": 1,
            "symbol": "BTCUSD",
            "side": "Sell",
            "order_type": "Limit",
            "price": "999999",
            "qty": 1,
            "time_in_force": "PostOnly",
            "create_type": "CreateByUser",
            "cancel_type": "CancelByUser",
            "order_status": "",
            "leaves_qty": 1,
            "leaves_value": "0",
            "created_at": "2019-12-17T12:13:20Z",
            "updated_at": "2019-12-27T13:56:33.793799Z",
            "cross_status": "Deactivated",
            "cross_seq": -1,
            "stop_order_type": "Stop",
            "trigger_by": "LastPrice",
            "base_price": "6910.5",
            "expected_direction": "Rising"
        },
        {
            "clOrdID": "a85cd1c0-a9a4-49d3-a1bd-bab5ebe946d5",
            "user_id": 1,
            "symbol": "BTCUSD",
            "side": "Buy",
            "order_type": "Limit",
            "price": "8000",
            "qty": 1,
            "time_in_force": "GoodTillCancel",
            "create_type": "CreateByStopOrder",
            "cancel_type": "CancelByUser",
            "order_status": "",
            "leaves_qty": 1,
            "leaves_value": "0",
            "created_at": "2019-12-27T12:48:24.339323Z",
            "updated_at": "2019-12-27T13:56:33.793802Z",
            "cross_status": "Deactivated",
            "cross_seq": -1,
            "stop_order_type": "Stop",
            "trigger_by": "LastPrice",
            "base_price": "7000",
            "expected_direction": "Rising"
        }
    ],
    "time_now": "1577454993.799912",
    "rate_limit_status": 90,
    "rate_limit_reset_ms": 1580885703683,
    "rate_limit": 100
}

撤销所有未被激活的条件委托。本质上所有条件委托在被激活后都是属于活动委托,所以条件委托一旦被激活,您需要通过调用取消活动委托接口来取消所有未成交、部分成交的活动委托单。同样全部成交的活动委托不可取消。

HTTP 请求

POST /v2/private/stop-order/cancelAll

请求参数

参数 required type comments
symbol true string 合约类型

返回参数

参数 类型 说明
clOrdID string uuid类型的唯一订单号
user_id number 用户ID
symbol string 合约类型
side string 方向
order_type string 订单类型
price number 委托价格
qty number 委托数量
time_in_force string 执行策略
create_type string 下单操作的触发场景
cancel_type string 取消操作的触发场景
order_status string 订单状态
leaves_qty number 剩余委托数量
leaves_value number 剩余挂单数量对应的预估价值
created_at string 创建时间
updated_at string 更新时间
cross_status string 取消操作的触发场景
cross_seq number 撮合版本号
stop_order_type string 委托单价格类型
trigger_by string 触发价格类型. 默认为最新市价
base_price number 下单时市价
expected_direction string 预期方向

修改条件委托单

请求示例

curl https://api.bybit.com/v2/private/stop-order/replace \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD","stop_order_id":"","timestamp":{timestamp},"sign":"{sign}"}'
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Conditional.Conditional_replace(symbol="BTCUSD", stop_order_id="", p_r_trigger_price="16003").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": {
        "stop_order_id": "378a1bbc-a93a-4e75-87f4-502ea754ba36"
    },
    "ext_info": null,
    "time_now": "1577475760.604942",
    "rate_limit_status": 96,
    "rate_limit_reset_ms": 1577475760612,
    "rate_limit": "100"
}

修改未触发的条件单。

HTTP 请求

POST /v2/private/stop-order/replace

请求参数

参数 是否必须 类型 说明
stop_order_id false string 订单ID。如果未填order_link_id则为必填字段。
order_link_id false string 机构ID。如果未填stop_order_id则为必填字段。
symbol true string 合约类型.
p_r_qty false integer 修改后的订单数量。如果是未完全成交订单,则表示修改剩余未成交的部分。如果不修改这个字段,请不要传这个参数。
p_r_price false string 修改后的订单价格。如果不修改这个字段,请不要传这个参数。
p_r_trigger_price false string 修改后的条件单的触发价格或止盈止损的价格。如果不修改这个字段,请不要传这个参数。
take_profit false number 修改后的止盈价格。如果不修改这个字段,请不要传这个参数。
stop_loss false number 修改后的止损价格。如果不修改这个字段,请不要传这个参数。
tp_trigger_by false string 止盈激活价格类型,默认为LastPrice
sl_trigger_by false string 止损激活价格类型,默认为LastPrice

返回参数

参数 类型 说明
stop_order_id string 条件委托订单ID。

实时查询条件委托

请求示例

curl "https://api.bybit.com/v2/private/stop-order?api_key={api_key}&symbol=BTCUSD&timestamp={timestamp}order_id={order_id}&sign={sign}"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Conditional.Conditional_query(symbol="BTCUSD", stop_order_id="", p_r_trigger_price="16003").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": {
        "user_id": 1,
        "symbol": "BTCUSD",
        "side": "Buy",
        "order_type": "Limit",
        "price": "8000",
        "qty": 1,
        "time_in_force": "GoodTillCancel",
        "order_status": "Untriggered",
        "ext_fields": {},
        "leaves_qty": 1,
        "leaves_value": "0.00013333",
        "cum_exec_qty": 0,
        "cum_exec_value": null,
        "cum_exec_fee": null,
        "reject_reason": "",
        "order_link_id": "",
        "created_at": "2019-12-27T19:56:24.052194Z",
        "updated_at": "2019-12-27T19:56:24.052194Z",
        "order_id": "378a1bbc-a93a-4e75-87f4-502ea754ba36"
    },
    "time_now": "1577476584.386958",
    "rate_limit_status": 99,
    "rate_limit_reset_ms": 1580885703683,
    "rate_limit": 100
}

//当只传参数symbol的时候,返回结构如下:
{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": [
        {
            "user_id": 100328,
            "symbol": "EOSUSD",
            "side": "Sell",
            "order_type": "Limit",
            "price": "2.7",
            "qty": 1,
            "stop_px": "2.0000",
            "base_price": "2.7000",
            "time_in_force": "GoodTillCancel",
            "order_status": "Untriggered",
            "ext_fields": {},
            "leaves_qty": 1,
            "leaves_value": "0.37037037",
            "cum_exec_qty": 0,
            "cum_exec_value": null,
            "cum_exec_fee": null,
            "reject_reason": "EC_NoError",
            "cancel_type": "UNKNOWN",
            "order_link_id": "",
            "created_at": "2020-12-17T08:21:15.246331281Z",
            "updated_at": "2020-12-17T08:21:15.246331281Z",
            "order_id": "a0dee45e-ae2a-4eb4-8205-9739075a7a81",
            "trigger_by": "MarkPrice"
        },
        ...
        {
            "user_id": 100328,
            "symbol": "EOSUSD",
            "side": "Sell",
            "order_type": "Limit",
            "price": "2.6",
            "qty": 1,
            "stop_px": "2.0000",
            "base_price": "2.7000",
            "time_in_force": "GoodTillCancel",
            "order_status": "Untriggered",
            "ext_fields": {},
            "leaves_qty": 1,
            "leaves_value": "0.38461538",
            "cum_exec_qty": 0,
            "cum_exec_value": null,
            "cum_exec_fee": null,
            "reject_reason": "EC_NoError",
            "cancel_type": "UNKNOWN",
            "order_link_id": "",
            "created_at": "2020-12-17T08:21:10.924193413Z",
            "updated_at": "2020-12-17T08:21:10.924193413Z",
            "order_id": "51d048ba-a71f-40ef-b4c4-897e94590b80",
            "trigger_by": "MarkPrice"
        }
    ],
    "time_now": "1608193281.690286",
    "rate_limit_status": 599,
    "rate_limit_reset_ms": 1608193281687,
    "rate_limit": 600
}

实时查询条件委托。当传递参数order_idorder_link_id其中任意一个时,将返回单条订单数据;如果参数order_idorder_link_id都不传递时,将返回所有未成交的订单,最多50条。

HTTP 请求

GET /v2/private/stop-order

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
stop_order_id false string 条件委托订单ID。
order_link_id false string 机构自定义订单ID

返回参数

参数 类型 说明
user_id number 用户ID
symbol string 合约类型
side string 方向
order_type string 订单类型
price number 委托价格
qty number 委托数量
time_in_force string 执行策略
order_status string 订单状态
ext_fields json 扩展字段
leaves_qty number 剩余委托数量
leaves_value number 剩余挂单数量对应的预估价值
cum_exec_qty number 累计成交数量
cum_exec_value number 累计成交价值
cum_exec_fee number 累计成交手续费
reject_reason string 被拒单的原因
order_link_id string 机构自定义订单ID
created_at string 创建时间
updated_at string 更新时间
order_id string 订单ID
base_price string 下单时市价
stop_px string 触发价格
trigger_by string 触发价格类型
take_profit number 止盈价格
stop_loss number 止损价格
tp_trigger_by string 止盈激活价格类型,默认为LastPrice
sl_trigger_by string 止损激活价格类型,默认为LastPrice

持仓

获取持仓(实时)

请求示例

curl "https://api.bybit.com/v2/private/position/list?api_key={api_key}&symbol=BTCUSD&timestamp={timestamp}&sign={sign}"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Positions.Positions_myPosition(symbol="BTCUSD").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": {
        "id": 27913,
        "user_id": 1,
        "risk_id": 1,
        "symbol": "BTCUSD",
        "side": "Buy",
        "size": 5,
        "position_value": "0.0006947",
        "entry_price": "7197.35137469",
        "is_isolated":true,
        "auto_add_margin": 0,
        "leverage": "1",  //逐仓模式下, 值为用户设置的杠杆;全仓模式下,值为当前风险限额下最大杠杆
        "effective_leverage": "1", // 有效杠杆. 逐仓模式下, 等于`leverage`; 全仓模式下, 计算公式为: position size / markprice / (wallet_balance+unrealised_pnl)
        "position_margin": "0.0006947",
        "liq_price": "3608",
        "bust_price": "3599",
        "occ_closing_fee": "0.00000105",
        "occ_funding_fee": "0",
        "take_profit": "0",
        "stop_loss": "0",
        "trailing_stop": "0",
        "position_status": "Normal",
        "deleverage_indicator": 4,
        "oc_calc_data": "{\"blq\":2,\"blv\":\"0.0002941\",\"slq\":0,\"bmp\":6800.408,\"smp\":0,\"fq\":-5,\"fc\":-0.00029477,\"bv2c\":1.00225,\"sv2c\":1.0007575}",
        "order_margin": "0.00029477",
        "wallet_balance": "0.03000227",
        "realised_pnl": "-0.00000126",
        "unrealised_pnl": 0,
        "cum_realised_pnl": "-0.00001306",
        "cross_seq": 444081383,
        "position_seq": 287141589,
        "created_at": "2019-10-19T17:04:55Z",
        "updated_at": "2019-12-27T20:25:45.158767Z"
        "tp_sl_mode": "Partial"
    },
    "time_now": "1577480599.097287",
    "rate_limit_status": 119,
    "rate_limit_reset_ms": 1580885703683,
    "rate_limit": 120
}

//当不传参数symbol的时候,返回结构如下:
{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": [
        {
            "is_valid": true, //表示当前data对应的symbol数据是否可用
            "data": { //只有在is_validtrue时,data才可用,否则请不要使用data
                "id": 0,
                "position_idx": 0,
                "mode": 0,
                "user_id": 118921,
                "risk_id": 1,
                "symbol": "BTCUSD",
                "side": "Buy",
                "size": 10,
                "position_value": "0.00076448",
                "entry_price": "13080.78694014",
                "is_isolated": false,
                "auto_add_margin": 1,
                "leverage": "100",
                "effective_leverage": "0.01",
                "position_margin": "0.40111704",
                "liq_price": "25",
                "bust_price": "25",
                "occ_closing_fee": "0.0003",
                "occ_funding_fee": "0",
                "take_profit": "0",
                "stop_loss": "0",
                "trailing_stop": "0",
                "position_status": "Normal",
                "deleverage_indicator": 1,
                "oc_calc_data": "{\"blq\":0,\"slq\":0,\"bmp\":0,\"smp\":0,\"fq\":-10,\"bv2c\":0.0115075,\"sv2c\":0.0114925}",
                "order_margin": "0",
                "wallet_balance": "0.40141704",
                "realised_pnl": "-0.00000008",
                "unrealised_pnl": 0.00003797,
                "cum_realised_pnl": "-0.090626",
                "cross_seq": 764786721,
                "position_seq": 581513847,
                "created_at": "2020-08-10T07:04:32Z",
                "updated_at": "2020-11-02T00:00:11.943371457Z"
                "tp_sl_mode": "Partial"
            }
        },
        ...
        {
            "is_valid": true, //表示当前data对应的symbol数据是否可用
            "data": { //只有在is_validtrue时,data才可用,否则请不要使用data
                "id": 0,
                "position_idx": 0,
                "mode": 0,
                "user_id": 118921,
                "risk_id": 35,
                "symbol": "XRPUSD",
                "side": "None",
                "size": 0,
                "position_value": "0",
                "entry_price": "0",
                "is_isolated": false,
                "auto_add_margin": 1,
                "leverage": "16.67",
                "effective_leverage": "16.67",
                "position_margin": "0",
                "liq_price": "0",
                "bust_price": "0",
                "occ_closing_fee": "0",
                "occ_funding_fee": "0",
                "take_profit": "0",
                "stop_loss": "0",
                "trailing_stop": "0",
                "position_status": "Normal",
                "deleverage_indicator": 0,
                "oc_calc_data": "{\"blq\":0,\"slq\":0,\"bmp\":0,\"smp\":0,\"bv2c\":0.06153301,\"sv2c\":0.06144302}",
                "order_margin": "0",
                "wallet_balance": "0",
                "realised_pnl": "0",
                "unrealised_pnl": 0,
                "cum_realised_pnl": "0",
                "cross_seq": -1,
                "position_seq": 352149441,
                "created_at": "2020-08-10T07:04:32Z",
                "updated_at": "2020-08-22T08:06:32Z"
                "tp_sl_mode": "Partial"
            }
        }
    ],
    "time_now": "1604302124.031104",
    "rate_limit_status": 118,
    "rate_limit_reset_ms": 1604302124020,
    "rate_limit": 120
}

获取我的仓位列表。通过该接口可以获取当前用户的持仓信息,如持仓数量、账户余额等信息

HTTP 请求

GET /v2/private/position/list

请求参数

参数 是否必须 类型 说明
symbol false string 合约类型

返回参数

参数 类型 说明
id number 仓位ID
position_idx integer Position idx, 用于在不同仓位模式下标识仓位:
0-单向持仓
1-双向持仓Buy
2-双向持仓Sell
mode number 仓位模式
user_id number 用户ID
risk_id number 风险限额ID
symbol string 合约类型
side string 方向
size number 仓位数量
position_value string 仓位价值
entry_price string 平均入场价
is_isolated bool 是否逐仓,true-逐仓 false-全仓
auto_add_margin number 是否自动追加保证金
leverage string 逐仓模式下, 值为用户设置的杠杆;全仓模式下,值为当前风险限额下最大杠杆
effective_leverage string 有效杠杆
position_margin string 仓位保证金
liq_price string 强平价格
bust_price string 破产价格
occ_closing_fee string 仓位占用的平仓手续费
occ_funding_fee string 仓位size和当前资金费率预占用资金费用
take_profit string 止盈价格
stop_loss string 止损价格
trailing_stop string 追踪止损
position_status string 仓位状态,正常,强平,减仓
deleverage_indicator number 风险指示灯等级(1,2,3,4,5)
oc_calc_data string 预占保证证计算参数, blq-多方所有未成交委托数; bmp-多方最低价; slq-空方所有未成交委托数; smp-空方最低价
order_margin string 委托预占用保证金
wallet_balance string 钱包余额
realised_pnl string 当日已结盈亏
unrealised_pnl number 未结盈亏
cum_realised_pnl string 累计已结盈亏
cross_seq number 撮合版本号
position_seq number 仓位变化版本号
created_at string The account creation time
updated_at string 更新时间
tp_sl_mode string 止盈止损模式

更新保证金

请求示例

curl https://api.bybit.com/v2/private/position/change-position-margin \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD",margin:"10","timestamp":{timestamp},"sign":"{sign}"}'
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Positions.Positions_changeMargin(symbol="BTCUSD", margin="10").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": 9.996e-05,
    "ext_info": null,
    "time_now": "1577480720.003444",
    "rate_limit_status": 74,
    "rate_limit_reset_ms": 1577480720011,
    "rate_limit": 75
}

更新保证金。

HTTP 请求

POST /v2/private/position/change-position-margin

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
margin true string 保证金

返回参数

参数 类型 说明
result number 仓位保证金

设置止盈止损

请求示例

curl https://api.bybit.com/v2/private/position/trading-stop \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD","stop_loss":7000,"timestamp":{timestamp},"sign":"{sign}"}'
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Positions.Positions_tradingStop(symbol="BTCUSD",stop_loss="7000").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": {
        "id": 27913,
        "user_id": 1,
        "symbol": "BTCUSD",
        "side": "Buy",
        "size": 5,
        "position_value": 0.0006947,
        "entry_price": 7197.35137469,
        "risk_id": 1,
        "auto_add_margin": 0,
        "leverage": 6.95,
        "position_margin": 9.996e-05,
        "liq_price": 6320,
        "bust_price": 6292.5,
        "occ_closing_fee": 6e-07,
        "occ_funding_fee": 0,
        "take_profit": 0,
        "stop_loss": 7000,
        "trailing_stop": 0,
        "position_status": "Normal",
        "deleverage_indicator": 5,
        "oc_calc_data": "{\"blq\":2,\"blv\":\"0.0002941\",\"slq\":0,\"bmp\":6800.408,\"smp\":0,\"fq\":-5,\"fc\":-0.00004279,\"bv2c\":0.14549282,\"sv2c\":0.14527699}",
        "order_margin": 4.279e-05,
        "wallet_balance": 0.03000227,
        "realised_pnl": -1.26e-06,
        "cum_realised_pnl": -1.306e-05,
        "cum_commission": 0,
        "cross_seq": 444081383,
        "position_seq": 287176872,
        "created_at": "2019-10-19T17:04:55.000Z",
        "updated_at": "2019-12-27T21:17:27.000Z",
        "ext_fields": {
            "trailing_active":"9000",
            "sl_trigger_by": "LastPrice",
            "v": 221,
            "mm": 0
        }
    },
    "ext_info": null,
    "time_now": "1577481447.436689",
    "rate_limit_status": 73,
    "rate_limit_reset_ms": 1577481447443,
    "rate_limit": 75
}

设置仓位止盈止损、追踪止损。

HTTP 请求

POST /v2/private/position/trading-stop

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
take_profit false number 不小于0,如果等于0则是取消止盈(TP)
stop_loss false number 不小于0,如果等于0则是取消止损(SL)
trailing_stop false number 不小于0,如果等于0则是取消追踪止损(TS)
tp_trigger_by false string 止盈激活价格类型,默认为LastPrice
sl_trigger_by false string 止损激活价格类型,默认为LastPrice
new_trailing_active false number 追踪止损触发价格。追踪止损会在到达该价格后才会触发(追踪止损默认立即触发)。
sl_size false number 在部分止盈止损模式下,止损合约数量
tp_size false number 在部分止盈止损模式下,止盈合约数量

返回参数

参数 类型 说明
id number 仓位ID
user_id number 用户ID
symbol string 合约类型
side string 方向
size number 仓位数量
position_value string 仓位价值
entry_price string 平均入场价
risk_id number 风险限额ID
auto_add_margin number 是否自动追加保证金
leverage string 逐仓模式下, 值为用户设置的杠杆;全仓模式下,值为当前风险限额下最大杠杆
position_margin string 仓位保证金
liq_price string 强平价格
bust_price string 破产价格
occ_closing_fee string 仓位占用的平仓手续费
occ_funding_fee string 仓位size和当前资金费率预占用资金费用
take_profit string 止盈价格
stop_loss string 止损价格
trailing_stop string 追踪止损
position_status string 仓位状态,正常,强平,减仓
deleverage_indicator number 风险指示灯等级(1,2,3,4,5)
oc_calc_data string 预占保证证计算参数, blq-多方所有未成交委托数; bmp-多方最低价; slq-空方所有未成交委托数; smp-空方最低价
order_margin string 委托预占用保证金
wallet_balance string 钱包余额
realised_pnl string 当日已结盈亏
cum_realised_pnl string 累计已结盈亏
cum_commission number 累计佣金
cross_seq number 撮合版本号
position_seq number 仓位变化版本号
created_at string 创建时间
updated_at string 更新时间
ext_fields>trailing_active string 激活价格
ext_fields>sl_trigger_by string 止损激活价格类型

修改杠杆

请求示例

curl https://api.bybit.com/v2/private/position/leverage/save \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD","buy_leverage":14,"sell_leverage":14,"timestamp":{timestamp},"sign":"{sign}"}'
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Positions.Positions_saveLeverage(symbol="BTCUSD", leverage="14").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": 2,
    "ext_info": null,
    "time_now": "1577477968.175013",
    "rate_limit_status": 74,
    "rate_limit_reset_ms": 1577477968183,
    "rate_limit": 75
}

设置杠杆

HTTP 请求

POST /v2/private/position/leverage/save

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
leverage true number leverage必须大于0且小于最大可设置杠杆 risk limit leverage,如果你想切换全逐仓,请使用 全仓/逐仓切换
leverage_only false bool 该字段表明一个兼容逻辑。
若该字段为false,当leverage 等于0时将会切换至全仓,当leverage大于0将切换至逐仓,此时无法在全仓下设置杠杆;
若该字段为true则表示在当前仓位模式下切换杠杆,此时leverage需要大于0,并可以使用全仓切换杠杆功能。
我们建议用户leverage设置为true

返回参数

参数 类型 说明
result number 用户杠杆

用户成交记录

请求示例

curl "https://api.bybit.com/v2/private/execution/list?api_key={api_key}&symbol=BTCUSD&timestamp={timestamp}&sign={sign}"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Execution.Execution_getTrades(symbol="BTCUSD").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": {
        "order_id": "已废弃!!", // 已废弃!!
        "trade_list": [
            {
                "closed_size": 0, // 平仓委托对应的平仓大小
                "cross_seq": 277136382,
                "exec_fee": "0.0000001",
                "exec_id": "256e5ef8-abfe-5772-971b-f944e15e0d68",
                "exec_price": "8178.5",
                "exec_qty": 1,
                "exec_time": "1571676941.70682",    //已废弃!!
                "exec_type": "Trade", //交易类型枚举
                "exec_value": "0.00012227",
                "fee_rate": "0.00075",
                "last_liquidity_ind": "RemovedLiquidity", //流动性类型枚举, 只有当exec_type字段类型为Trade、AdlTrade、BustTrade时有效
                "leaves_qty": 0,
                "nth_fill": 2,
                "order_id": "7ad50cb1-9ad0-4f74-804b-d82a516e1029",
                "order_link_id": "",
                "order_price": "8178",
                "order_qty": 1,
                "order_type": "Market", //订单类型枚举
                "side": "Buy", //方向枚举
                "symbol": "BTCUSD", //交易对枚举
                "user_id": 1,
                "trade_time_ms": 1577480599000
            }
        ]
    },
    "time_now": "1577483699.281488",
    "rate_limit_status": 118,
    "rate_limit_reset_ms": 1577483699244737,
    "rate_limit": 120
}

获取用户成交记录,按时间升序排列。

HTTP 请求

GET /v2/private/execution/list

请求参数

参数 是否必须 类型 说明
order_id false string 订单号,如果没有填写订单号,将返回用户交易记录
symbol true string 交易对 必填
start_time false int 开始时间戳(毫秒)
page false integer 页码.默认取第一页
limit false integer 返回数据最大200条. 默认返回50条
order false string 按创建时间排序

返回参数

参数 类型 说明
closed_size number 平仓委托对应的平仓大小
cross_seq number 撮合版本号
exec_fee string 交易手续费
exec_id string 成交ID
exec_price number 成交价格
exec_qty number 成交数量
exec_type string 交易类型枚举
exec_value string 成交价值
fee_rate string 手续费率
last_liquidity_ind string 流动性类型枚举, 只有当exec_type字段类型为Trade、AdlTrade、BustTrade时有效
leaves_qty number 剩余委托数量
nth_fill number 该笔流水对应了撮合响应包里的第几笔成交
order_id string 订单ID
order_link_id string 机构自定义订单ID
order_price string 订单价格
order_qty string 订单数量
order_type string 订单类型枚举
side string 方向
symbol string 交易对枚举
user_id number 用户ID
trade_time_ms number 交易时间

平仓盈亏

请求示例

curl "https://api.bybit.com/v2/private/trade/closed-pnl/list?api_key={api_key}&symbol=BTCUSD&timestamp={timestamp}&sign={sign}"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Positions.Positions_closePnlRecords(symbol="BTCUSD").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": {
        "current_page": 1,
        "data": [
            {
                "id": 9982,
                "user_id": 160320,
                "symbol": "BTCUSD",
                "order_id": "e976ac13-10e7-4883-a7ba-13b0e93659f1",
                "side": "Sell",
                "qty": 226,
                "order_price": 1600,
                "order_type": "Limit",
                "exec_type": "Trade",
                "closed_size": 113,
                "cum_entry_value": 0.07062500000000001,
                "avg_entry_price": 1600,
                "cum_exit_value": 0.066198,
                "avg_exit_price": 1707,
                "closed_pnl": 0.0043950000000000005,
                "fill_count": 1,
                "leverage": 100,
                "created_at": 1591155741
            }
        ]
    },
    "time_now": "1591173153.876047",
    "rate_limit_status": 119,
    "rate_limit_reset_ms": 1591173153852,
    "rate_limit": 120
}

获取用户平仓记录,按时间降序排列。

HTTP 请求

GET /v2/private/trade/closed-pnl/list

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
start_time false int 开始时间戳(秒)
end_time false int 结束时间戳(秒)
exec_type false string 交易类型(不能为"Funding")
page false integer 页码.默认取第一页,最大50
limit false integer 每页数量, 最大50. 默认每页20条,最多50条每页

返回参数

参数 类型 说明
id number 仓位ID
user_id number 用户ID
symbol string 合约类型
order_id string 订单ID
side string Side of the closing order
qty number 委托数量
order_price number 订单价格
order_type string 订单类型
exec_type string 交易类型枚举
closed_size number 平仓委托对应的平仓大小
cum_entry_value number 被平掉的仓位价值
avg_entry_price number 平均入场价
cum_exit_value number 平仓订单累计成交价值
avg_exit_price number 平均出场价
closed_pnl number 与平仓size等比例对应的盈亏
fill_count number 成交笔数
leverage number 逐仓模式下, 值为用户设置的杠杆;全仓模式下,值为当前风险限额下最大杠杆
created_at number 创建时间

切换止盈止损模式

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": {
        "tp_sl_mode": "Partial"
    },
    "time_now": "1598266294.610276",
    "rate_limit_status": 72,
    "rate_limit_reset_ms": 1598266294607,
    "rate_limit": 75
}

切换止盈止损模式至全仓或部分

HTTP 请求

POST /v2/private/tpsl/switch-mode

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
tp_sl_mode true string 止盈止损模式

返回参数

参数 类型 说明
tp_sl_mode string 止盈止损模式

全仓/逐仓切换

请求示例

curl https://api.bybit.com/v2/private/position/switch-isolated \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD", "is_isolated":true,"buy_leverage":10,"sell_leverage":20, "timestamp":{timestamp},"sign":"{sign}"}'

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": null,
    "ext_info": null,
    "time_now": "1577477968.175013",
    "rate_limit_status": 74,
    "rate_limit_reset_ms": 1577477968183,
    "rate_limit": 75
}

全仓/逐仓切换,从全仓切换至逐仓时需要传杠杆

HTTP 请求

POST /v2/private/position/switch-isolated

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
is_isolated true bool 全仓/逐仓, true是逐仓,false是全仓
buy_leverage true number 全仓/逐仓切换,需要传杠杆并且buy_leveragesell_leverage必须传入相同参数;
sell_leverage true number 全仓/逐仓切换,需要传杠杆并且buy_leveragesell_leverage必须传入相同参数;

风险限额

查询风险限额表

请求示例

curl "https://api.bybit.com/v2/public/risk-limit/list?symbol=BTCUSD"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Wallet.Wallet_getRiskLimit().result())

响应示例

{
    "ret_code":0,
    "ret_msg":"OK",
    "ext_code":"",
    "ext_info":"",
    "result":[
        {
            "id":1,
            "symbol":"BTCUSD",
            "limit":1000000,
            "maintain_margin":0.005,
            "starting_margin":0.01,
            "section":[
                "1",
                "2",
                "3",
                "5",
                "10",
                "25",
                "50",
                "100"
            ],
            "is_lowest_risk":1,
            "created_at":"2021-03-17T08:20:53.000Z",
            "updated_at":"2021-03-17T08:20:53.000Z",
            "max_leverage":100
        },
        ...
        {
            "id":10,
            "symbol":"BTCUSD",
            "limit":10000000,
            "maintain_margin":0.05,
            "starting_margin":0.055,
            "section":[
                "1",
                "2",
                "3",
                "4",
                "5",
                "10",
                "15",
                "18"
            ],
            "is_lowest_risk":0,
            "created_at":"2021-03-17T08:21:12.000Z",
            "updated_at":"2021-03-17T08:21:12.000Z",
            "max_leverage":18.18
        }
    ],
    "time_now":"1616052270.701108"
}

查询风险限额表。

HTTP 请求

GET /v2/public/risk-limit/list

请求参数

参数 是否必须 类型 说明
symbol false string 合约类型

返回参数

参数 类型 说明
id number 风险限额ID
symbol string 合约类型
limit number 风险限额
maintain_margin number 维持保证金
starting_margin number 起始保证金
section string 区间点
is_lowest_risk number 是否最低风险限额0:不是 1:是
created_at string 创建时间
updated_at string 更新时间
max_leverage string 最大杠杆

设置风险限额

请求示例

curl https://api.bybit.com/v2/private/position/risk-limit \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD","risk_id":2,"timestamp":{timestamp},"sign":"{sign}"}'

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": {
        "risk_id": 2
    },
    "time_now": "1620283810.393787",
    "token": null
}

HTTP 请求

POST /v2/private/position/risk-limit

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
risk_id true integer 风险限额ID

返回参数

参数 类型 说明
risk_id number 风险限额ID

资金费率

查询上个周期的资金费率

请求示例

curl "https://api.bybit.com/v2/public/funding/prev-funding-rate?symbol=BTCUSD"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Funding.Funding_prevRate(symbol="BTCUSD").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": {
        "symbol": "BTCUSD",
        "funding_rate": "0.00010000",
        "funding_rate_timestamp": 1577433600
    },
    "ext_info": null,
    "time_now": "1577445586.446797",
    "rate_limit_status": 119,
    "rate_limit_reset_ms": 1577445586454,
    "rate_limit": 120
}

UTC时间每天0点、8点、16点产生一个资金费率。 假设当前时间是UTC12点,则返回的是上一次结算即UTC8点产生的资金费率。

HTTP 请求

GET /v2/public/funding/prev-funding-rate

请求参数

parameter 是否必须 类型 说明
symbol true string 合约类型

返回参数

参数 类型 说明
symbol string 合约类型
funding_rate string 资金费率
funding_rate_timestamp number 资金费率时间戳

查询上个周期资金费用结算信息

请求示例

curl "https://api.bybit.com/v2/private/funding/prev-funding?api_key={api_key}&symbol=BTCUSD&timestamp={timestamp}&sign={sign}"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Funding.Funding_myLastFee(symbol="BTCUSD").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": {
        "symbol": "BTCUSD",
        "side": "Buy",  // Your position side at the time of settlement
        "size": 1,      // Your position size at the time of settlement
        "funding_rate": 0.0001,  // Funding rate for settlement. When the funding rate is positive, longs pay shorts. When it is negative, shorts pay longs.
        "exec_fee": 0.00000002,  // Funding fee.
        "exec_timestamp": 1575907200  // The time of funding settlement occurred, UTC timestamp
    },
    "ext_info": null,
    "time_now": "1577446900.717204",
    "rate_limit_status": 119,
    "rate_limit_reset_ms": 1577446900724,
    "rate_limit": 120
}

UTC时间每天0点、8点、16点进行资金费用结算

当前周期的资金费用结算是根据上个周期的资金费率来进行结算

比如16点结算时是按照8点产生的资金费率来进行结算,而16点产生的资金费率则会在第二天0点结算时使用

HTTP 请求

GET /v2/private/funding/prev-funding

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型

返回参数

参数 类型 说明
symbol string 合约类型
side string 执行资金费率时的用户仓位方向
size number 执行资金费率时的用户仓位数量
funding_rate number 资金费率
exec_fee number 交易手续费
exec_timestamp number 交易时间

查询预测资金费率和资金费用

请求示例

curl "https://api.bybit.com/v2/private/funding/predicted-funding?api_key={api_key}&symbol=BTCUSD&timestamp={timestamp}&sign={sign}"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Funding.Funding_predicted(symbol="BTCUSD").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": {
        "predicted_funding_rate": 0.0001,
        "predicted_funding_fee": 0
    },
    "ext_info": null,
    "time_now": "1577447415.583259",
    "rate_limit_status": 118,
    "rate_limit_reset_ms": 1577447415590,
    "rate_limit": 120
}

查询预测资金费率和资金费用。

HTTP 请求

GET /v2/private/funding/predicted-funding

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型

返回参数

参数 类型 说明
predicted_funding_rate number 预测资金费率
predicted_funding_fee number 预测资金费用

APIKey信息

请求示例

curl "https://api.bybit.com/v2/private/account/api-key?api_key={api_key}&timestamp={timestamp}&sign={sign}"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.APIkey.APIkey_info().result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": [
        {
            "api_key": "7GkMBBLTbGRfa0Nuh1",
            "type": "personal",
            "user_id": 1,
            "inviter_id": 3,
            "ips": [
                "*"
            ],
            "note": "scalping_bot",
            "permissions": [
                "Order",
                "Position"
            ],
            "created_at": "2019-10-28T13:22:39.000Z",
            "expired_at": "2020-01-28T13:22:39.000Z",
            "read_only": false
        }
    ],
    "ext_info": null,
    "time_now": "1577445138.790150",
    "rate_limit_status": 99,
    "rate_limit_reset_ms": 1577445138812,
    "rate_limit": 100
}

获取账户API密钥信息。

HTTP 请求

GET /v2/private/account/api-key

请求参数

参数 是否必须 类型 说明

返回参数

参数 类型 说明
api_key string API 密钥
type string Key 类型
user_id number 用户 ID
inviter_id number 邀请人 ID
ips string IP地址
note string 备注
permissions string ApiKey 所有权限
created_at string 创建时间
expired_at string 过期时间
read_only bool 是否只读

流动性贡献分

请求示例

curl "https://api.bybit.com/v2/private/account/lcp?api_key={api_key}&symbol=BTCUSD&timestamp={timestamp}&sign={sign}"

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": [
        "lcp_list": [
        {
            "date": "2020-04-27",
            "self_ratio": 0,
            "platform_ratio": 0,
            "score": 0.1459
        },
        {
            "date": "2020-04-26",
            "self_ratio": 0,
            "platform_ratio": 0,
            "score": 0.1459
        }
        ]
    ],
    "ext_info": null,
    "time_now": "1577445138.790150",
    "rate_limit_status": 99,
    "rate_limit_reset_ms": 1577445138812,
    "rate_limit": 100
}

查询用户流动性贡献分(当天数据每小时更新一次)

HTTP 请求

GET /v2/private/account/lcp

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型

返回参数

参数 类型 说明
date string 日期
self_ratio number 已废弃! 个人有效挂单占比
platform_ratio number 已废弃! 平台有效挂单占比
score number 流动性贡献分

钱包接口

钱包相关接口需要认证。

账号余额

请求示例

curl "https://api.bybit.com/v2/private/wallet/balance?api_key={api_key}&coin=BTC&timestamp={timestamp}&sign={sign}"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Wallet.Wallet_getBalance(coin="BTC").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": {
        "BTC": {
            "equity": 1002,                         //equity = wallet_balance + unrealised_pnl
            "available_balance": 999.99987471,      //available_balance
            //In Isolated Margin Mode:
            // available_balance = wallet_balance - (position_margin + occ_closing_fee + occ_funding_fee + order_margin)
            //In Cross Margin Mode:
              //if unrealised_pnl > 0:
              //available_balance = wallet_balance - (position_margin + occ_closing_fee + occ_funding_fee + order_margin);
              //if unrealised_pnl < 0:
              //available_balance = wallet_balance - (position_margin + occ_closing_fee + occ_funding_fee + order_margin) + unrealised_pnl
            "used_margin": 0.00012529,              //used_margin = wallet_balance - available_balance
            "order_margin": 0.00012529,             //Used margin by order
            "position_margin": 0,                   //position margin
            "occ_closing_fee": 0,                   //position closing fee
            "occ_funding_fee": 0,                   //funding fee
            "wallet_balance": 1000,                 //wallet balance. When in Cross Margin mod, the number minus your unclosed loss is your real wallet balance.
            "realised_pnl": 0,                      //daily realized profit and loss
            "unrealised_pnl": 2,                    //unrealised profit and loss
                //when side is sell:
                // unrealised_pnl = size * (1.0 / mark_price -  1.0 / entry_price)
                //when side is buy:
                // unrealised_pnl = size * (1.0 / entry_price -  1.0 / mark_price)
            "cum_realised_pnl": 0,                  //total relised profit and loss
            "given_cash": 0,                        //given_cash
            "service_cash": 0                       //service_cash
        }
    },
    "time_now": "1578284274.816029",
    "rate_limit_status": 98,
    "rate_limit_reset_ms": 1580885703683,
    "rate_limit": 100
}

获取钱包余额

HTTP 请求

GET /v2/private/wallet/balance

请求参数

参数 是否必须 类型 说明
coin false string currency alias,如果不传参数coin,将返回所有钱包余额。

返回参数

参数 类型 说明
equity number 用户资产
available_balance number 可用余额, 钱包余额 - 仓位保证金
used_margin number 已用保证金
order_margin number 委托预占用保证金
position_margin number 仓位保证金
occ_closing_fee number 仓位占用的平仓手续费
occ_funding_fee number 仓位size和当前资金费率预占用资金费用
wallet_balance number 钱包余额
realised_pnl number 当日已结盈亏
unrealised_pnl number 未结盈亏
cum_realised_pnl number 累计已结盈亏
given_cash number 体验金
service_cash number 抵扣金

资金记录

请求示例

curl "https://api.bybit.com/v2/private/wallet/fund/records?api_key={api_key}&timestamp={timestamp}&sign={sign}"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Wallet.Wallet_getRecords().result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": {
        "data": [
            {
                "id": 235853,
                "user_id": 1,
                "coin": "BTC",
                "wallet_id": 27913,
                "type": "Realized P&L",
                "amount": "0.00000023",
                "tx_id": "",
                "address": "BTCUSD",
                "wallet_balance": "0.03000353",
                "exec_time": "2019-12-10T00:00:29.000Z",
                "cross_seq": 0
            },
            {
                "id": 234467,
                "user_id": 1,
                "coin": "BTC",
                "wallet_id": 27913,
                "type": "Realized P&L",
                "amount": "-0.00000006",
                "tx_id": "",
                "address": "BTCUSD",
                "wallet_balance": "0.03000330",
                "exec_time": "2019-12-09T00:00:25.000Z",
                "cross_seq": 0
            }
        ]
    },
    "ext_info": null,
    "time_now": "1577481867.115552",
    "rate_limit_status": 119,
    "rate_limit_reset_ms": 1577481867122,
    "rate_limit": 120
}

查询资金记录。

HTTP 请求

GET /v2/private/wallet/fund/records

请求参数

参数 是否必须 类型 说明
start_date false string 起始时间点
end_date false string 结束时间点
currency false string 币种类型
coin false string currency alias
wallet_fund_type false string 资金记录类型
page false integer 页码.默认取第一页
limit false integer 每页数量, 最大50. 默认每页20条

返回参数

参数 类型 说明
user_id number 用户ID
coin string 币种
type string 资金类型
amount string 资金总量
tx_id string 交易哈希ID
address string 地址
wallet_balance string 钱包余额
exec_time string 交易时间
cross_seq number 撮合版本号

提币记录

请求示例

curl "https://api.bybit.com/v2/private/wallet/withdraw/list?api_key={api_key}&timestamp={timestamp}&sign={sign}"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Wallet.Wallet_withdraw().result())

响应示例

{
  "ret_code": 0,
  "ret_msg": "ok",
  "ext_code": "",
  "result": {
      "data": [{
          "id": 137,                                        
          "user_id": 1,                                     
          "coin": "XRP",  //币种枚举                                    
          "status": "Pending" //提币状态枚举
          "amount": "20.00000000",
          "fee": "0.25000000",
          "address": "rH7H595XYEVTEHU2FySYsWnmfACBnZS9zM",
          "tx_id": "",
          "submited_at": "2019-06-11T02:20:24.000Z",
          "updated_at": "2019-06-11T02:20:24.000Z"
      }]
      "current_page": 1,
      "last_page": 1
  },
  "ext_info": null,
  "time_now": "1577482295.125488",
  "rate_limit_status": 119,
  "rate_limit_reset_ms": 1577482295132,
  "rate_limit": 120
}

查询提币记录。

HTTP 请求

GET /v2/private/wallet/withdraw/list

请求参数

参数 是否必须 类型 说明
start_date false string 起始时间点
end_date false string 结束时间点
coin false string 币种类型
status false string 提币状态枚举
page false integer 页码.默认取第一页
limit false integer 每页数量, 最大50. 默认每页20条

返回参数

参数 类型 说明
user_id number 用户ID
coin string 币种
status string 提币状态枚举
amount string 资金总量
fee string 手续费率
address string 地址
tx_id string 交易哈希ID
submited_at string 提交时间
updated_at string 更新时间

资产兑换记录

请求示例

curl "https://api.bybit.com/v2/private/exchange-order/list?api_key={api_key}&timestamp={timestamp}&sign={sign}"

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": [
        {
            "id": 31,
            "exchange_rate": 40.57202774,
            "from_coin": "BTC",
            "to_coin": "ETH",
            "to_amount": 4.05720277,
            "from_fee": 0.0005,
            "from_amount": 0.1,
            "created_at": "2020-06-15 03:32:52"
        },
        {
            "id": 30,
            "exchange_rate": 39.92359901,
            "from_coin": "BTC",
            "to_coin": "ETH",
            "to_amount": 39.923599,
            "from_fee": 0.0005,
            "from_amount": 1,
            "created_at": "2020-06-12 08:27:51"
        }
    ],
    "time_now": "1592554785.486414",
    "rate_limit_status": 119,
    "rate_limit_reset_ms": 1592554785484,
    "rate_limit": 120
}

查询资产兑换记录

HTTP 请求

GET /v2/private/exchange-order/list

请求参数

参数 是否必须 类型 说明
limit false integer 每页数量, 最大50. 默认每页20条
from false integer 起始ID,默认为最新id
direction false string 搜索方向:Prev:以起始ID升序检索,Next:起始ID降序检索,默认为Next

返回参数

参数 类型 说明
from_coin string 兑出币种
from_amount number 兑出数量
to_coin string 兑入币种
to_amount number 兑入数量
exchange_rate number 兑换汇率
from_fee number 兑换手续费(兑出币种计价)
created_at string 兑换时间

通用数据接口

通用数据接口不需要鉴权。

服务器时间

请求示例

curl https://api-testnet.bybit.com/v2/public/time
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Common.Common_getTime().result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": {},
    "time_now": "1577444332.192859"
}

获取Bybit服务器时间

HTTP 请求

GET /v2/public/time

请求参数

参数 是否必须 类型 说明

公告

请求示例

curl https://api.bybit.com/v2/public/announcement

响应示例

{
    "ret_code": 0,
    "ret_msg": "OK",
    "ext_code": "",
    "ext_info": "",
    "result": [
        {
            "id": 2,
            "title": "2019-12-02 RELEASE",
            "link": "https://github.com/bybit-exchange/bybit-official-api-docs/blob/master/en/CHANGELOG.md",
            "summary": "<p>New `cancel all` endpoint is here now!</p><p>Additionally, we strongly recommend that you use the new released place and cancel active V2 endpoints, which are more stable and efficient.The old ones are deprecated (although still working for the time be",
            "created_at": "2019-12-02T11:33:42Z"
        }
    ],
    "time_now": "1577444818.227082"
}

获取Bybit最近30天OpenAPI公告(时间倒叙排列)

HTTP 请求

GET /v2/public/announcement

请求参数

参数 是否必须 类型 说明

频率限制

IP频率限制

Bybit会基于请求IP做频率限制,针对不同的请求方法有以下规则:

账户频率限制

Bybit基于每分钟的滚动时间窗口来做频率限制,并且是按账户(uid)和交易对(symbol)来做划分限制,每次请求API响应中都会包含如下字段:

"rate_limit_status": 119,
"rate_limit_reset_ms": 1572114055663,
"rate_limit": 120

接口频率限制表

频率限制 请求路径 消耗
100/min
/v2/private/order/cancel 1 / request
/v2/private/stop-order/create 1 / request
/v2/private/stop-order/cancel 1 / request
/v2/private/order/replace 1 / request
/v2/private/stop-order/replace 1 / request
/v2/private/order/create 1 / request
/v2/private/order/cancel 1 / request
/v2/private/order/cancelAll 10 / request
/v2/private/stop-order/cancelAll 10 / request
600/min /v2/private/order/list 1 / request
/v2/private/stop-order/list 1 / request
/v2/private/order 1 / request
120/min /v2/private/execution/list 1 / request
75/min /v2/private/position/leverage/save 1 / request
/v2/private/position/change-position-margin1 / request
/v2/private/position/trading-stop1 / request
/v2/private/tpsl/switch-mode1 / request
120/min
/v2/private/position/list1 / request
/v2/private/wallet/balance1 / request
120/min
/v2/private/funding/prev-funding-rate 1 / request
/v2/private/funding/prev-funding1 / request
/v2/private/funding/predicted-funding1 / request
120/min
/v2/private/wallet/fund/records 1 / request
/v2/private/wallet/withdraw/list1 / request
600/min
/v2/private/account/api-key 1 / request

下单限制

每个交易对可以持有的订单数量上限:

如何提高频率限制

Bybit流动性贡献系统

Bybit 使用报单成交率流动性贡献打分来评价用户对改善bybit可执行流动性作出的贡献。

不同symbol的贡献分报单成交率是独立计算的。

报单成交率

平台上每天提交超过2000个报单的账户,需要保持7天的报单成交率高于最小报单成交率门槛值,违反此规则将会被降低频率或禁用 API。

报单成交率

报单成交率举例
A用户:
已成交报单数量 = 2
已提交报单数量 =8
报单成交率 = 2 / 8 = 25%

B用户:
已成交报单数量 = 1
已提交报单数量 =1
报单成交率 = 1 / 1 = 100%

API 交易用户最小报单成交率门槛

7日内API 交易用户最小报单成交率门槛 0.1%

API 交易用户提高频率的条件

平台会根据API用户近7日挂单对平台流动性贡献分的最低值,对满足条件的用户进行提高频率上限的奖励

流动性贡献分 Order频率限制
20-100 800次 / 每分钟
10-20 600次 / 每分钟
5-10 400次 / 每分钟
2-5 200次 / 每分钟
<2 100次 / 每分钟
流动性贡献打分

名词解释
有效价格挂单

有效价格范围
[最佳竞价中间价 - 3 * 价格最小变动单位, 最佳竞价中间价 + 3 * 价格最小变动单位]

举例:
 BTC最佳竞买价 = 10000
 BTC最佳竞卖价 = 10001
 “有效价格”范围:
 [(10000 + 10001) / 2 - 3* 0.5, (10000 + 10001) / 2 + 3* 0.5] = [9999,10002]

有效价格挂单自占比

每秒计算 该用户在有效价格范围内的报挂单数量 /该用户提交的挂单总数量,然后每日计算用户当日占比的平均值。

该用户在有效价格范围内的挂单数量 = 8000
该用户提交的挂单总数量 = 10000
有效价格挂单自占比 = 8000 / 10000 = 0.8

有效价格挂单平台占比

每秒计算 该用户在有效价格范围内的挂单数量 / 平台所有用户在有效价格范围内的挂单总数量,然后每日计算用户当日占比的平均值。

有效价格挂单平台占比举例:

某一秒,用户在“有效价格”范围:[9999, 10002] 内的挂单有8000张,全平台的交易委托账本在 [9999, 10002] 内的挂单总量为200000。

该用户在有效价格范围内的挂单数量 = 8000
平台所有用户在有效价格范围内的挂单总数量 = 200000
有效价格挂单量平台占比 = 8000 / 200000 = 0.04

WebSocket接口

鉴权/认证

认证方式:

方法1: 建立连接时附带验证信息.

# based on: https://github.com/verata-veritatis/pybit/blob/master/pybit/__init__.py

import hmac
import json
import time
import websocket

ws_url = "wss://stream.bybit.com/realtime"

api_key = ""
api_secret = ""

# Generate expires.
expires = int((time.time() + 1) * 1000)

# Generate signature.
signature = str(hmac.new(
    bytes(api_secret, "utf-8"),
    bytes(f"GET/realtime{expires}", "utf-8"), digestmod="sha256"
).hexdigest())

param = "api_key={api_key}&expires={expires}&signature={signature}".format(
    api_key=api_key,
    expires=expires,
    signature=signature
)

url = ws_url + "?" + param

ws = websocket.WebSocketApp(
    url=url,
    ...
)

方法2: 建立连接后发送auth请求验证.

ws = websocket.WebSocketApp(
    url=url,
    ...
)

# Authenticate with API.
ws.send(
    json.dumps({
        "op": "auth",
        "args": [api_key, expires, signature]
    })
)

Websocket服务器地址:

如右侧代码区所示,一共有两种验证方法.

心跳包/Ping

如何发送心跳包

ws.send('{"op":"ping"}');

响应示例

{
    "success": true, // Whether ping is successful
    "ret_msg": "pong",
    "conn_id": "036e5d21-804c-4447-a92d-b65a44d00700",// current connection id
    "request": {
        "op": "ping",
        "args": null
    }
}

订阅方式

Websocket订阅方式

直接订阅

// Subscribing to the trade data for BTCUSD
ws.send('{"op":"subscribe","args":["trade.BTCUSD"]}')

通过分隔符来订阅多个topic

// Example: Subscribing to the trade data for BTCUSD and XRPUSD
ws.send('{"op":"subscribe","args":["trade.BTCUSD|XRPUSD"]}')

通过匹配符来订阅多个topic

// Example: Subscribing to the trade data for all symbols
ws.send('{"op": "subscribe", "args": ["trade.*"]}')

建立连接后, 可以通过发送JSON请求来订阅topic. 其中binary为false表示不进行压缩传输,为true时表示以GZIP格式进行压缩,请求格式如下:

ws.send('{"op": "subscribe", "args": ["topic.filter"]}');

您也可以同时订阅多个感兴趣的topic,订阅方式如下

ws.send('{"op": "subscribe", "args": ["topic.filter", "topic.filter"]}');

您可以使用管道符号(|)来分割多个参数,前提是这些参数都是合法的.

您还可以使用匹配符号(*)来匹配多个topic,具体用法见右侧代码栏

Websocket取消订阅方式

取消订阅

// Unsubscribing from the trade data for ETHUSD
ws.send('{"op":"unsubscribe","args":["trade.ETHUSD"]}')

您可以在不断开连接的前提下动态调整您要订阅的信息,取消订阅方式如下:

ws.send('{"op": "unsubscribe", "args": ["topic.filter", "topic.filter"]}');

推送周期

如果topic名中包含一个推送周期,如100ms, 那么表明这个topic是每隔100ms推送一次.否则, 这个topic只要有消息就会推送.

订阅结果

订阅推送

{
   "success": true, // Whether subscription is successful
   "ret_msg": "",   // Successful subscription: "", otherwise it shows error message
   "conn_id":"e0e10eee-4eff-4d21-881e-a0c55c25e2da",// current connection id
   "request": {     // Request to your subscription
       "op": "subscribe",
       "args": [
           "kline.BTCUSD.1m"
       ]
   }
}

每个topic订阅请求都会有对应的响应,您可以根据返回结果判断是否订阅成功。

公共 Topics

orderBook25档

请求订阅

ws.send('{"op": "subscribe", "args": ["orderBookL2_25.BTCUSD"]}');
from BybitWebsocket import BybitWebsocket
ws = BybitWebsocket(wsURL="wss://stream-testnet.bybit.com/realtime",
                    api_key=None, api_secret=None)
ws.subscribe_orderBookL2(symbol="BTCUSD")
while True:
    data = ws.get_data("orderBookL2_25.BTCUSD")
    if data:
        print(data)

快照推送示例 - 连接建立成功后首次推送

{
     "topic": "orderBookL2_25.BTCUSD",
     "type": "snapshot",
     "data": [
        {
            "price": "2999.00",
            "symbol": "BTCUSD",
            "id": 29990000,
            "side": "Buy",
            "size": 9
        },
        {
            "price": "3001.00",
            "symbol": "BTCUSD",
            "id": 30010000,
            "side": "Sell",
            "size": 10
        }
     ],
     "cross_seq": 11518,
     "timestamp_e6": 1555647164875373
}

增量推送示例 - 快照数据推送后,推送的增量数据

{
     "topic": "orderBookL2_25.BTCUSD",
     "type": "delta",
     "data": {
          "delete": [
             {
                   "price": "3001.00",
                   "symbol": "BTCUSD",
                   "id": 30010000,
                   "side": "Sell"
             }
          ],
          "update": [
             {
                   "price": "2999.00",
                   "symbol": "BTCUSD",
                   "id": 29990000,
                   "side": "Buy",
                   "size": 8
             }
          ],
          "insert": [
             {
                   "price": "2998.00",
                   "symbol": "BTCUSD",
                   "id": 29980000,
                   "side": "Buy",
                   "size": 8
             }
          ],
          "transactTimeE6": 0
     },
     "cross_seq": 11519,
     "timestamp_e6": 1555647221331673
}

获取25档orderbook数据.

订阅成功后, 会立即得到一个当前快照包的推送信息. orderbook数据按订单价格升序排列, 从最低价格的买单到最高价格的卖单.

快照包之后,每当orderbook发生变化,websocket都会推送这些变化的增量数据.

返回参数

参数 类型 说明
price string 委托价格
symbol string 合约类型
side string 方向
size number 仓位数量

orderBook200档

请求订阅

ws.send('{"op": "subscribe", "args": ["orderBook_200.100ms.BTCUSD"]}');

快照推送示例 - 连接建立成功后首次推送

{
     "topic": "orderBook_200.100ms.BTCUSD",
     "type": "snapshot",
     "data": [
        {
            "price": "2999.00",
            "symbol": "BTCUSD",
            "id": 29990000,
            "side": "Buy",
            "size": 9
        },
        {
            "price": "3001.00",
            "symbol": "BTCUSD",
            "id": 30010000,
            "side": "Sell",
            "size": 10
        }
     ],
     "cross_seq": 11518,
     "timestamp_e6": 1555647164875373
}

增量推送示例 - 快照数据推送后,推送的增量数据

{
     "topic": "orderBook_200.100ms.BTCUSD",
     "type": "delta",
     "data": {
          "delete": [
             {
                   "price": "3001.00",
                   "symbol": "BTCUSD",
                   "id": 30010000,
                   "side": "Sell"
             }
          ],
          "update": [
             {
                   "price": "2999.00",
                   "symbol": "BTCUSD",
                   "id": 29990000,
                   "side": "Buy",
                   "size": 8
             }
          ],
          "insert": [
             {
                   "price": "2998.00",
                   "symbol": "BTCUSD",
                   "id": 29980000,
                   "side": "Buy",
                   "size": 8
             }
          ],
          "transactTimeE6": 0
     },
     "cross_seq": 11519,
     "timestamp_e6": 1555647221331673
}

获取200档orderbook数据.

订阅成功后, 会立即得到一个当前快照包的推送信息. orderbook数据按订单价格升序排序, 从最低价格的买单到最高价格的卖单.

快照包之后,每当orderbook发生变化,websocket将会继续推送这些增量数据.

返回参数

参数 类型 说明
price string 委托价格
symbol string 合约类型
side string 方向
size number 仓位数量

平台成交

请求订阅

ws.send('{"op": "subscribe", "args": ["trade"]}')
from BybitWebsocket import BybitWebsocket
ws = BybitWebsocket(wsURL="wss://stream-testnet.bybit.com/realtime",
                    api_key=None, api_secret=None)
ws.subscribe_trade()
while True:
    data = ws.get_data("trade.BTCUSD")
    if data:
        print(data)

响应示例

{
    "topic": "trade.BTCUSD",
    "data": [
        {
            "timestamp": "2020-01-12T16:59:59.000Z",
            "trade_time_ms": 1582793344685, // trade time in millisecond
            "symbol": "BTCUSD",
            "side": "Sell",
            "size": 328,
            "price": 8098,
            "tick_direction": "MinusTick",
            "trade_id": "00c706e1-ba52-5bb0-98d0-bf694bdc69f7",
            "cross_seq": 1052816407
        }
    ]
}

获取Bybit平台最近成交数据.

返回参数

参数 类型 说明
time string UTC 时间
trade_time_ms number 毫秒时间戳
symbol string 合约类型
side string 方向
size number 仓位数量
price number 委托价格
tick_direction string 价格变化方向
trade_id string 交易ID
cross_seq number 撮合版本号

保险基金

请求订阅

ws.send('{"op": "subscribe", "args": ["insurance"]}')
from BybitWebsocket import BybitWebsocket
ws = BybitWebsocket(wsURL="wss://stream-testnet.bybit.com/realtime",
                    api_key=None, api_secret=None)
ws.subscribe_insurance()
while True:
    data = ws.get_data("insurance.BTC")
    if data:
        print(data)

响应示例

{
    "topic": "insurance.BTC",
    "data": [
        {
            "currency": "BTC",
            "timestamp": "2020-01-11T20:00:00Z",
            "wallet_balance": 98786916569
        }
    ]
}

获取保险基金数据.

返回参数

参数 类型 说明
currency string 币种类型
timestamp string UTC 时间
wallet_balance number 钱包余额

行情

请求订阅

ws.send('{"op": "subscribe", "args": ["instrument_info.100ms.BTCUSD"]}')
from BybitWebsocket import BybitWebsocket
ws = BybitWebsocket(wsURL="wss://stream-testnet.bybit.com/realtime",
                    api_key=None, api_secret=None)
ws.subscribe_instrument_info(symbol="BTCUSD")
while True:
    data = ws.get_data("instrument_info.100ms.BTCUSD")
    if data:
        print(data)

快照推送示例 - 连接建立成功后首次推送

{
    "topic":"instrument_info.100ms.BTCUSD",
    "type":"snapshot",
     "data": {
         "id": 1,
         "symbol": "BTCUSD",                           //instrument name
         "last_price_e4": 81165000,                    //the latest price
         "last_price": "81165000",  
         "bid1_price_e4":400025000,                    // best bid price
         "bid1_price":"400025000",
         "ask1_price_e4":475450000,                    // best ask price
         "ask1_price":"475450000",
         "last_tick_direction": "ZeroPlusTick",        //the direction of last tick:PlusTick,ZeroPlusTick,MinusTick,ZeroMinusTick
         "prev_price_24h_e4": 81585000,                //the price of prev 24h
         "prev_price_24h": "81585000",
         "price_24h_pcnt_e6": -5148,                   //the current last price percentage change from prev 24h price
         "high_price_24h_e4": 82900000,                //the highest price of prev 24h
         "high_price_24h": "82900000",
         "low_price_24h_e4": 79655000,                 //the lowest price of prev 24h
         "low_price_24h": "79655000",
         "prev_price_1h_e4": 81395000,                 //the price of prev 1h
         "prev_price_1h": "81395000",
         "price_1h_pcnt_e6": -2825,                    //the current last price percentage change from prev 1h price
         "mark_price_e4": 81178500,                    //mark price
         "mark_price": "81178500",
         "index_price_e4": 81172800,                   //index price
         "index_price": "81172800",
         "open_interest": 154418471,                   //open interest quantity - Attention, the update is not immediate - slowest update is 1 minute
         "open_value_e8": 1997561103030,               //open value quantity - Attention, the update is not immediate - the slowest update is 1 minute
         "total_turnover_e8": 2029370141961401,        //total turnover
         "turnover_24h_e8": 9072939873591,             //24h turnover
         "total_volume": 175654418740,                 //total volume
         "volume_24h": 735865248,                      //24h volume
         "funding_rate_e6": 100,                       //funding rate
         "predicted_funding_rate_e6": 100,             //predicted funding rate
         "cross_seq": 1053192577,                      //sequence
         "created_at": "2018-11-14T16:33:26Z",         
         "updated_at": "2020-01-12T18:25:16Z",         
         "next_funding_time": "2020-01-13T00:00:00Z",  //next funding time
                                                       //the rest time to settle funding fee
         "countdown_hour": 6                           //the remaining time to settle the funding fee     },
    "cross_seq":9267002,
    "timestamp_e6":1615794861826248
}

增量推送示例 - 快照数据推送后,推送的增量数据

{
    "topic": "instrument_info.100ms.BTCUSD",
    "type": "delta",
    "data": {
        "delete": [],
        "update": [
            {
                "id": 1,
                "symbol": "BTCUSD",
                "prev_price_24h_e4": 81565000,
                "prev_price_24h": "81565000",
                "price_24h_pcnt_e6": -4904,
                "open_value_e8": 2000479681106,
                "total_turnover_e8": 2029370495672976,
                "turnover_24h_e8": 9066215468687,
                "volume_24h": 735316391,
                "cross_seq": 1053192657,
                "created_at": "2018-11-14T16:33:26Z",
                "updated_at": "2020-01-12T18:25:25Z"
            }
        ],
        "insert": []
    },
    "cross_seq": 1053192657,
    "timestamp_e6": 1578853525691123
}

获取合约的最新数据.

返回参数

参数 类型 说明
symbol string 合约类型
last_price_e4 integer (已废弃)最新成交价 * 10^4
tick_direction string 价格变化方向
prev_price_24h_e4 integer (已废弃)24小时前的整点市价 * 10^4
price_24h_pcnt_e6 integer 市价相对24h变化百分比 * 10^4
high_price_24h_e4 integer (已废弃)最近 24 小时最高价 * 10^4
low_price_24h_e4 integer (已废弃)最近 24 小时最低价 * 10^4
prev_price_1h_e4 integer (已废弃)1小时前的整点市价 * 10^4
price_1h_pcnt_e6 integer 市价相对1小时前变化百分比 * 10^6
mark_price_e4 integer (已废弃)标记价格 * 10^4
index_price_e4 integer (已废弃)指数价格 * 10^4
last_price integer 最新成交价
prev_price_24h integer 24小时前的整点市价
high_price_24h integer 最近 24 小时最高价
low_price_24h integer 最近 24 小时最低价
prev_price_1h integer 1小时前的整点市价
mark_price integer 标记价格
index_price integer 指数价格
open_interest integer 未平仓合约数量. 不是实时更新,最慢更新时间是一分钟
open_value_e8 integer 未平仓价值 * 10^8. 不是实时更新,最慢更新时间是一分钟
total_turnover_e8 integer 总营业额 * 10^8
turnover_24h_e8 integer 24小时营业额 * 10^8
total_volume integer 总交易量
volume_24h integer 最近 24 小时成交量
predicted_funding_rate_e6 integer 预测资金费率 * 10^6
cross_seq integer 撮合版本号
created_at string 创建时间
updated_at string 更新时间
next_funding_time string 下次结算资金费用时间
countdown_hour integer 结算资金费用剩余时间

K线

请求订阅

ws.send('{"op":"subscribe","args":["klineV2.1.BTCUSD"]}')

响应示例

{
    "topic": "klineV2.1.BTCUSD",                //topic name
    "data": [{
        "start": 1572425640,                    //start time of the candle
        "end": 1572425700,                      //end time of the candle
        "open": 9200,                           //open price
        "close": 9202.5,                        //close price
        "high": 9202.5,                         //max price
        "low": 9196,                            //min price
        "volume": 81790,                        //volume
        "turnover": 8.889247899999999,          //turnover
        "confirm": False,                       //snapshot flag
        "cross_seq": 297503466,                 
        "timestamp": 1572425676958323           //cross time
    }],
    "timestamp_e6": 1572425677047994            //server time
}

目前所支持的周期:

返回参数

参数 类型 说明
start integer 开始时间戳(秒)
end integer 结束时间戳(秒)
open number 开始价格
close number 结束价格
high number 最高价格
low number 最低价格
volume number 交易量
turnover number 成交金额
confirm bool 是否确认
cross_seq integer 撮合版本号
timestamp integer 结束时间戳(秒)

平台强平推送

请求订阅

ws.send('{"op":"subscribe","args":["liquidation"]}')

响应示例

{
    "topic":"liquidation.ETHUSD",
    "data": {
        "symbol":"ETHUSD",
        "side":"Sell",
        "price":"3384.15",
        "qty":"3655",
        "time":1631608881954
    }
}

查询平台强平推送

返回参数

参数 类型 说明
symbol string 合约类型
side string 强平订单的方向
price string 破产价格
qty string 交易数量
time number 毫秒时间戳

私有 Topics

持仓

请求订阅

ws.send('{"op": "subscribe", "args": ["position"]}')
from BybitWebsocket import BybitWebsocket
ws = BybitWebsocket(wsURL="wss://stream-testnet.bybit.com/realtime",
                    api_key=api_key, api_secret=api_secret)
ws.subscribe_position()
while True:
    data = ws.get_data("position")
    if data:
        print(data)

响应示例

{
   "topic": "position",
   "action": "update",
   "data": [
       {
           "user_id":  1,                            // user ID
           "symbol": "BTCUSD",                       // the contract for this position
           "size": 11,                               // the current position amount
           "side": "Sell",                           // side
           "position_value": "0.00159252",           // positional value
           "entry_price": "6907.291588174717",       // entry price
           "liq_price": "7100.234",                  // liquidation price
           "bust_price": "7088.1234",                // bankruptcy price
           "leverage": "1",                           // leverage
           "order_margin":  "1",                      // order margin
           "position_margin":  "1",                   // position margin
           "available_balance":  "2",                 // available balance
           "take_profit": "0",                        // take profit price           
           "tp_trigger_by":  "LastPrice",             // take profit trigger price, eg: LastPrice, IndexPrice. Conditional order only
           "stop_loss": "0",                          // stop loss price
           "sl_trigger_by":  "",                     // stop loss trigger price, eg: LastPrice, IndexPrice. Conditional order only
           "realised_pnl":  "0.10",               // realised PNL
           "trailing_stop": "0",                  // trailing stop points
           "trailing_active": "0",                // trailing stop trigger price
           "wallet_balance":  "4.12",             // wallet balance
           "risk_id":  1,                       
           "occ_closing_fee":  "0.1",             // position closing
           "occ_funding_fee":  "0.1",             // funding fee
           "auto_add_margin": 0,                  // auto margin replenishment switch
           "cum_realised_pnl":  "0.12",           // Total realized profit and loss
           "position_status": "Normal",           // status of position (Normal: normal Liq: in the process of liquidation Adl: in the process of Auto-Deleveraging)
                        // Auto margin replenishment enabled (0: no 1: yes)
           "position_seq": 14                     // position version number
       }
   ]
}

获取我的仓位列表。通过该接口可以获取当前用户的持仓信息,如持仓数量、账户余额等信息

返回参数

参数 类型 说明
user_id number 用户ID
symbol string 合约类型
side string 方向
size number 仓位数量
position_value string 仓位价值
entry_price string 平均入场价
liq_price string 强平价格
bust_price string 破产价格
leverage string 逐仓模式下, 值为用户设置的杠杆;全仓模式下,值为当前风险限额下最大杠杆
order_margin string 委托预占用保证金
position_margin string 仓位保证金
available_balance string 可用余额, 钱包余额 - 仓位保证金
take_profit string 止盈价格
tp_trigger_by string 止盈激活价格类型,默认为LastPrice
stop_loss string 止损价格
sl_trigger_by string 止损激活价格类型,默认为LastPrice
realised_pnl string 当日已结盈亏
trailing_stop string 追踪止损
trailing_active string 激活价格
wallet_balance string 钱包余额
risk_id number 风险限额ID
is_isolated bool 是否逐仓,true-逐仓 false-全仓
occ_closing_fee string 仓位占用的平仓手续费
occ_funding_fee string 仓位size和当前资金费率预占用资金费用
auto_add_margin number 是否自动追加保证金
cum_realised_pnl string 累计已结盈亏
position_status string 仓位状态,正常,强平,减仓
position_seq number 仓位变化版本号

个人成交

请求订阅

ws.send('{"op": "subscribe", "args": ["execution"]}')
from BybitWebsocket import BybitWebsocket
ws = BybitWebsocket(wsURL="wss://stream-testnet.bybit.com/realtime",
                    api_key=api_key, api_secret=api_secret)
ws.subscribe_execution()
while True:
    data = ws.get_data("execution")
    if data:
        print(data)

响应示例

{
    "topic": "execution",
    "data": [
        {
            "symbol": "BTCUSD",
            "side": "Buy",
            "order_id": "xxxxxxxx-xxxx-xxxx-9a8f-4a973eb5c418",
            "exec_id": "xxxxxxxx-xxxx-xxxx-8b66-c3d2fcd352f6",
            "order_link_id": "",
            "price": "8300",
            "order_qty": 1,
            "exec_type": "Trade",
            "exec_qty": 1,
            "exec_fee": "0.00000009",
            "leaves_qty": 0,
            "is_maker": false,
            "trade_time": "2020-01-14T14:07:23.629Z" // trade time
        }
    ]
}

获取用户成交记录,按时间升序排列。

返回参数

参数 类型 说明
symbol string 合约类型
side string 方向
order_id string 订单ID
exec_id string 成交ID
order_link_id string 机构自定义订单ID
price string 成交价格
order_qty number 订单数量
exec_type string 交易类型枚举
exec_qty number 成交数量
exec_fee string 交易手续费
leaves_qty number 剩余委托数量
is_maker bool 是否是maker
trade_time string 交易时间

活动单

请求订阅

ws.send('{"op": "subscribe", "args": ["order"]}')
from BybitWebsocket import BybitWebsocket
ws = BybitWebsocket(wsURL="wss://stream-testnet.bybit.com/realtime",
                    api_key=api_key, api_secret=api_secret)
ws.subscribe_order()
while True:
    data = ws.get_data("order")
    if data:
        print(data)

响应示例

{
    "topic": "order",
    "data": [
        {
            "order_id": "xxxxxxxx-xxxx-xxxx-9a8f-4a973eb5c418",
            "order_link_id": "",
            "symbol": "BTCUSD",
            "side": "Sell",
            "order_type": "Market",
            "price": "8579.5",
            "qty": 1,
            "time_in_force": "ImmediateOrCancel",
            "create_type": "CreateByClosing",
            "cancel_type": "",
            "order_status": "Filled",
            "leaves_qty": 0,
            "cum_exec_qty": 1,
            "cum_exec_value": "0.00011655",
            "cum_exec_fee": "0.00000009",
            "timestamp": "2020-01-14T14:09:31.778Z",
            "take_profit": "0",
            "stop_loss": "0",
            "trailing_stop": "0",
            "trailing_active": "0",
            "last_exec_price": "8580",
            "reduce_only": false,
            "close_on_trigger": false
        }
    ]
}

返回参数

参数 类型 说明
order_id string 订单ID
order_link_id string 机构自定义订单ID
symbol string 合约类型
side string 方向
order_type string 委托单价格类型
price string 委托价格
qty number 成交数量
time_in_force string 执行策略
create_type string 下单操作的触发场景
cancel_type string 取消操作的触发场景
order_status string 订单状态
leaves_qty number 剩余委托数量
cum_exec_qty number 累计成交数量
cum_exec_value string 累计成交价值
cum_exec_fee string 累计成交手续费
timestamp string 委托时间
take_profit string 止盈价格
stop_loss string 止损价格
trailing_stop string 追踪止损
trailing_active string 激活价格
last_exec_price string 最近一次成交价格
reduce_only bool 只减仓
close_on_trigger bool 触发后平仓. 如果下平仓单,请设置为true,避免因为保证金不足而导致下单失败

条件单

请求订阅

ws.send('{"op": "subscribe", "args": ["stop_order"]}')

响应示例

{
    "topic": "stop_order",
    "data": [
        {
            "order_id": "xxxxxxxx-xxxx-xxxx-98fb-335aaa6c613b",
            "order_link_id": "",
            "user_id": 1,
            "symbol": "BTCUSD",
            "side": "Buy",
            "order_type": "Limit",
            "price": "8584.5",
            "qty": 1,
            "time_in_force": "ImmediateOrCancel",
            "create_type": "CreateByStopOrder",
            "cancel_type": "",
            "order_status": "Untriggered", //条件单状态stop_order_status枚举
            "stop_order_type": "Stop",
            "trigger_by": "LastPrice",
            "trigger_price": "8584.5", //如果stop_order_type为`TrailingProfit`时,为激活价格,否则为触发价格。
            "close_on_trigger": false,
            "timestamp": "2020-01-14T14:11:22.062Z"
        }
    ]
}

返回参数

参数 类型 说明
order_id string 订单ID
order_link_id string 机构自定义订单ID
user_id number 用户ID
symbol string 交易对枚举
order_type string 订单类型枚举
side string 方向
price string 委托价格
qty number 委托数量
time_in_force string 执行策略
create_type string 下单操作的触发场景
cancel_type string 取消操作的触发场景
order_status string 订单状态
stop_order_type string 委托单价格类型
trigger_by string 触发价格类型. 默认为最新市价
trigger_price string 如果stop_order_type为`TrailingProfit`时,为激活价格,否则为触发价格。
close_on_trigger bool 触发后平仓. 如果下平仓单,请设置为true,避免因为保证金不足而导致下单失败
timestamp string UTC 时间

归档数据

历史行情

您可以在这里获取Bybit 历史行情数据

枚举定义

以下是各个接口请求参数或返回结果中定义的枚举。

Side (side)

Symbol (symbol)

Currency (currency/coin)

Contract Type(contract_type)

Contract Status(status)

Wallet fund type (wallet_fund_type / type)

Withdraw status (status)

Order type (order_type)

Quantity (qty)

Price (price)

Time in force (time_in_force)

Trigger price type (trigger_by)

Order (order)

排序方向

Order status (order_status)

Stop order status (stop_order_status)

Cancel type (cancel_type)

Create type (create_type)

Exec type (exec_type)

Liquidity type (last_liquidity_ind)

Tick direction type (tick_direction)

表示价格的波动,相对于上一笔交易是涨还是跌

TP/SL mode (tp_sl_mode)

止盈止损模式

Kline interval (interval)

Date (start_date/end_date)

Follows the format: yyyy-mm-dd

Stop order type (stop_order_type)

错误码

Bybit使用以下HTTP Code和错误码:

HTTP Code 含义
200 请求有效
403 拒绝访问
404 访问路径不存在
Error Code 含义
10001 内部错误; 无法处理您的请求。 请再试一次.
10002 请求过期,请检查 timestamprecv_window
10003 无效的apikey
10004 签名错误
10005 apikey权限不足
10006 请求次数超限
10007 您的请求中没有api_key
10010 请求ip不匹配
10016 服务异常或请求超时
10017 请求路径不存在或请求方法错误
10018 超过ip频率限制
20001 订单不存在
20003 缺少参数side
20004 side不合法
20005 缺少参数symbol
20006 symbol不合法
20007 缺少参数order_type
20008 order_type不合法
20009 缺少参数qty
20010 新增订单被拒绝
20011 撤销订单被拒绝
20012 qty 必须大于0并小于1百万
20013 订单不存在
20014 API-key格式无效
20015 无效的API密钥,IP或操作权限。.
20016 找不到该交易对的交易窗口。 尝试改为24小时自动报价。
20017 缺少参数order_id
20018 日期格式不对
20019 缺少参数stop_px
20020 缺少参数base_price
20021 缺少参数stop_order_id
20022 缺少参数leverage
20023 leverage必须是数字
20031 leverage必须大于0
20070 缺少参数margin
20071 margin必须大于0
20084 order_idorder_link_id必须二选一
30001 order_link_id重复
30003 qty太小
30004 qty太大
30005 price太大
30007 price太小
30008 order_type非法
30009 持仓不存在
30010 钱包余额不足
30011 由于仓位清算,不允许操作
30012 由于ADL,不允许操作
30013 持仓处于强平、ADL或其他非可操作状态
30014 平仓数量不能大于持仓数量
30015 平仓订单不合法,应和持仓方向相反
30016 平仓前请先取消止盈止损单
30017 不能低于买方向强平价格
30018 不能高于卖方向强平价格
30019 非开仓单不能使用TP/SL参数
30020 持仓已有TP/SL设置
30021 预估保证金不足
30022 预估买方向强平价格不能高于标记价格
30023 预估卖方向强平价不能低于标记价格
30024 空仓无法设置TP/SL/TS
30025 触发价格必须高于市价10%
30026 价格过高
30027 止盈价应高于上笔成交价
30028 止损价应在强平价和上笔成交价之间
30029 止损价格应在上笔成交价和清算价格之间
30030 设定的止盈价格应低于上笔成交价
30031 可用余额不足以支付订单费用
30032 订单已成交或已取消
30033 条件单的数量超限
30034 订单不存在
30035 取消订单过快
30036 订单执行后的预期仓位值超过当前风险限额
30037 订单已取消
30041 持仓不存在
30042 钱包余额不足
30043 由于仓位清算,不允许操作
30044 由于ADL,不允许操作
30045 持仓处于其他不可操作状态
30049 可用余额不足
30050 任何调整都将立即引发清算
30051 杠杆设置非法,因为它将超出您的风险限额
30052 杠杆设置非法,不能小于1
30054 保证金设置不合法
30057 请求的合约数量超过风险限额
30063 不满足只减仓的条件
30067 可用余额不足
30068 退出价值必须大于0
30074 无法创建条件单,由base_pricestop_px比较可知预期涨至stop_px时触发条件单,而此时LastPrice(或IndexPriceMarkPrice,由trigger_by指定)已经达到或高于stop_px
30075 无法创建条件单,由base_pricestop_px比较可知预期跌至stop_px时触发条件单,而此时LastPrice(或IndexPriceMarkPrice,由trigger_by指定)已经达到或低于stop_px
33004 apikey已过期
34026 风险限额没有变化

废弃接口

查询强平订单数据

请求示例

curl https://api.bybit.com/v2/public/liq-records?symbol=BTCUSD
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Market.Market_liqRecords(symbol="BTCUSD").result())

响应示例

{
    "ret_code":0,
    "ret_msg":"OK",
    "ext_code":"",
    "ext_info":"",
    "result":[
        {
            "id":2369683,
            "qty":155,
            "side":"Buy",
            "time":1590030126798,
            "symbol":"BTCUSD",
            "price":9444
        }
    ],
    "time_now":"1590068362.493540"
}

查询强平订单数据,查询范围是最近七天的数据。

HTTP 请求

GET /v2/public/liq-records

请求参数

parameter 是否必须 类型 说明
symbol true string 合约类型
from false integer 起始ID. 默认: 返回最新数据
limit false integer 默认返回500条数据. 最大返回1000条数据
start_time false integer 开始时间戳(毫秒)
end_time false integer 结束时间戳(毫秒

返回参数

参数 类型 说明
id number 最新数据ID
qty number 交易数量
side string 强平订单的方向
time number 毫秒时间戳
symbol string 合约类型
price number 交易价格

用户杠杆

请求示例

curl "https://api.bybit.com/user/leverage?api_key={api_key}&timestamp={timestamp}&sign={sign}"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Positions.userLeverage())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": {
        "BTCUSD": {
            "leverage": 5
        },
        "EOSUSD": {
            "leverage": 1
        },
        "ETHUSD": {
            "leverage": 1
        },
        "XRPUSD": {
            "leverage": 10
        }
    },
    "ext_info": null,
    "time_now": "1577477752.346548",
    "rate_limit_status": 119,
    "rate_limit_reset_ms": 1577477752355,
    "rate_limit": 120
}

获取用户杠杆。

HTTP 请求

GET /user/leverage

请求参数

参数 是否必须 类型 说明

返回参数

参数 类型 说明
BTCUSD > leverage number BTCUSD杠杆
EOSUSD > leverage number EOSUSD杠杆
ETHUSD > leverage number ETHUSD杠杆
XRPUSD > leverage number XRPUSD杠杆

查询活动委托

请求示例

curl "https://api.bybit.com/open-api/order/list?api_key={api_key}&timestamp={timestamp}&sign={sign}&symbol=BTCUSD"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Order.Order_getOrders().result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": {
        "current_page": 1,
        "last_page": 6,
        "data": [
            {
                "user_id": 1,
                "symbol": "BTCUSD",
                "side": "Sell",
                "order_type": "Market",
                "price": 7074,
                "qty": 2,
                "time_in_force": "ImmediateOrCancel",
                "order_status": "Filled",
                "ext_fields": {
                    "close_on_trigger": true,
                    "orig_order_type": "BLimit",
                    "prior_x_req_price": 5898.5,
                    "op_from": "pc",
                    "remark": "127.0.0.1",
                    "o_req_num": -34799032763,
                    "xreq_type": "x_create"
                },
                "last_exec_time": "1577448481.696421",
                "last_exec_price": 7070.5,
                "leaves_qty": 0,
                "leaves_value": 0,
                "cum_exec_qty": 2,
                "cum_exec_value": 0.00028283,
                "cum_exec_fee": 0.00002,
                "reject_reason": "NoError",
                "order_link_id": "",
                "created_at": "2019-12-27T12:08:01.000Z",
                "updated_at": "2019-12-27T12:08:01.000Z",
                "order_id": "f185806b-b801-40ff-adec-52289370ed62"
            }
        ]
    },
    "ext_info": null,
    "time_now": "1577448922.437871",
    "rate_limit_status": 98,
    "rate_limit_reset_ms": 1580885703683,
    "rate_limit": 100
}

获取我的活动委托单列表。

创建/取消订单是异步的,因此该接口可能返回的数据可能会有延迟。如果要获取订单的实时信息,可以调用接口实时查询活动单信息.

HTTP 请求

GET /open-api/order/list

请求参数

参数 是否必须 类型 说明
order_id false string 订单ID
order_link_id false string 机构自定义订单ID, 最大长度36位,且同一机构下自定义ID不可重复
symbol false string 合约类型. 默认 BTCUSD
order false string 按创建时间排序
page false integer 页码.默认取第一页
limit false integer 每页数量, 最大50. 默认每页20条
order_status false string 指定订单状态查询订单列表。不传该参数则默认查询所有状态订单。该参数支持多状态查询,状态之间用英文逗号分割。

返回参数

参数 类型 说明
user_id number 用户ID
symbol string 合约类型
side string 方向
order_type string 交易记录类型
price number 委托价格
qty number 委托数量
time_in_force string 执行策略
order_status string 订单状态
ext_fields>close_on_trigger bool 触发后平仓. 如果下平仓单,请设置为true,避免因为保证金不足而导致下单失败
ext_fields>orig_order_type string 原始特殊订单类型
ext_fields>prior_x_req_price number 期望撮合的价格
ext_fields>op_from string 请求来源
ext_fields>remark string 备注
ext_fields>o_req_num number 用于关联request&response
ext_fields>xreq_type string 请求类型
last_exec_time string 最近一次成交时间
last_exec_price number 最近一次成交价格
leaves_qty number 剩余委托数量
leaves_value number 剩余挂单数量对应的预估价值
cum_exec_qty number 累计成交数量
cum_exec_value number 累计成交价值
cum_exec_fee number 累计成交手续费
reject_reason string 被拒单的原因
order_link_id string 机构自定义订单ID, 最大长度36位,且同一机构下自定义ID不可重复
created_at string 创建时间
order_id string 订单ID

查询条件委托

请求示例

curl "https://api.bybit.com/open-api/stop-order/list?api_key={api_key}&timestamp={timestamp}&sign={sign}"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Conditional.Conditional_getOrders().result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": {
        "current_page": 1,
        "last_page": 1,
        "data": [
            {
                "user_id": 1,
                "stop_order_status": "Untriggered",
                "symbol": "BTCUSD",
                "side": "Buy",
                "order_type": "Limit",
                "price": 8000,
                "qty": 1,
                "time_in_force": "GoodTillCancel",
                "stop_order_type": "Stop",
                "trigger_by": "LastPrice",
                "base_price": 7000,
                "order_link_id": "",
                "created_at": "2019-12-27T12:48:24.000Z",
                "updated_at": "2019-12-27T12:48:24.000Z",
                "stop_px": 7500,
                "stop_order_id": "a85cd1c0-a9a4-49d3-a1bd-bab5ebe946d5"
            },
            {
                "user_id": 1,
                "stop_order_status": "Untriggered",
                "symbol": "BTCUSD",
                "side": "Sell",
                "order_type": "Limit",
                "price": 999999,
                "qty": 1,
                "time_in_force": "PostOnly",
                "stop_order_type": "Stop",
                "trigger_by": "LastPrice",
                "base_price": 6910.5,
                "order_link_id": "",
                "created_at": "2019-12-17T12:13:20.000Z",
                "updated_at": "2019-12-17T12:13:20.000Z",
                "stop_px": 10000000000000,
                "stop_order_id": "dea89649-9492-459d-a8c4-c298b87b3d26"
            }
        ]
    },
    "ext_info": null,
    "time_now": "1577451658.755468",
    "rate_limit_status": 599,
    "rate_limit_reset_ms": 1577451658762,
    "rate_limit": 600
}

获取我的条件委托单列表。

创建/取消订单是异步的,因此该接口可能返回的数据可能会有延迟。如果要获取订单的实时信息,可以调用接口实时查询条件单信息

HTTP 请求

GET /open-api/stop-order/list

请求参数

参数 是否必须 类型 说明
stop_order_id false string 条件委托订单ID。
order_link_id false string 机构自定义订单ID, 最大长度36位,且同一机构下自定义ID不可重复
symbol false string 合约类型. Default BTCUSD
stop_order_status false string 条件单状态
order false string 按创建时间排序
page false integer 页码.默认取第一页
limit false integer 每页数量, 最大50. 默认每页20条

返回参数

参数 类型 说明
user_id number 用户ID
stop_order_status string 条件单状态
symbol string 合约类型
side string 方向
order_type string 订单类型
price number 委托价格
qty number 委托数量
time_in_force string 执行策略
stop_order_type string 委托单价格类型
trigger_by string 触发价格类型. 默认为最新市价
base_price number 下单时市价
order_link_id string 机构自定义订单ID
created_at string 创建时间
updated_at string 更新时间
stop_px number 触发价格
stop_order_id string 条件委托订单ID。

创建条件委托单

请求示例

curl https://api.bybit.com/open-api/stop-order/create \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","order_type":"Limit","side":"Buy","symbol":"BTCUSD","qty":1,"price":8100,"base_price":8300,"stop_px":8150,"time_in_force":"GoodTillCancel","order_link_id":"cus_order_id_1","timestamp":{timestamp},"sign":"{sign}"}'
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Conditional.Conditional_new(order_type="Limit",side="Buy",symbol="BTCUSD",qty=1,price=8100,base_price=8300,stop_px=8150,time_in_force="GoodTillCancel", order_link_id="cus_order_id_1").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": {
        "user_id": 1,
        "symbol": "BTCUSD",
        "side": "Buy",
        "order_type": "Limit",
        "price": 8000,
        "qty": 1,
        "time_in_force": "GoodTillCancel",
        "stop_order_type": "Stop",
        "trigger_by": "LastPrice",
        "base_price": 7000,
        "order_status": "Untriggered",
        "ext_fields": {
            "stop_order_type": "Stop",
            "trigger_by": "LastPrice",
            "base_price": 7000,
            "expected_direction": "Rising",
            "trigger_price": 7500,
            "op_from": "api",
            "remark": "127.0.01",
            "o_req_num": 0
        },
        "leaves_qty": 1,
        "leaves_value": 0.00013333,
        "reject_reason": null,
        "cross_seq": -1,
        "created_at": "2019-12-27T12:48:24.000Z",
        "updated_at": "2019-12-27T12:48:24.000Z",
        "stop_px": 7500,
        "stop_order_id": "a85cd1c0-a9a4-49d3-a1bd-bab5ebe946d5"
    },
    "ext_info": null,
    "time_now": "1577450904.327654",
    "rate_limit_status": 99,
    "rate_limit_reset_ms": 1577450904335,
    "rate_limit": "100"
}

市价条件委托: 一个传统的市场价格订单,会以当前的最优价格为您成交订单。当且仅当选择市价单时,'price', '可为空!

限价条件委托: 您可以为您的订单设置一个执行价格,当市场价格达到您的设置价格时,系统会为您成交订单。

止盈止损: 您仅能在开仓时设置止盈止损条件单,一旦持有仓位后提交活动委托时关联的止盈止损则不再有效。一旦持仓后,当创建订单后发送的止盈止损信息将不再有效。

委托数量: 表示您要购买/卖出的永续合约数,对于委托数量目前Bybit只允许提交正整数。

委托价格: 表示您期望购买/卖出永续合约的价格,可以根据交易对接口查询不同symbol价格阶梯。

条件委托触发价格: 您可以为您的条件委托单设置一个触发价格,条件委托单不进入委托表(Order Book),只有触发条件成立如市场价格到达触发价格时,条件委托单才会进入交易系统。当市场价格到达触发价格:1)您的限价条件委托单进入Order Book,等待被执行;2)您的市价条件委托单将按照市场最优价格立即被执行。

自定义条件单ID: 您可以自定义活动委托订单ID,我们会为您关联到系统的订单ID,并把系统的唯一订单ID在活动委托创建成功后一并返回给您,您可以使用该订单ID去取消活动委托,同时要求您传递的自定义订单ID最大长度不超过36个字段且唯一。

HTTP 请求

POST /open-api/stop-order/create

请求参数

参数 是否必须 类型 说明
side true string 方向
symbol true string 合约类型
order_type true string 委托单价格类型
qty true integer 委托数量(1个委托1美元),只能为正整数
price false number 条件委托执行价格。如果条件委托是限价单,则price为必传字段
base_price true number 当前市价。用于和stop_px值进行比较,确定当前条件委托是看空到stop_px时触发还是看多到stop_px触发。主要是用来标识当前条件单预期的方向
stop_px true number 触发价格
time_in_force true string 执行策略
trigger_by false string 触发价格类型. 默认为最新市价
close_on_trigger false bool 触发后平仓. 如果下平仓单,请设置为true,避免因为保证金不足而导致下单失败
order_link_id false string 机构自定义订单ID, 最大长度36位,且同一机构下自定义ID不可重复

返回参数

参数 类型 说明
user_id number 用户ID
symbol string 合约类型
side string 方向
order_type string 订单类型
price number 委托价格
qty number 委托数量
time_in_force string 执行策略
ext_fields>stop_order_type string 委托单价格类型
ext_fields>trigger_by string 触发价格类型. 默认为最新市价
ext_fields>base_price number 下单时市价
ext_fields>order_status string 订单状态
ext_fields>stop_order_type string 委托单价格类型
ext_fields>expected_direction string 预期方向
ext_fields>trigger_price number 如果stop_order_type为`TrailingProfit`时,为激活价格,否则为触发价格。
ext_fields>op_from string 请求来源
remark string 备注
o_req_num number 用于关联request&response
leaves_qty number 剩余委托数量
leaves_value number 剩余挂单数量对应的预估价值
reject_reason string 被拒单的原因
cross_seq number 撮合版本号
created_at string 创建时间
updated_at string 更新时间
stop_px number 触发价格
stop_order_id string 条件委托订单ID。

撤消条件委托单

请求示例

curl https://api.bybit.com/open-api/stop-order/cancel \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD","order_id":"","timestamp":{timestamp},"sign":"{sign}"}'
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Conditional.Conditional_cancel(symbol="BTCUSD", order_id="").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": {
        "user_id": 1,
        "stop_order_status": "Untriggered",
        "symbol": "BTCUSD",
        "side": "Buy",
        "order_type": "Limit",
        "price": 8000,
        "qty": 1,
        "time_in_force": "GoodTillCancel",
        "stop_order_type": "Stop",
        "trigger_by": "LastPrice",
        "base_price": 7000,
        "order_link_id": "",
        "created_at": "2019-12-27T13:10:18.000Z",
        "updated_at": "2019-12-27T13:10:18.000Z",
        "stop_px": 7500,
        "stop_order_id": "c1025629-e85b-4c26-b4f3-76e86ad9f8cb"
    },
    "ext_info": null,
    "time_now": "1577452218.567120",
    "rate_limit_status": 97,
    "rate_limit_reset_ms": 1577452218573,
    "rate_limit": "100"
}

您可以撤销所有未被激活的条件委托,或止盈止损单。本质上所有条件委托在被激活后都是属于活动委托,所以条件委托一旦被激活,您需要通过调用取消活动委托接口来取消所有未成交、部分成交的活动委托单。同样全部成交的活动委托不可取消。

HTTP 请求

POST /open-api/stop-order/cancel

请求参数

参数 required type comments
symbol true string 合约类型
stop_order_id false string 订单ID。如果未填order_link_id则为必填字段。
order_link_id false string 机构ID。如果未填stop_order_id则为必填字段。

返回参数

参数 类型 说明
user_id number 用户ID
stop_order_status string 条件单状态
symbol string 合约类型
side string 方向
order_type string 订单类型
price number 委托价格
qty number 委托数量
time_in_force string 执行策略
stop_order_type string 委托单价格类型
trigger_by string 触发价格类型. 默认为最新市价
base_price number 下单时市价
order_link_id string 机构自定义订单ID
created_at string 创建时间
updated_at string 更新时间
stop_px number 触发价格
stop_order_id string 条件委托订单ID。

修改条件委托单

请求示例

curl https://api.bybit.com/open-api/stop-order/replace \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD","stop_order_id":"","timestamp":{timestamp},"sign":"{sign}"}'
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Conditional.Conditional_replace(symbol="BTCUSD", stop_order_id="").result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": {
        "stop_order_id": "378a1bbc-a93a-4e75-87f4-502ea754ba36"
    },
    "ext_info": null,
    "time_now": "1577475760.604942",
    "rate_limit_status": 96,
    "rate_limit_reset_ms": 1577475760612,
    "rate_limit": "100"
}

修改未触发的条件单。

HTTP 请求

POST /open-api/stop-order/replace

请求参数

参数 是否必须 类型 说明
stop_order_id false string 条件委托订单ID。
order_id false string 已废弃!! 条件委托订单ID。
order_link_id false string 机构自定义订单ID, 最大长度36位,且同一机构下自定义ID不可重复
symbol true string 合约类型.
p_r_qty false int 修改后的订单数量。如果是未完全成交订单,则表示修改剩余未成交的部分。如果不修改这个字段,请不要传这个参数。
p_r_price false number 修改后的订单价格。如果不修改这个字段,请不要传这个参数。
p_r_trigger_price false number 修改后的条件单的触发价格或止盈止损的价格。如果不修改这个字段,请不要传这个参数。

返回参数

参数 类型 说明
stop_order_id string 条件委托订单ID。

修改活动单信息

请求示例

curl https://api.bybit.com/open-api/order/replace \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD","order_id":"","timestamp":{timestamp},"sign":"{sign}"}'
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Order.Order_Replace(symbol="BTCUSD", order_id="").result())

响应示例

{
    "ret_code": 0,    //Error code,
    "ret_msg": "ok",  //Error message,
    "ext_code": "",
    "result": {
        "order_id": "efa44157-c355-4a98-b6d6-1d846a936b93"
    },
    "time_now": "1539778407.210858",    // UTC timestamp
    "rate_limit_status": 99, // The remaining number of accesses in one minute
    "rate_limit_reset_ms": 1580885703683,
    "rate_limit": 100             
}

本接口可以修改您的活动单信息.

HTTP 请求

POST /open-api/order/replace

请求参数

参数 是否必须 类型 说明
order_id false string 订单ID
order_link_id false string 机构自定义订单ID, 最大长度36位,且同一机构下自定义ID不可重复
symbol true string 合约类型.
p_r_qty false int 修改后的订单数量。如果是未完全成交订单,则表示修改剩余未成交的部分。如果不修改这个字段,请不要传这个参数。
p_r_price false number 修改后的订单价格。如果不修改这个字段,请不要传这个参数。

返回参数

参数 类型 说明
order_id string 订单ID

查询风险限额表

请求示例

curl "https://api.bybit.com/open-api/wallet/risk-limit/list?api_key={api_key}&timestamp={timestamp}&sign={sign}"
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Wallet.Wallet_getRiskLimit().result())

响应示例

{
    "ret_code": 0,
    "ret_msg": "ok",
    "ext_code": "",
    "result": [
        {
            "id": 1,
            "coin": "BTC",
            "symbol": "BTCUSD",
            "limit": 150,
            "maintain_margin": "0.50",
            "starting_margin": "1.00",
            "section": [
                "1",
                "2",
                "3",
                "5",
                "10",
                "25",
                "50",
                "100"
            ],
            "is_lowest_risk": 1,
            "created_at": "2018-09-21T11:34:11.000Z",
            "updated_at": "2018-09-21T11:34:11.000Z",
            "max_leverage": "100.00"
        },
        {
            "id": 10,
            "coin": "BTC",
            "symbol": "BTCUSD",
            "limit": 1500,
            "maintain_margin": "5.00",
            "starting_margin": "5.50",
            "section": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "10",
                "15",
                "18"
            ],
            "is_lowest_risk": 0,
            "created_at": "2018-09-21T11:34:11.000Z",
            "updated_at": "2018-09-21T11:34:11.000Z",
            "max_leverage": "18.18"
        }
    ],
    "ext_info": null,
    "time_now": "1616568086.769014",
    "rate_limit_status": 599,
    "rate_limit_reset_ms": 1616568086777,
    "rate_limit": 600
}

查询风险限额表。

HTTP 请求

GET /open-api/wallet/risk-limit/list

请求参数

参数 是否必须 类型 说明
symbol false string 合约类型

返回参数

参数 类型 说明
id number 风险限额ID
coin string 币种
symbol string 合约类型
limit number 风险限额
maintain_margin string 维持保证金
starting_margin string 起始保证金
section string 区间点
is_lowest_risk number 是否最低风险限额0:不是 1:是
created_at string 创建时间
updated_at string 更新时间
max_leverage string 最大杠杆

设置风险限额

请求示例

curl https://api.bybit.com/open-api/wallet/risk-limit \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD","risk_id":2,"timestamp":{timestamp},"sign":"{sign}"}'
import bybit
client = bybit.bybit(test=True, api_key="api_key", api_secret="api_secret")
print(client.Wallet.Wallet_setRiskLimit(symbol="BTCUSD", risk_id=2).result())

响应示例

{
  "ret_code": 0,
  "ret_msg": "ok",
  "ext_code": "",
  "result": {
    "position": {
      "id": 1,
      "user_id": 1,
      "symbol": "BTCUSD",
      "side": "None",
      "size": 0,
      "position_value": 0,
      "entry_price": 0,
      "risk_id": 2,
      "auto_add_margin": 0,
      "leverage": 1,
      "position_margin": 0,
      "liq_price": 0,
      "bust_price": 0,
      "occ_closing_fee": 0,
      "occ_funding_fee": 0,
      "take_profit": 0,
      "stop_loss": 0,
      "trailing_stop": 0,
      "position_status": "Normal",
      "deleverage_indicator": 0,
      "oc_calc_data": "{\"blq\":1,\"blv\":\"0.000125\",\"slq\":0,\"bmp\":8000,\"smp\":0,\"fc\":-0.00012529,\"bv2c\":1.00225,\"sv2c\":1.0007575}",
      "order_margin": 0.00012529,
      "wallet_balance": 1000,
      "realised_pnl": 0,
      "cum_realised_pnl": 0,
      "cum_commission": 0,
      "cross_seq": 4376,
      "position_seq": 13689,
      "created_at": "2019-08-13T06:51:29.000Z",
      "updated_at": "2019-12-29T03:11:08.000Z",
      "ext_fields": {
        "trailing_active": "9000",
        "v": 4
      }
    },
    "risk": {
      "id": 2,
      "coin": "BTC",
      "limit": 300,
      "maintain_margin": "1.00",
      "starting_margin": "1.50",
      "section": "[\"1\",\"2\",\"3\",\"5\",\"10\",\"25\",\"50\",\"66\"]",
      "is_lowest_risk": 0,
      "created_at": "2019-06-26T05:46:45.000Z",
      "updated_at": "2019-06-26T05:46:55.000Z"
    }
  },
  "ext_info": null,
  "time_now": "1577589068.435439",
  "rate_limit_status": 71,
  "rate_limit_reset_ms": 1577589068546,
  "rate_limit": 75
}

设置风险限额。

HTTP 请求

POST /open-api/wallet/risk-limit

请求参数

参数 是否必须 类型 说明
symbol true string 合约类型
risk_id true integer 风险限额ID

返回参数

参数 类型 说明
position > id number 仓位ID
user_id number 用户ID
symbol string 合约类型
side string 方向
size number 仓位数量
position_value number 仓位价值
entry_price number 平均入场价
risk_id number 风险限额ID
auto_add_margin number 是否自动追加保证金
leverage number 逐仓模式下, 值为用户设置的杠杆;全仓模式下,值为当前风险限额下最大杠杆
position_margin number 仓位保证金
liq_price number 强平价格
bust_price number 破产价格
occ_closing_fee number 仓位占用的平仓手续费
occ_funding_fee number 仓位size和当前资金费率预占用资金费用
take_profit number 止盈价格
stop_loss number 止损价格
trailing_stop number 追踪止损
position_status string 仓位状态,正常,强平,减仓
deleverage_indicator number 风险指示灯等级(1,2,3,4,5)
oc_calc_data string 预占保证证计算参数, blq-多方所有未成交委托数; bmp-多方最低价; slq-空方所有未成交委托数; smp-空方最低价
order_margin number 委托预占用保证金
wallet_balance number 钱包余额
realised_pnl number 当日已结盈亏
cum_realised_pnl number 累计已结盈亏
cum_commission number 累计佣金
cross_seq number 撮合版本号
position_seq number 仓位变化版本号
created_at string 创建时间
updated_at string 更新时间
ext_fields>trailing_active string 激活价格
risk>id number 风险限额ID
risk>coin string 币种
risk>limit number 风险限额
risk>maintain_margin string 维持保证金
risk>starting_margin string 起始保证金
risk>section string 区间点
risk>is_lowest_risk number 是否最低风险限额0:不是 1:是
risk>created_at string 创建时间
risk>updated_at string 更新时间