中文社區和參考資料
歡迎使用 Bybit APIs 和 Websocket官方文檔!
如果您在使用API的過程中遇到問題需要幫助,請加入我們的 官方Telegram API討論群!
中文社區和參考資料
幫助中心 - 在這裏了解合約交易
pybit - 官方Python SDK
QuickStartWithPostman - Postman接口集合
API Discussion Group - API英文討論群
Chinese API Discussion Group - API中文討論群
API Announcements Channel - API公告群
Bybit Open API 的調研問卷 - 希望您能用 5 分鐘的時間填寫 Bybit Open API 的調研問卷
更新日誌
2022-07-18
REST API
- 合約最新信息 [更新]
- Abandon response field
total_turnover
.
- Abandon response field
WebSocket API
- 合約最新信息 [更新]
- Abandon response field
total_turnover_e8
.
- Abandon response field
2022-06-30
REST API
- 用戶曆史成交記錄 [更新]
- 新增返回參數
page_token
。
- 新增返回參數
2022-04-29
REST API
2022-04-28
REST API
2021
2021-12-28
REST API
- 切換倉位模式 [新增]
- 創建活動委托單 [更新]
- 请求参数和返回参数新增
position_idx
- 请求参数和返回参数新增
- 創建條件委托單 [更新]
- 请求参数和返回参数新增
position_idx
- 请求参数和返回参数新增
- 自動追加保證金 [更新]
- 请求参数新增
position_idx
- 请求参数新增
- 設置止盈止損 [更新]
- 请求参数新增
position_idx
- 请求参数新增
- 增加/減少保證金 [更新]
- 请求参数新增
position_idx
- 请求参数新增
- 設置風險限額 [更新]
- 请求参数新增
position_idx
- 请求参数新增
- 獲取持倉(實時) [更新]
- 返回参数新增
position_idx
- 返回参数新增
WebSocket API
2021-10-13
REST API
- 查詢合約信息 [更新]
- 修復USDT合約Query Symbol接口中
price_scale
返回參數。
- 修復USDT合約Query Symbol接口中
2021-09-17
WebSocket API
- 平臺強平推送 [新增]
- 我們於 2021 年 9 月 17日上線 正向合約Liquidation WebSocket API推送強平訂單, 此次調整旨在打造更加公平的交易環境,防止一些交易者通過強平訂單數據提前獲取市場信息,搶跑強平引擎。 請務必於 2021 年 9 月 24 日前調整代碼,以確保流暢的交易體驗。 感謝您一直以來的支持!
2021-09-10
REST API
- 用戶成交記錄 [更新]
- 本次更新
start_time
開始時間需要限定在七天內,end_time
結束時間也需要限定在七天內,如果需要更長時間範圍的數據請聯系客服下載。
- 本次更新
2021-09-07
REST API
- 平倉盈虧 [更新]
- 本次更新修復了平倉盈虧接口對於XLMUSDT,TRXUSDT幣種的返回參數的價格精度
avg_entry_price
,order_price
,avg_exit_price
。
- 本次更新修復了平倉盈虧接口對於XLMUSDT,TRXUSDT幣種的返回參數的價格精度
2021-09-03
WebSocket API
- 行情 [更新]
- 廢棄
prev_price_24h_e4
, 推薦使用prev_price_24h
- 廢棄
high_price_24h_e4
, 推薦使用high_price_24h
- 廢棄
low_price_24h_e4
, 推薦使用low_price_24h
- 廢棄
prev_price_1h_e4
, 推薦使用prev_price_1h
- 廢棄
mark_price_e4
, 推薦使用mark_price
- 廢棄
index_price_e4
, 推薦使用index_price
- 廢棄
last_price_e4
, 推薦使用last_price
- 廢棄
2021-06-29
REST API
- USDT合約上線新交易對:MATICUSDT、EOSUSDT、ETCUSDT、BNBUSDT、FILUSDT、SOLUSDT [更新]
2021-06-28
REST API
- 獲取持倉(實時) [更新]
- 返回結果中增加
take_profit, stop_loss, trailing_stop
三個新字段。
- 返回結果中增加
2021-06-02
REST API
- USDT合約上線新交易對:DOGEUSDT [更新]
2021-05-13
REST API
- USDT合約上線新交易對:XRPUSDT、XEMUSDT、SUSHIUSDT、AAVEUSDT [更新]
2021-04-30
REST API
- Testnet網絡,USDT合約上線新交易對:XRPUSDT、XEMUSDT、SUSHIUSDT、AAVEUSDT [更新]
2021-04-07
REST API
2021-04-02
REST API
- 增加錯誤碼描述:10016,10018,130145
2021-03-18
REST API
- USDT合約上線新交易對:ADAUSDT、DOTUSDT、UNIUSDT [更新]
- 查詢風險限額表 [更新]
- 查詢風險限額新增返回字段最大杠桿
max_leverage
- 查詢風險限額新增返回字段最大杠桿
2021-02-02
WebSocket API
- Topic order [更新]
- 新增字段
reduce_only
,close_on_trigger
- 新增字段
- Topic stop_order [更新]
- 新增字段
reduce_only
,close_on_trigger
- 新增字段
2021-02-01
REST API
2021-01-12
REST API
- 查詢指數價格K線數據 [新增]
- 查詢溢價K線數據 [新增]
2020
2020-12-14
REST API
- USDT合約上線新交易對:BCHUSDT [更新]
2020-12-03
REST API
- 實時查詢條件委托 [更新]
- 實時查詢支持返回多個未成交訂單數據
- 實時查詢活動委托 [更新]
- 實時查詢支持返回多個未成交訂單數據
- 獲取持倉(實時) [更新]
- 返回參數中新增字段
deleverage_indicator
和unrealised_pnl
- 返回參數中新增字段
- 創建條件委托單 [更新]
- 返回參數中新增字段
close_on_trigger
- 返回參數中新增字段
- 查詢活動委托 [更新]
- 返回參數中新增字段
close_on_trigger
- 返回參數中新增字段
- 實時查詢活動委托 [更新]
- 返回參數中新增字段
close_on_trigger
- 返回參數中新增字段
- 創建條件委托單 [更新]
- 返回參數中新增字段
close_on_trigger
和reduce_only
- 返回參數中新增字段
- 查詢條件委托 [更新]
- 返回參數中新增字段
close_on_trigger
和reduce_only
- 返回參數中新增字段
- 實時查詢條件委托 [更新]
- 返回參數中新增字段
close_on_trigger
和reduce_only
- 返回參數中新增字段
2020-11-16
REST API
- 獲取持倉(實時) [更新]
- 返回參數中新增字段
is_isolated
和auto_add_margin
,用於判斷當前倉位是否是逐倉模式以及是否開啟自動追加保證金
- 返回參數中新增字段
- 創建條件委托單 [更新]
- 返回參數中新增字段
base_price
和trigger_by
- 返回參數中新增字段
- 查詢條件委托 [更新]
- 返回參數中新增字段
base_price
和trigger_by
- 返回參數中新增字段
- 實時查詢條件委托 [更新]
- 返回參數中新增字段
base_price
和trigger_by
- 返回參數中新增字段
2020-11-02
REST API
- 獲取持倉(實時) [更新]
- 參數
symbol
改為非必傳;如果不指定symbol
則返回所有交易對的持倉信息
- 參數
2020-10-21
REST API
- USDT合約上線新交易對:ETHUSDT、LINKUSDT、LTCUSDT、XTZUSDT [更新]
- 獲取錢包余額 [更新]
- 修復
usdt
given_cash
和service_cash
總是為0的問題
- 修復
2020-10-16
REST API
2020-09-27
REST API
- 切換止盈止損模式 [新增]
- 創建條件委托單 [更新]
- 支持設置止盈止損,請求參數增加
take_profit
,stop_loss
,tp_trigger_by
,sl_trigger_by
- 返回參數增加
take_profit
,stop_loss
,tp_trigger_by
,sl_trigger_by
- 支持設置止盈止損,請求參數增加
- 創建活動委托單 [更新]
- 返回參數增加
take_profit
,stop_loss
,tp_trigger_by
,sl_trigger_by
- 返回參數增加
- 獲取持倉(實時) [更新]
- 返回參數增加
tp_sl_mode
- 返回參數增加
- 設置止盈止損 [更新]
- 支持創建部分止盈止損單,請求參數增加
sl_size
,tp_size
- 支持創建部分止盈止損單,請求參數增加
- 撤消條件委托單 [更新]
- 支持撤銷止盈止損單
- 修改條件委托單 [更新]
- 支持修改止盈止損單信息,請求參數增加
take_profit
,stop_loss
,tp_trigger_by
,sl_trigger_by
- 支持修改止盈止損單信息,請求參數增加
- 修改活動單信息 [更新]
- 支持修改止盈止損單信息,請求參數增加
take_profit
,stop_loss
,tp_trigger_by
,sl_trigger_by
- 支持修改止盈止損單信息,請求參數增加
- 查詢活動委托 [更新]
- 返回參數增加
take_profit
,stop_loss
,tp_trigger_by
,sl_trigger_by
- 返回參數增加
- 實時查詢活動委托 [更新]
- 返回參數增加
take_profit
,stop_loss
,tp_trigger_by
,sl_trigger_by
- 返回參數增加
- 查詢條件委托 [更新]
- 返回參數增加
take_profit
,stop_loss
,tp_trigger_by
,sl_trigger_by
- 返回參數增加
- 實時查詢條件委托 [更新]
- 返回參數增加
take_profit
,stop_loss
,tp_trigger_by
,sl_trigger_by
- 返回參數增加
WebSocket API
- 新增Websocket域名 [更新]
2020-09-15
REST API
- 用戶多空持倉比率 [更新]
- 修復用戶多空持倉比率數據錯誤
- 條件單 [更新]
- 創建條件市價單時,返回字段
time_in_force
的值由GoodTillCancel
修復為ImmediateOrCancel
(ImmediateOrCancel
是實際的執行策略)
- 創建條件市價單時,返回字段
2020-08-19
REST API
2020-07-07
REST API
- 資產兌換記錄 [新增]
2020-06-17
REST API
2020-05-21
REST API
- 查詢強平訂單數據 [新增]
2020-05-18
REST API
- 查詢活動委托 [更新]
order_status
支持多狀態查詢,狀態之間用英文逗號分割。
- 查詢條件委托 [更新]
order_status
支持多狀態查詢,狀態之間用英文逗號分割。
- 查詢K線數據 [更新]
- 新增返回字段
interval
,open_time
,turnover
字段 - 廢棄返回參數
period
,start_at
- 新增返回字段
2020-04-29
REST API
- APIKey信息 [bugfix]
- 修復某些情況下
inviter_id
總是為0的bug
- 修復某些情況下
WebSocket API
- K線 [新增]
2020-04-27
REST API
- 合約最新信息 [更新]
- 默認返回值中增加
BTCUSDT
- 默認返回值中增加
2020-04-18
REST API
2020-04-17
REST API
- Orderbook [更新]
- 新增
BTCUSDT
至orderbook
- 新增
- 合約最新信息 [更新]
- 新增
BTCUSDT
至合約最新信息
- 新增
- 用戶成交記錄 [更新]
- 新增
trade_time_ms
字段 - 更新請求參數
start_time
支持毫秒 - 廢棄返回參數
trade_time
- 新增
- 平臺交易歷史數據 [更新]
- 新增
trade_time_ms
字段 - 更新請求參數
start_time
支持毫秒 - 廢棄返回參數
trade_time
- 新增
- 標記價格K線 [新增]
- 查詢預測資金費率和資金費用 [新增]
2020-04-14
REST API
2020-04-09
REST API
- 條件單 [新增]
2020-04-07
REST API
- 修改杠桿 [新增]
- 全倉/逐倉切換 [新增]
- 查詢K線數據 [新增]
- 平臺交易歷史數據 [新增]
- 查詢上個周期的資金費率 [新增]
- 創建活動委托單 [更新]
- 返回值中增加參數
reduce_only
- 修復市價單order_type顯示值
- 返回值中增加參數
- 查詢活動委托 [更新]
- 返回值中增加參數
reduce_only
- 修復市價單order_type顯示值
- 返回值中增加參數
- 實時查詢活動委托 [更新]
- 返回值中增加參數
reduce_only
- 修復市價單order_type顯示值
- 返回值中增加參數
- 獲取持倉(實時) [更新]
- 增加可平量參數
free_qty
- 增加可平量參數
2020-03-31
REST API
WebSocket API
- 錢包 [新增]
- 平臺成交 [新增]
- orderBook25檔 [更新]
- orderBook200檔 [更新]
- 修復orderBook更新包數據錯亂的問題
2020-03-27
REST API
WebSocket API
- orderBook25檔 [新增]
- orderBook200檔 [新增]
- 行情 [新增]
- 持倉 [新增]
- 個人成交 [新增]
- 活動單 [新增]
- 條件單 [新增]
FAQ
reduce_only
and close_on_trigger
- what's the difference?
- To close your position, submit an order and specify
reduce_only
totrue
.close_on_trigger
is not strictly applicable here, but you can also set it totrue
if it's required. reduce_only
is the one that really matters for closing position, and we will improve the interface in the future.- Be careful when you specify
close_on_trigger
totrue
as it could cause conflict whenreduce_only
isfalse
.
Why aren't all my orders showing on the website?
- Users who have bots which place large numbers of laddered orders will be restricted by the frontend interface, which only shows a maximum of 50 orders on-screen.
- Don't worry, your orders are still in the system and can be queried by the API, but the frontend cannot show more than 50.
Calculating order size based on available wallet balance
price * available_balance * leverage * perc * (1 - (0.0006 * 2))
- Unfortunately this is not a perfectly accurate formula; the real calculation is complex and may be published in the docs at a later date.
price
- last price (or your entry price) - can be found with the Latest Symbol Info endpoint.available_balance
- can be found with the My Position endpoint.leverage
- up to the respective maximum leverage for the market and your risk limit (eg 2, 10, 50).perc
- 0.1 for 10%, 0.25 for 25%, etc.1 - (0.0006 * 2)
- used to calculate the maximum order cost (always assumes entry & exit orders use taker fee regardless actual fee).
Can I exchange assets with the API?
- There is no endpoint to exchange assets. This can only be done on the website.
- However, it is possible to access your Asset Exchange Records 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?
- The
entry_price
andexit_price
returned by Closed PNL endpoints are not the actual execution prices of the orders. - It is based on the total costs of the order
- (whether or not the position was only opened/closed by one order executed at one price - it is more complicated if multiple orders opened/closed a position.)
- For instance, the
entry_price
andexit_price
reported by this endpoint are influenced by the fee paid/received on the orders.
Why are values returned to too many decimal places? (float precision issue)
- For example, you received
11.969999
but you expected11.97
. - Some values are returned to too many decimal places, or a fraction too high or low, due to a float precision problem.
- For now, we recommend rounding the received value to the correct decimal place. This can be done with reference to the Query Symbol endpoint.
- This issue will be fixed in the next major version of the API; unfortunately, it is not fixable in the short-term.
How can I ensure I am using up-to-date data?
- It is possible, although unlikely, that the REST API or (even less likely) the websocket could return/push old data.
- For the greatest level of data resilience, we recommend clients to:
- firstly, rely on the websocket, which will not only ensure you get the latest data as fast as possible, but will also ensure you get complete data
- secondly, query the REST API to fill in any discrepencies in data - or between websocket disconnections.
- The best practice is to save all of this data locally in your own database or cache.
- This frees up your rate limits for other requests and also ensures a level of redundancy against the exchange in case of data delays.
What is the difference between turnover and volume?
- Turnover: is in the opposite currency to the quantity's currency
- Volume: is in the same currency as the quantity's currency
鑒權/認證
所有private接口都需要認證,public 接口不需要認證。
公共參數
需要簽名的接口必須包含以下參數:
- api_key
- timestamp - UTC毫秒時間戳
- sign - 請求參數簽名
另外我們提供可選的recv_window
參數(單位是毫秒,默認值為5000
),來指定請求在多長時間內有效,同時用來防止重放攻擊。
構建請求
拼接參數示例(以修改槓桿率為例):
param_str = "api_key=B2Rou0PLPpGqcU0Vu2&buy_leverage=100&sell_leverage=110&symbol=BTCUSDT×tamp=1542434791747"
param_str = "api_key=B2Rou0PLPpGqcU0Vu2&buy_leverage=100&sell_leverage=110&symbol=BTCUSD×tamp=1542434791747"
# api_key=B2Rou0PLPpGqcU0Vu2&
# leverage=100&
# symbol=BTCUSD&
# timestamp=1542434791747
參數按照 字母順序 排列,然後計算
sign
。
1. 所有參數按照字母順序排序,然後按照query string格式拼接。
2. 使用HMAC_SHA256
算法對第1步中拼接的query string簽名,並轉換為16進製字符串,得出sign
參數。
GET請求格式(查詢賬號余額):
GET /user/leverage?api_key=B2Rou0PLPpGqcU0Vu2×tamp=1542434791000&sign=670e3e4aa32b243f2dedf1dafcec2fd17a440e71b05681550416507de591d908 HTTP/1.1
Host: api-testnet.bybit.com
POST請求格式(創建訂單):
POST /user/leverage/save HTTP/1.1
Host: api-testnet.bybit.com
Content-Type: application/json
{
"api_key": "B2Rou0PLPpGqcU0Vu2",
"leverage": 100,
"symbol": "BTCUSD",
"timestamp": 1542434791000,
"sign": "670e3e4aa32b243f2dedf1dafcec2fd17a440e71b05681550416507de591d908"
}
3. 將sign
參數加到請求參數中即可;註意GET
和POST
請求參數格式不同,詳見右邊示例。
行情接口
以下市場行情數據接口不需要驗權.
Orderbook
查詢K線數據
請求示例
curl https://api-testnet.bybit.com/public/linear/kline?symbol=BTCUSDT&interval=1&limit=2&from=1581231260
from pybit import usdt_perpetual
session_unauth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com"
)
print(session_unauth.query_kline(
symbol="BTCUSDT",
interval=1,
limit=2,
from_time=1581231260
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": [
{
"id": 3866948,
"symbol": "BTCUSDT",
"period": "1",
"start_at": 1577836800,
"volume": 1451.59,
"open": 7700,
"high": 999999,
"low": 0.5,
"close": 6000,
"interval": "1",
"open_time": 1577836800,
"turnover": 2.4343353100000003,
}],
"time_now": "1581928016.558522"
}
查詢標記價格K線數據, 請瀏覽Mark Price Kline 接口
HTTP 請求
GET
/public/linear/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 |
interval | string | 數據記錄周期. 5min 15min 30min 1h 4h 1d |
start_at | integer | 開始時間戳(秒) |
open_time | integer | 開始時間 |
volume | number | 交易量 |
open | integer | 開始價格 |
high | integer | 最高價格 |
low | number | 最低價格 |
close | integer | 結束價格 |
turnover | number | 成交金額 |
合約最新信息
平臺交易歷史數據
請求示例
curl https://api-testnet.bybit.com/public/linear/recent-trading-records?symbol=BTCUSDT&limit=500
from pybit import usdt_perpetual
session_unauth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com"
)
print(session_unauth.public_trading_records(
symbol="BTCUSDT",
limit=500
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": [
{
"id": "18368131384",
"symbol": "BTCUSDT",
"price": 9499.5,
"qty": 9500,
"side": "Buy",
"time": "2019-11-19T08:03:04.077Z",
"trade_time_ms":1587638305175
}
],
"time_now": "1567109419.049271"
}
獲取Bybit的最近成交數據。如果您想獲取歷史所有的成交記錄,請通過這裏下載歷史行情。
HTTP 請求
GET
/public/linear/recent-trading-records
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
limit | false | int | 返回條數,最大1000,默認500 |
返回參數
參數 | 類型 | 說明 |
---|---|---|
id | string | 最新數據ID |
symbol | string | 合約類型 |
price | number | 交易價格 |
qty | number | 委托數量(加密貨幣) |
side | string | Side of taker order |
time | string | UTC 時間 |
trade_time_ms | number | 毫秒時間戳 |
查詢合約信息
查詢強平訂單數據
查詢上個周期的資金費率
請求示例
curl https://api-testnet.bybit.com/public/linear/funding/prev-funding-rate?symbol=BTCUSDT
from pybit import usdt_perpetual
session_unauth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com"
)
print(session_unauth.get_the_last_funding_rate(
symbol="BTCUSDT"
))
響應示例
{
"ret_code":0,
"ret_msg":"OK",
"ext_code":"",
"ext_info":"",
"result":{
"symbol":"BTCUSDT",
"funding_rate":-0.00005965,
"funding_rate_timestamp":"2020-04-07T08:00:00.000Z"
},
"time_now":"1586251109.454281"
}
UTC時間每天0點、8點、16點產生一個資金費率。 假設當前時間是UTC12點,則返回的是上一次結算即UTC8點產生的資金費率。
HTTP 請求
GET
/public/linear/funding/prev-funding-rate
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
返回參數
參數 | 類型 | 說明 |
---|---|---|
symbol | string | 合約類型 |
funding_rate | number | 資金費率 |
funding_rate_timestamp | string | 資金費率時間戳 |
標記價格K線
請求示例
curl https://api-testnet.bybit.com/public/linear/mark-price-kline?symbol=BTCUSDT&interval=1&limit=2&from=1581231260
from pybit import usdt_perpetual
session_unauth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com"
)
print(session_unauth.query_mark_price_kline(
symbol="BTCUSDT",
interval=1,
limit=2,
from_time=1581231260
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": [{
"id": 3866948,
"symbol": "BTCUSDT",
"period": "1",
"start_at": 1577836800,
"open": 7700,
"high": 999999,
"low": 0.5,
"close": 6000
},
{
"id": 3866948,
"symbol": "BTCUSDT",
"period": "1",
"start_at": 1577836800,
"open": 7700,
"high": 999999,
"low": 0.5,
"close": 6000
}],
"time_now": "1581928016.558522"
}
查詢標記價格K線
HTTP 請求
GET
/public/linear/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 | number | 最低價格 |
close | integer | 結束價格 |
查詢指數價格K線數據
請求示例
curl "https://api-testnet.bybit.com/public/linear/index-price-kline?symbol=BTCUSDT&interval=1&limit=2&from=1581231260"
from pybit import usdt_perpetual
session_unauth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com"
)
print(session_unauth.query_index_price_kline(
symbol="BTCUSDT",
interval=1,
limit=2,
from_time=1581231260
))
響應示例
{
"ret_code":0,
"ret_msg":"OK",
"ext_code":"",
"ext_info":"",
"result":[{
"symbol":"BTCUSDT",
"period":"1",
"open_time":1582231260,
"open":"10106.09",
"high":"10108.75",
"low":"10104.66",
"close":"10108.73"
}],
"time_now":"1591263582.601795"
}
指數價格K線
HTTP 請求
GET
/public/linear/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-testnet.bybit.com/public/linear/premium-index-kline?symbol=BTCUSDT&interval=1&limit=2&from=1581231260"
from pybit import usdt_perpetual
session_unauth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com"
)
print(session_unauth.query_premium_index_kline(
symbol="BTCUSDT",
interval=1,
limit=2,
from_time=1581231260
))
響應示例
{
"ret_code":0,
"ret_msg":"OK",
"ext_code":"",
"ext_info":"",
"result":[{
"symbol":"BTCUSDT",
"period":"1",
"open_time":1582231260,
"open":"0.000588",
"high":"0.000618",
"low":"0.000588",
"close":"0.000618"
}],
"time_now":"1591263582.601795"
}
溢價K線
HTTP 請求
GET
/public/linear/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-testnet.bybit.com/private/linear/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}"}'
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="your api key",
api_secret="your api secret"
)
print(session_auth.place_active_order(
symbol="BTCUSDT",
side="Sell",
order_type="Limit",
qty=0.01,
price=8083,
time_in_force="GoodTillCancel",
reduce_only=False,
close_on_trigger=False
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": {
"order_id": "a6c64aa0-c80b-4865-ae35-99be5fab3535",
"user_id": 533285,
"symbol": "MANAUSDT",
"side": "Sell",
"order_type": "Limit",
"price": 0.8,
"qty": 100,
"time_in_force": "GoodTillCancel",
"order_status": "Created",
"last_exec_price": 0,
"cum_exec_qty": 0,
"cum_exec_value": 0,
"cum_exec_fee": 0,
"reduce_only": false,
"close_on_trigger": false,
"order_link_id": "Mactive001",
"created_time": "2022-06-22T01:46:11Z",
"updated_time": "2022-06-22T01:46:11Z",
"take_profit": 0.65,
"stop_loss": 0.99,
"tp_trigger_by": "MarkPrice",
"sl_trigger_by": "LastPrice",
"position_idx": 2
},
"time_now": "1655862371.660491",
"rate_limit_status": 99,
"rate_limit_reset_ms": 1655862371657,
"rate_limit": 100
}
市價活動委托: 一個傳統的市場價格訂單,會以當前的最優價格為您成交訂單。當且僅當選擇市價單時,price
可為空!
限價活動委托: 您可以為您的訂單設置一個執行價格,當市場價格達到您的設置價格時,系統會為您成交訂單。
止盈止損: 您僅能在開倉時設置止盈止損條件單,一旦持有倉位後提交活動委托時關聯的止盈止損則不會生效。如果不設置止盈止損觸發條件trigger_by
則默認使用LastPrice
委托數量: 表示您要購買/賣出的永續合約數,對於委托數量目前Bybit只允許提交正整數。增減最小單位請參考交易對接口響應中的lot_size_filter
字段。
委托價格: 如果是下限價單,該參數為必填. 在沒有倉位時,做多的委托價格需高於市價的10%、低於1百萬。如有倉位時則需優於強平價。價格增減最小單位請參考交易對接口響應中的price_filter字段。
自定義條件單ID: 您可以自定義活動委托訂單ID,我們會為您關聯到系統的訂單ID,並把系統的唯一訂單ID在活動委托創建成功後一並返回給您,您可以使用該訂單ID去取消活動委托,同時要求您傳遞的自定義訂單ID最大長度不超過36個字段且唯一
。
每個賬戶最多可同時持有500個活動訂單。這是針對合約的,因此可以允許出現例如:賬戶同時持有300個BTCUSDT的活動單、280個ETHUSDT合約的活動單。
當您達到訂單上限的時候的時候,仍然可以下單設置了參數reduce_only
或 close_on_trigger
的訂單。
HTTP 請求
POST
/private/linear/order/create
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
side | true | string | 方向 |
symbol | true | string | 合約類型 |
order_type | true | string | 委托單價格類型 |
qty | true | number | 委托數量(加密貨幣) |
price | false | number | 委托價格。如果是下限價單,該參數為必填. 在沒有倉位時,做多的委托價格需高於市價的10%、低於1百萬。如有倉位時則需優於強平價。價格增減最小單位請參考交易對接口響應中的price_filter字段 |
time_in_force | true | string | 執行策略 |
reduce_only | true | bool | 什麽是 reduce-only order?,true-平倉 false-開倉,ture時止盈止損設置不生效 |
close_on_trigger | true | bool | 什麽是 close on trigger order?只會減少您的倉位而不會增加您的倉位。如果當平倉委托被觸發時,賬戶上的余額不足,那麽該合約的其他委托將被取消或者降低委托數量。使用此選項可以確保您的止損單被用於減倉而非加倉。 |
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 |
position_idx | false | integer | Position idx, 用於在不同倉位模式下標識倉位。 如果是單向持倉模式, 該參數為必填: 0-單向持倉 1-雙向持倉Buy 2-雙向持倉Sell |
返回參數
參數 | 類型 | 說明 |
---|---|---|
order_id | string | 訂單ID |
user_id | number | 用戶ID |
symbol | string | 合約類型 |
side | string | 方向 |
order_type | string | 交易記錄類型 |
price | number | 委托價格 |
qty | number | 委托數量 |
time_in_force | string | 執行策略 |
order_status | string | 訂單狀態 |
last_exec_price | number | 最近一次成交價格 |
cum_exec_qty | number | 累計成交數量 |
cum_exec_value | number | 累計成交價值 |
cum_exec_fee | number | 累計成交手續費 |
reduce_only | bool | 是否平倉單 true-平倉 false-開倉 |
close_on_trigger | bool | 是否平倉委托 true-平倉 false-開倉 |
order_link_id | string | 機構自定義訂單ID, 最大長度36位,且同一機構下自定義ID不可重復 |
created_time | string | 創建時間 |
updated_time | string | 更新時間 |
take_profit | number | 止盈價格 |
stop_loss | number | 止損價格 |
tp_trigger_by | string | 止盈激活價格類型,默認為LastPrice |
sl_trigger_by | string | 止損激活價格類型,默認為LastPrice |
position_idx | integer | Position idx, 用於在不同倉位模式下標識倉位: 0-單向持倉 1-雙向持倉Buy 2-雙向持倉Sell |
查詢活動委托
請求示例
curl "https://api-testnet.bybit.com/private/linear/order/list?api_key={api_key}×tamp={timestamp}&sign={sign}&symbol=BTCUSDT"
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="your api key",
api_secret="your api secret"
)
print(session_auth.get_active_order(
symbol="BTCUSDT"
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": {
"current_page": 1,
"data": [
{
"order_id": "a6c64aa0-c80b-4865-ae35-99be5fab3535",
"user_id": 533285,
"symbol": "MANAUSDT",
"side": "Sell",
"order_type": "Limit",
"price": 0.8,
"qty": 100,
"time_in_force": "GoodTillCancel",
"order_status": "Filled",
"last_exec_price": 0.8315,
"cum_exec_qty": 100,
"cum_exec_value": 83.15,
"cum_exec_fee": 0.04989,
"reduce_only": false,
"close_on_trigger": false,
"order_link_id": "Mactive001",
"created_time": "2022-06-22T01:46:11Z",
"updated_time": "2022-06-22T01:46:11Z",
"take_profit": 0.65,
"stop_loss": 0.99,
"tp_trigger_by": "MarkPrice",
"sl_trigger_by": "LastPrice"
}
]
},
"time_now": "1655862613.007213",
"rate_limit_status": 598,
"rate_limit_reset_ms": 1655862613003,
"rate_limit": 600
}
獲取我的活動委托單列表。
創建/取消訂單是異步的,因此該接口可能返回的數據可能會有延遲。如果要獲取訂單的實時信息,可以調用接口實時查詢活動單信息.
HTTP 請求
GET
/private/linear/order/list
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
order_id | false | string | 訂單ID |
order_link_id | false | string | 機構自定義訂單ID, 最大長度36位,且同一機構下自定義ID不可重復 |
symbol | true | string | 合約類型 |
order | false | string | 按創建時間排序(默認升序) |
page | false | integer | 頁碼.默認取第一頁,最大50 |
limit | false | integer | 每頁數量, 最大50. 默認每頁20條 |
order_status | false | string | 指定訂單狀態查詢訂單列表。不傳該參數則默認查詢所有狀態訂單。該參數支持多狀態查詢,狀態之間用英文逗號分割。 |
返回參數
參數 | 類型 | 說明 |
---|---|---|
order_id | string | 訂單ID |
user_id | number | 用戶ID |
symbol | string | 合約類型 |
side | string | 方向 |
order_type | string | 交易記錄類型 |
price | number | 委托價格 |
qty | number | 委托數量(加密貨幣) |
time_in_force | string | 執行策略 |
order_status | string | 訂單狀態 |
last_exec_price | number | 最近一次成交價格 |
cum_exec_qty | number | 累計成交數量 |
cum_exec_value | number | 累計成交價值 |
cum_exec_fee | number | 累計成交手續費 |
order_link_id | string | 機構自定義訂單ID, 最大長度36位,且同一機構下自定義ID不可重復 |
reduce_only | bool | 是否平倉單 true-平倉 false-開倉 |
close_on_trigger | bool | 是否平倉委托 true-平倉 false-開倉 |
created_time | string | 創建時間 |
updated_time | string | 更新時間 |
take_profit | number | 止盈價格 |
stop_loss | number | 止損價格 |
tp_trigger_by | string | 止盈激活價格類型,默認為LastPrice |
sl_trigger_by | string | 止損激活價格類型,默認為LastPrice |
撤銷活動委托單
請求示例
curl https://api-testnet.bybit.com/private/linear/order/cancel \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSD","order_id":"","timestamp":{timestamp},"sign":"{sign}"}'
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="your api key",
api_secret="your api secret"
)
print(session_auth.cancel_active_order(
symbol="BTCUSDT",
order_id=""
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": {
"order_id":"bd1844f-f3c0-4e10-8c25-10fea03763f6",
},
"time_now": "1575112681.814760",
"rate_limit_status": 98,
"rate_limit_reset_ms": 1580885703683,
"rate_limit": 100
}
所有撤銷活動委托都必須填寫order_id
或order_link_id
。 order_id
- 當您成功創建了活動委托時會為您返回36位唯一的訂單ID。
您可以撤銷未成交、部分成交的活動委托單。但全部成交的活動委托不可取消。
HTTP 請求
POST
/private/linear/order/cancel
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
order_id | false | string | 訂單ID |
order_link_id | false | string | 自定義機構ID |
返回參數
參數 | 類型 | 說明 |
---|---|---|
order_id | string | 訂單ID |
撤銷所有活動委托單
請求示例
curl https://api-testnet.bybit.com/private/linear/order/cancel-all \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSDT","timestamp":{timestamp},"sign":"{sign}"}'
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="your api key",
api_secret="your api secret"
)
print(session_auth.cancel_all_active_orders(
symbol="BTCUSDT"
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": [
"89a38056-80f1-45b2-89d3-4d8e3a203a79",
"89a38056-80f1-45b2-89d3-4d8e3a203a79",
],
"time_now": "1575110339.105675",
"rate_limit_status": 98,
"rate_limit_reset_ms": 1580885703683,
"rate_limit": 100
}
撤銷所有未成交、部分成交的活動委托單。但全部成交的活動委托不可取消。
HTTP 請求
POST
/private/linear/order/cancel-all
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
返回參數
參數 | 類型 | 說明 |
---|---|---|
result | arr | 訂單ID |
修改活動單信息
請求示例
curl https://api-testnet.bybit.com/private/linear/order/replace \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSDT","order_id":"","p_r_qty":2,"timestamp":{timestamp},"sign":"{sign}"}'
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="your api key",
api_secret="your api secret"
)
print(session_auth.replace_active_order(
symbol="BTCUSDT",
order_id="",
p_r_qty=2
))
響應示例
{
"ret_code": 0,
"ret_msg": "ok",
"ext_code": "",
"result": {
"order_id": "efa44157-c355-4a98-b6d6-1d846a936b93"
},
"time_now": "1539778407.210858",
"rate_limit_status": 99,
"rate_limit_reset_ms": 1580885703683,
"rate_limit": 100
}
本接口可以修改您的活動單信息.
HTTP 請求
POST
/private/linear/order/replace
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
order_id | false | string | 訂單ID |
order_link_id | false | string | 自定義機構ID |
symbol | true | string | 合約類型 |
p_r_qty | false | integer | 修改後的訂單數量。如果是未完全成交訂單,則表示修改剩余未成交的部分。如果不修改這個字段,請不要傳這個參數。 |
p_r_price | false | number | 修改後的訂單價格。如果不修改這個字段,請不要傳這個參數。 |
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-testnet.bybit.com/private/linear/order/search?api_key={api_key}&symbol=BTCUSDT×tamp={timestamp}order_id={order_id}&sign={sign}"
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="your api key",
api_secret="your api secret"
)
print(session_auth.query_active_order(
symbol="BTCUSDT",
order_id=""
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": [
{
"order_id": "8e7d1cd2-d7b3-4c61-87a9-a85a6e59cef8",
"user_id": 533285,
"symbol": "BITUSDT",
"side": "Buy",
"order_type": "Limit",
"price": 0.3,
"qty": 100,
"time_in_force": "GoodTillCancel",
"order_status": "New",
"last_exec_price": 0,
"cum_exec_qty": 0,
"cum_exec_value": 0,
"cum_exec_fee": 0,
"order_link_id": "Bactive001",
"reduce_only": false,
"close_on_trigger": false,
"created_time": "2022-06-22T02:11:49Z",
"updated_time": "2022-06-22T02:11:49Z",
"take_profit": 0.7,
"stop_loss": 0.1,
"tp_trigger_by": "LastPrice",
"sl_trigger_by": "LastPrice"
}
],
"time_now": "1655863947.736147",
"rate_limit_status": 599,
"rate_limit_reset_ms": 1655863947734,
"rate_limit": 600
}
//當只傳參數symbol
的時候,返回結構如下:
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": [
{
"order_id": "6449d89e-6ef5-4f54-a065-12b2744de0ae",
"user_id": 118921,
"symbol": "LINKUSDT",
"side": "Buy",
"order_type": "Limit",
"price": 9,
"qty": 0.1,
"time_in_force": "GoodTillCancel",
"order_status": "New",
"last_exec_price": 11874.5,
"cum_exec_qty": 0.005,
"cum_exec_value": 11.8745,
"cum_exec_fee": 0.00890588,
"order_link_id": "",
"reduce_only": false,
"created_time": "2020-11-27T08:25:44Z",
"updated_time": "2020-11-27T08:25:44Z",
"take_profit": 0,
"stop_loss": 0,
"tp_trigger_by": "UNKNOWN",
"sl_trigger_by": "UNKNOWN"
},
...
{
"order_id": "6d4dc4e0-b4e3-4fc5-a92d-3d693bdff4a5",
"user_id": 118921,
"symbol": "LINKUSDT",
"side": "Buy",
"order_type": "Limit",
"price": 8.2,
"qty": 9999,
"time_in_force": "GoodTillCancel",
"order_status": "New",
"last_exec_price": 11888.5,
"cum_exec_qty": 0.004,
"cum_exec_value": 11.8745,
"cum_exec_fee": 0.00890588,
"order_link_id": "",
"reduce_only": false,
"created_time": "2020-11-23T09:19:49Z",
"updated_time": "2020-11-23T09:20:31Z",
"take_profit": 0,
"stop_loss": 0,
"tp_trigger_by": "UNKNOWN",
"sl_trigger_by": "UNKNOWN"
}
],
"time_now": "1606465563.551193",
"rate_limit_status": 599,
"rate_limit_reset_ms": 1606465563547,
"rate_limit": 600
}
實時查詢活動委托。當傳遞參數order_id
或order_link_id
其中任意一個時,將返回單條訂單數據,如果參數order_id
和order_link_id
都不傳遞時,將返回所有未成交的訂單,最多500條。
HTTP 請求
GET
/private/linear/order/search
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
order_id | false | string | 訂單ID |
order_link_id | false | string | 自定義機構ID |
symbol | true | string | 合約類型 |
返回參數
參數 | 類型 | 說明 |
---|---|---|
order_id | string | 訂單ID |
user_id | number | 用戶ID |
symbol | string | 合約類型 |
side | string | 方向 |
order_type | string | 交易記錄類型 |
price | number | 委托價格 |
qty | number | 委托數量(加密貨幣) |
time_in_force | string | 執行策略 |
order_status | string | 訂單狀態 |
last_exec_price | number | 最近一次成交價格 |
cum_exec_qty | number | 累計成交數量 |
cum_exec_value | number | 累計成交價值 |
cum_exec_fee | number | 累計成交手續費 |
reduce_only | bool | 是否平倉單 true-平倉 false-開倉 |
close_on_trigger | bool | 是否平倉委托 true-平倉 false-開倉 |
order_link_id | string | 機構自定義訂單ID, 最大長度36位,且同一機構下自定義ID不可重復 |
created_time | string | 創建時間 |
updated_time | string | 更新時間 |
take_profit | number | 止盈價格 |
stop_loss | number | 止損價格 |
tp_trigger_by | string | 止盈激活價格類型,默認為LastPrice |
sl_trigger_by | string | 止損激活價格類型,默認為LastPrice |
條件單
創建條件委托單
請求示例
curl https://api-testnet.bybit.com/private/linear/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","trigger_by":"LastPrice",order_link_id":"cus_order_id_1","reduce_only":false,"close_on_trigger":false,"timestamp":{timestamp},"sign":"{sign}"}'
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="your api key",
api_secret="your api secret"
)
print(session_auth.place_conditional_order(
symbol="BTCUSDT",
order_type="Limit",
side="Buy",
qty=1,
price=8100,
base_price=16100,
stop_px=8150,
time_in_force="GoodTillCancel",
trigger_by="LastPrice",
order_link_id="cus_order_id_1",
reduce_only=False,
close_on_trigger=False
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": {
"user_id": 533285,
"stop_order_id": "37c2f5ac-3c87-4853-a7c6-29070d4b9c4f",
"symbol": "XRPUSDT",
"side": "Buy",
"order_type": "Limit",
"price": 0.25,
"qty": 100,
"time_in_force": "GoodTillCancel",
"order_status": "Untriggered",
"trigger_price": 0.35,
"order_link_id": "Xcond001",
"created_time": "2022-06-22T02:20:47Z",
"updated_time": "2022-06-22T02:20:47Z",
"base_price": "0.3000",
"trigger_by": "MarkPrice",
"tp_trigger_by": "IndexPrice",
"sl_trigger_by": "MarkPrice",
"take_profit": 0.5,
"stop_loss": 0.12,
"reduce_only": false,
"close_on_trigger": false,
"position_idx": 1
},
"time_now": "1655864447.252259",
"rate_limit_status": 99,
"rate_limit_reset_ms": 1655864447248,
"rate_limit": 100
}
市價條件委托: 一個傳統的市場價格訂單,會以當前的最優價格為您成交訂單。當且僅當選擇市價單時,'price', '可為空!
限價條件委托: 您可以為您的訂單設置一個執行價格,當市場價格達到您的設置價格時,系統會為您成交訂單。
止盈止損: 您僅能在開倉時設置止盈止損條件單,一旦持有倉位後提交活動委托時關聯的止盈止損則不再有效。一旦持倉後,當創建訂單後發送的止盈止損信息將不再有效。
委托數量: 表示您要購買/賣出的永續合約數,對於委托數量目前Bybit只允許提交正整數。
委托價格: 表示您期望購買/賣出永續合約的價格,可以根據交易對接口查詢不同symbol價格階梯。
條件委托觸發價格: 您可以為您的條件委托單設置一個觸發價格,條件委托單不進入委托表(Order Book),只有觸發條件成立如市場價格到達觸發價格時,條件委托單才會進入交易系統。當市場價格到達觸發價格:1)您的限價條件委托單進入Order Book,等待被執行;2)您的市價條件委托單將按照市場最優價格立即被執行。
自定義條件單ID: 您可以自定義活動委托訂單ID,我們會為您關聯到系統的訂單ID,並把系統的唯一訂單ID在活動委托創建成功後一並返回給您,您可以使用該訂單ID去取消活動委托,同時要求您傳遞的自定義訂單ID最大長度不超過36個字段且唯一。
HTTP 請求
POST
/private/linear/stop-order/create
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
side | true | string | 方向 |
symbol | true | string | 合約類型 |
order_type | true | string | 委托單價格類型 |
qty | true | number | 委托數量(加密貨幣) |
price | false | number | 條件委托執行價格。如果條件委托是限價單,則price為必傳字段 |
base_price | true | number | 當前市價。用於和stop_px值進行比較,確定當前條件委托是看空到stop_px 時觸發還是看多到stop_px觸發。主要是用來標識當前條件單預期的方向 |
stop_px | true | number | 觸發價格。如果您期望價格上漲时觸發您的條件訂單,請確保 stop_px > max(market price, base_price) 否則 stop_px < min(market price, base_price) |
time_in_force | true | string | 執行策略 |
trigger_by | true | string | 觸發價格類型 |
reduce_only | true | bool | 什麽是 reduce-only order?,true-平倉 false-開倉,ture時止盈止損設置不生效 |
close_on_trigger | true | 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 |
position_idx | false | integer | Position idx, 用於在不同倉位模式下標識倉位。 如果是單向持倉模式, 該參數為必填: 0-單向持倉 1-雙向持倉Buy 2-雙向持倉Sell |
返回參數
參數 | 類型 | 說明 |
---|---|---|
stop_order_id | string | 條件委托訂單ID |
user_id | number | 用戶ID |
symbol | string | 合約類型 |
side | string | 方向 |
order_type | string | 訂單類型 |
price | number | 委托價格 |
qty | number | 委托數量(加密貨幣) |
time_in_force | string | 執行策略 |
order_status | string | 訂單狀態 |
trigger_price | number | 如果stop_order_type為`TrailingProfit`時,為激活價格,否則為觸發價格。 |
order_link_id | string | 機構自定義訂單ID, 最大長度36位,且同一機構下自定義ID不可重復 |
created_time | string | 創建時間 |
updated_time | string | 更新時間 |
base_price | string | 下單時市價 |
trigger_by | string | 觸發價格類型. 默認為最新市價 |
tp_trigger_by | string | 止盈激活價格類型,默認為LastPrice |
sl_trigger_by | string | 止損激活價格類型,默認為LastPrice |
take_profit | number | 止盈價格 |
stop_loss | number | 止損價格 |
reduce_only | bool | 是否平倉單 true-平倉 false-開倉 |
close_on_trigger | bool | 是否平倉委托 true-平倉 false-開倉 |
position_idx | integer | Position idx, 用於在不同倉位模式下標識倉位: 0-單向持倉 1-雙向持倉Buy 2-雙向持倉Sell |
查詢條件委托
請求示例
curl "https://api-testnet.bybit.com/private/linear/stop-order/list?api_key={api_key}×tamp={timestamp}&sign={sign}"
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="your api key",
api_secret="your api secret"
)
print(session_auth.get_conditional_order(
symbol="BTCUSDT"
))
響應示例
{
"ret_code": 0,
"ret_msg": "ok",
"ext_code": "",
"result": {
"current_page": 1,
"last_page": 1,
"data": [
{
"stop_order_id":"bd1844f-f3c0-4e10-8c25-10fea03763f6",
"user_id": 1,
"symbol": "BTCUSDT",
"side": "Sell",
"order_type": "Limit",
"price": 8083,
"qty": 10,
"time_in_force": "GoodTillCancel",
"order_status": "New",
"trigger_price": 8003,
"order_link_id": "",
"created_time": "2019-10-21T07:28:19.396246Z",
"updated_time": "2019-10-21T07:28:19.396246Z",
"take_profit": 0,
"stop_loss": 0,
"tp_trigger_by": "UNKNOWN",
"sl_trigger_by": "UNKNOWN",
"base_price": "16100.0000",
"trigger_by": "LastPrice",
},
{
"stop_order_id":"bd1844f-f3c0-4e10-8c25-10fea03763f6",
"user_id": 1,
"symbol": "BTCUSDT",
"side": "Sell",
"order_type": "Limit",
"price": 8083,
"qty": 10,
"time_in_force": "GoodTillCancel",
"order_status": "New",
"trigger_price": 8003,
"order_link_id": "",
"created_time": "2019-10-21T07:28:19.396246Z",
"updated_time": "2019-10-21T07:28:19.396246Z",
"take_profit": 0,
"stop_loss": 0,
"tp_trigger_by": "UNKNOWN",
"sl_trigger_by": "UNKNOWN",
"base_price": "16100.0000",
"trigger_by": "LastPrice",
"reduce_only": false,
"close_on_trigger": false,
}
]
},
"ext_info": null,
"time_now": "1577451658.755468",
"rate_limit_status": 599,
"rate_limit_reset_ms": 1577451658762,
"rate_limit": 600
}
獲取我的條件委托單列表。
創建/取消訂單是異步的,因此該接口可能返回的數據可能會有延遲。如果要獲取訂單的實時信息,可以調用接口實時查詢條件單信息。
HTTP 請求
GET
/private/linear/stop-order/list
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
stop_order_id | false | string | 條件委托訂單ID |
order_link_id | false | string | 機構自定義訂單ID, 最大長度36位,且同一機構下自定義ID不可重復 |
symbol | true | string | 合約類型 |
stop_order_status | false | string | 條件單狀態 |
order | false | string | 按創建時間排序(默認升序) |
page | false | integer | 頁碼.默認取第一頁,最大50 |
limit | false | integer | 每頁數量, 最大50. 默認每頁20條 |
返回參數
參數 | 類型 | 說明 |
---|---|---|
stop_order_id | string | 條件委托訂單ID |
user_id | number | 用戶ID |
symbol | string | 合約類型 |
side | string | 方向 |
order_type | string | 訂單類型 |
price | number | 委托價格 |
qty | number | 委托數量(加密貨幣) |
time_in_force | string | 執行策略 |
order_status | string | 條件單狀態 |
trigger_price | number | 如果stop_order_type為`TrailingProfit`時,為激活價格,否則為觸發價格。 |
order_link_id | string | 機構自定義訂單ID, 最大長度36位,且同一機構下自定義ID不可重復 |
created_time | string | 創建時間 |
updated_time | string | 更新時間 |
take_profit | number | 止盈價格 |
stop_loss | number | 止損價格 |
trigger_by | string | 觸發價格類型. 默認為最新市價 |
base_price | string | 下單時市價 |
tp_trigger_by | string | 止盈激活價格類型,默認為LastPrice |
sl_trigger_by | string | 止損激活價格類型,默認為LastPrice |
reduce_only | bool | 是否平倉單 true-平倉 false-開倉 |
close_on_trigger | bool | 是否平倉委托 true-平倉 false-開倉 |
撤消條件委托單
請求示例
curl https://api-testnet.bybit.com/private/linear/stop-order/cancel \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSDT","stop_order_id":"","timestamp":{timestamp},"sign":"{sign}"}'
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="your api key",
api_secret="your api secret"
)
print(session_auth.cancel_conditional_order(
symbol="BTCUSDT",
stop_order_id=""
))
響應示例
{
"ret_code": 0,
"ret_msg": "ok",
"ext_code": "",
"result": {
"stop_order_id":"bd1844f-f3c0-4e10-8c25-10fea03763f6",
},
"ext_info": null,
"time_now": "1577452218.567120",
"rate_limit_status": 97,
"rate_limit_reset_ms": 1577452218573,
"rate_limit": "100"
}
您可以撤銷所有未被激活的條件委托,或止盈止損單。本質上所有條件委托在被激活後都是屬於活動委托,所以條件委托一旦被激活,您需要通過調用取消活動委托接口來取消所有未成交、部分成交的活動委托單。同樣全部成交的活動委托不可取消。
HTTP 請求
POST
/private/linear/stop-order/cancel
請求參數
參數 | required | type | comments |
---|---|---|---|
symbol | true | string | 合約類型 |
stop_order_id | false | string | 訂單ID |
order_link_id | false | string | 機構ID。如果未填stop_order_id則為必填字段。 |
返回參數
參數 | 類型 | 說明 |
---|---|---|
stop_order_id | string | 條件委托訂單ID |
撤消全部條件委托單
請求示例
curl https://api-testnet.bybit.com/private/linear/stop-order/cancel-all \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSDT","timestamp":{timestamp},"sign":"{sign}"}'
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="your api key",
api_secret="your api secret"
)
print(session_auth.cancel_all_conditional_orders(
symbol="BTCUSDT"
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": [
"89a38056-80f1-45b2-89d3-4d8e3a203a79",
"89a38056-80f1-45b2-89d3-4d8e3a203a79",
],
"time_now": "1577454993.799912",
"rate_limit_status": 90,
"rate_limit_reset_ms": 1580885703683,
"rate_limit": 100
}
撤銷所有未被激活的條件委托。本質上所有條件委托在被激活後都是屬於活動委托,所以條件委托一旦被激活,您需要通過調用取消活動委托接口來取消所有未成交、部分成交的活動委托單。同樣全部成交的活動委托不可取消。
HTTP 請求
POST
/private/linear/stop-order/cancel-all
請求參數
參數 | required | type | comments |
---|---|---|---|
symbol | true | string | 合約類型 |
修改條件委托單
請求示例
curl https://api-testnet.bybit.com/private/linear/stop-order/replace \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSDT","stop_order_id":"","p_r_qty":2,"timestamp":{timestamp},"sign":"{sign}"}'
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="your api key",
api_secret="your api secret"
)
print(session_auth.replace_conditional_order(
symbol="BTCUSDT",
stop_order_id="",
p_r_qty=2
))
響應示例
{
"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
/private/linear/stop-order/replace
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
stop_order_id | false | string | 訂單ID |
order_link_id | false | string | 機構ID。如果未填stop_order_id則為必填字段。 |
symbol | true | string | 合約類型 |
p_r_qty | false | integer | 修改後的訂單數量。如果是未完全成交訂單,則表示修改剩余未成交的部分。如果不修改這個字段,請不要傳這個參數。 |
p_r_price | false | number | 修改後的訂單價格。如果不修改這個字段,請不要傳這個參數。 |
p_r_trigger_price | false | number | 修改後的條件單的觸發價格或止盈止損的價格。如果不修改這個字段,請不要傳這個參數。 |
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-testnet.bybit.com/private/linear/stop-order/search?api_key={api_key}&symbol=BTCUSDT×tamp={timestamp}&sign={sign}"
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="your api key",
api_secret="your api secret"
)
print(session_auth.query_conditional_order(
symbol="BTCUSDT"
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": {
"stop_order_id":"bd1844f-f3c0-4e10-8c25-10fea03763f6",
"user_id": 1,
"symbol": "BTCUSDT",
"side": "Sell",
"order_type": "Limit",
"price": 8083,
"qty": 10,
"time_in_force": "GoodTillCancel",
"order_status": "New",
"trigger_price": 8003,
"order_link_id": "",
"created_time": "2019-10-21T07:28:19.396246Z",
"updated_time": "2019-10-21T07:28:19.396246Z",
"take_profit": 0,
"stop_loss": 0,
"tp_trigger_by": "UNKNOWN",
"sl_trigger_by": "UNKNOWN",
"base_price": "16100.0000",
"trigger_by": "LastPrice",
"reduce_only": false,
"close_on_trigger": false,
},
"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": 1301180,
"stop_order_id": "a1dbf284-b6ee-4eaf-9fda-2d3f3fa4c501",
"symbol": "BTCUSDT",
"side": "Buy",
"order_type": "Limit",
"price": 8020,
"qty": 0.001,
"time_in_force": "GoodTillCancel",
"order_status": "Untriggered",
"trigger_price": 16000,
"order_link_id": "",
"created_time": "2020-11-16T09:06:17.000Z",
"updated_time": "2020-11-16T09:06:17.000Z",
"take_profit": 0,
"stop_loss": 0,
"tp_trigger_by": "UNKNOWN",
"sl_trigger_by": "UNKNOWN",
"trigger_by": "LastPrice"
},
...
{
"user_id": 1301180,
"stop_order_id": "d4g5bf862-b6ee-4eaf-9fda-2d3f3fd9g4j6",
"symbol": "BTCUSDT",
"side": "Sell",
"order_type": "Limit",
"price": 8022,
"qty": 0.005,
"time_in_force": "GoodTillCancel",
"order_status": "Untriggered",
"trigger_price": 16000,
"order_link_id": "",
"created_time": "2020-11-16T09:06:17.000Z",
"updated_time": "2020-11-16T09:06:17.000Z",
"take_profit": 0,
"stop_loss": 0,
"tp_trigger_by": "UNKNOWN",
"sl_trigger_by": "UNKNOWN",
"trigger_by": "LastPrice"
}
],
"time_now": "1606445293.547976",
"rate_limit_status": 599,
"rate_limit_reset_ms": 1606445293545,
"rate_limit": 600
}
實時查詢條件委托。當傳遞參數order_id
或order_link_id
其中任意一個時,將返回單條訂單數據;如果參數order_id
和order_link_id
都不傳遞時,將返回所有未成交的訂單,最多50條。
HTTP 請求
GET
/private/linear/stop-order/search
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
stop_order_id | false | string | 訂單ID |
order_link_id | false | string | 自定義機構ID |
返回參數
參數 | 類型 | 說明 |
---|---|---|
stop_order_id | string | 條件委托訂單ID |
user_id | number | 用戶ID |
symbol | string | 合約類型 |
side | string | 方向 |
order_type | string | 訂單類型 |
price | number | 委托價格 |
qty | number | 委托數量(加密貨幣) |
time_in_force | string | 執行策略 |
order_status | string | 訂單狀態 |
trigger_price | number | 如果stop_order_type為`TrailingProfit`時,為激活價格,否則為觸發價格。 |
base_price | string | 下單時市價 |
order_link_id | string | 機構自定義訂單ID, 最大長度36位,且同一機構下自定義ID不可重復 |
created_time | string | 創建時間 |
updated_time | string | 更新時間 |
take_profit | number | 止盈價格 |
stop_loss | number | 止損價格 |
tp_trigger_by | string | 止盈激活價格類型,默認為LastPrice |
sl_trigger_by | string | 止損激活價格類型,默認為LastPrice |
trigger_by | string | 觸發價格類型. 默認為最新市價 |
reduce_only | bool | 是否平倉單 true-平倉 false-開倉 |
close_on_trigger | bool | 是否平倉委托 true-平倉 false-開倉 |
持倉
獲取持倉(實時)
請求示例
curl https://api-testnet.bybit.com/private/linear/position/list?api_key={api_key}&symbol=BTCUSDT×tamp={timestamp}&sign={sign}"
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="cCrMK2P55002rmQh1z",
api_secret="eTXOcGvu6Ue9MA916oO5ymqbj2UzBfSLKcti"
)
print(session_auth.my_position(
symbol="BTCUSDT"
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": [
{
"user_id": 533285,
"symbol": "XRPUSDT",
"side": "Buy",
"size": 0,
"position_value": 0,
"entry_price": 0,
"liq_price": 0,
"bust_price": 0,
"leverage": 5,
"auto_add_margin": 0,
"is_isolated": true,
"position_margin": 0,
"occ_closing_fee": 0,
"realised_pnl": 0,
"cum_realised_pnl": -16.35115218,
"free_qty": 0,
"tp_sl_mode": "Full",
"unrealised_pnl": 0,
"deleverage_indicator": 0,
"risk_id": 41,
"stop_loss": 0,
"take_profit": 0,
"trailing_stop": 0,
"position_idx": 1,
"mode": "BothSide"
},
{
"user_id": 533285,
"symbol": "XRPUSDT",
"side": "Sell",
"size": 50,
"position_value": 19.58,
"entry_price": 0.3916,
"liq_price": 0.4529,
"bust_price": 0.4568,
"leverage": 6,
"auto_add_margin": 0,
"is_isolated": true,
"position_margin": 3.2633354,
"occ_closing_fee": 0.013704,
"realised_pnl": 0,
"cum_realised_pnl": 0.90620182,
"free_qty": 50,
"tp_sl_mode": "Full",
"unrealised_pnl": 3.395,
"deleverage_indicator": 2,
"risk_id": 41,
"stop_loss": 0.5,
"take_profit": 0.28,
"trailing_stop": 0,
"tp_trigger_by": 1,
"sl_trigger_by": 1,
"position_idx": 2,
"mode": "BothSide"
}
],
"time_now": "1655868796.293226",
"rate_limit_status": 119,
"rate_limit_reset_ms": 1655868796290,
"rate_limit": 120
}
//當不傳參數symbol
的時候,返回結構如下:
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": [
{
"data": {
"user_id": 533285,
"symbol": "10000NFTUSDT",
"side": "Sell",
"size": 0,
"position_value": 0,
"entry_price": 0,
"liq_price": 0,
"bust_price": 0,
"leverage": 10,
"auto_add_margin": 0,
"is_isolated": false,
"position_margin": 0,
"occ_closing_fee": 0,
"realised_pnl": 0,
"cum_realised_pnl": 0,
"free_qty": 0,
"tp_sl_mode": "Full",
"unrealised_pnl": 0,
"deleverage_indicator": 0,
"risk_id": 1,
"stop_loss": 0,
"take_profit": 0,
"trailing_stop": 0,
"position_idx": 2,
"mode": "BothSide"
},
"is_valid": true
},
...
{
"data": {
"user_id": 533285,
"symbol": "10000NFTUSDT",
"side": "Buy",
"size": 0,
"position_value": 0,
"entry_price": 0,
"liq_price": 0,
"bust_price": 0,
"leverage": 10,
"auto_add_margin": 0,
"is_isolated": false,
"position_margin": 0,
"occ_closing_fee": 0,
"realised_pnl": 0,
"cum_realised_pnl": 0,
"free_qty": 0,
"tp_sl_mode": "Full",
"unrealised_pnl": 0,
"deleverage_indicator": 0,
"risk_id": 1,
"stop_loss": 0,
"take_profit": 0,
"trailing_stop": 0,
"position_idx": 1,
"mode": "BothSide"
},
"is_valid": true
}
],
"time_now": "1604302080.356538",
"rate_limit_status": 119,
"rate_limit_reset_ms": 1604302080353,
"rate_limit": 120
}
獲取我的倉位列表。通過該接口可以獲取當前用戶的持倉信息,如持倉數量、賬戶余額等信息
HTTP 請求
GET
/private/linear/position/list
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | false | string | 合約類型 |
返回參數
參數 | 類型 | 說明 |
---|---|---|
user_id | number | 用戶ID |
symbol | string | 合約類型 |
side | string | 方向 |
size | number | 倉位數量 |
position_value | number | 倉位價值 |
entry_price | number | 平均開倉價 |
liq_price | number | 強平價格 |
bust_price | number | 破產價格 |
leverage | number | 逐倉模式下, 值為用戶設置的杠桿;全倉模式下,值為當前風險限額下最大杠桿 |
auto_add_margin | number | 是否 自動追加保證金 |
is_isolated | bool | 是否逐倉,true-逐倉 false-全倉 |
position_margin | number | 倉位保證金 |
occ_closing_fee | number | 預占用平倉手續費 |
realised_pnl | number | 當日已結盈虧 |
cum_realised_pnl | number | 累計已結盈虧 |
free_qty | number | 可平倉位數量(如果您有多頭頭寸,free_qty 為負數。反之亦然) |
tp_sl_mode | string | 止盈止損模式 |
deleverage_indicator | number | 風險指示燈等級(1,2,3,4,5) |
unrealised_pnl | number | 未結盈虧 |
risk_id | integer | 風險限額ID |
take_profit | number | 止盈價格 |
stop_loss | number | 止損價格 |
trailing_stop | number | 追蹤止損(與當前價格的距離) |
position_idx | integer | Position idx, 用於在不同倉位模式下標識倉位: 0-單向持倉 1-雙向持倉Buy 2-雙向持倉Sell |
mode | string | 倉位模式: MergedSingle - 單倉模式 BothSide - 雙倉模式 |
自動追加保證金
請求示例
curl https://api-testnet.bybit.com/private/linear/position/set-auto-add-margin \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSDT","side":"Sell","auto_add_margin":false,"timestamp":{timestamp},"sign":"{sign}"}'
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="cCrMK2P55002rmQh1z",
api_secret="eTXOcGvu6Ue9MA916oO5ymqbj2UzBfSLKcti"
)
print(session_auth.set_auto_add_margin(
symbol="BTCUSDT",
side="Sell",
auto_add_margin=False
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": null,
"time_now": "1586780385.549188",
"rate_limit_status": 74,
"rate_limit_reset_ms": 1586780385547,
"rate_limit": 75
}
設置自動追加保證金。
HTTP 請求
POST
/private/linear/position/set-auto-add-margin
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
side | true | string | 方向 |
auto_add_margin | true | bool | 追加保證金開關 |
position_idx | false | integer | Position idx, 用於在不同倉位模式下標識倉位: 0-單向持倉 1-雙向持倉Buy 2-雙向持倉Sell |
全倉/逐倉切換
請求示例
curl https://api-testnet.bybit.com/private/linear/position/switch-isolated \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSDT","is_isolated":true,"buy_leverage":1,"sell_leverage":1,"timestamp":{timestamp},"sign":"{sign}"}'
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="cCrMK2P55002rmQh1z",
api_secret="eTXOcGvu6Ue9MA916oO5ymqbj2UzBfSLKcti"
)
print(session_auth.cross_isolated_margin_switch(
symbol="BTCUSDT",
is_isolated=True,
buy_leverage=1,
sell_leverage=1
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": null,
"time_now": "1585881597.006026",
"rate_limit_status": 74,
"rate_limit_reset_ms": 1585881597004,
"rate_limit": 75
}
全倉/逐倉切換,從全倉切換至逐倉時需要傳杠桿
HTTP 請求
POST
/private/linear/position/switch-isolated
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
is_isolated | true | bool | 全倉/逐倉, true是逐倉,false是全倉 |
buy_leverage | true | number | 杠桿大於0,小於風險限額對應的杠桿 |
sell_leverage | true | number | 杠桿大於0,小於風險限額對應的杠桿 |
切換倉位模式
請求示例
curl https://api-testnet.bybit.com/private/linear/position/switch-mode \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSDT","mode":"MergedSingle","timestamp":{timestamp},"sign":"{sign}"}'
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="cCrMK2P55002rmQh1z",
api_secret="eTXOcGvu6Ue9MA916oO5ymqbj2UzBfSLKcti"
)
print(session_auth.position_mode_switch(
symbol="BTCUSDT",
mode="MergedSingle"
))
響應示例
{
"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
}
單倉模式下,只能在單方向下持倉
雙倉模式下,可以同時在兩個方向持倉,支持coin
级别切换單倉模式和雙倉模式。
HTTP 請求
POST
/private/linear/position/switch-mode
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | false | string | 合約類型,至少传symbol 和 coin 其中的一个,如果两个都传,将以symbol 为准。 |
coin | false | string | currency alias,至少传symbol 和 coin 其中的一个,如果两个都传,将以symbol 为准。 |
mode | true | string | 倉位模式: MergedSingle - 單倉模式 BothSide - 雙倉模式 |
切換止盈止損模式
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="cCrMK2P55002rmQh1z",
api_secret="eTXOcGvu6Ue9MA916oO5ymqbj2UzBfSLKcti"
)
print(session_auth.full_partial_position_tp_sl_switch(
symbol="BTCUSDT",
tp_sl_mode="Partial"
))
響應示例
{
"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
/private/linear/tpsl/switch-mode
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
tp_sl_mode | true | string | 止盈止損模式 |
返回參數
參數 | 類型 | 說明 |
---|---|---|
tp_sl_mode | string | 止盈止損模式 |
增加/減少保證金
請求示例
curl https://api-testnet.bybit.com \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSDT","side":"Buy","margin":0.01","timestamp":{timestamp},"sign":"{sign}"}'
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="cCrMK2P55002rmQh1z",
api_secret="eTXOcGvu6Ue9MA916oO5ymqbj2UzBfSLKcti"
)
print(session_auth.add_reduce_margin(
symbol="BTCUSDT",
side="Buy",
margin=0.01
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": {
"PositionListResult": {
"user_id": 533285,
"symbol": "XRPUSDT",
"side": "Sell",
"size": 50,
"position_value": 19.58,
"entry_price": 0.3916,
"liq_price": 0.5267,
"bust_price": 0.5307,
"leverage": 10,
"auto_add_margin": 0,
"is_isolated": true,
"position_margin": 6.9550018,
"occ_closing_fee": 0.015921,
"realised_pnl": 0,
"cum_realised_pnl": 0.90620182,
"free_qty": 50,
"tp_sl_mode": "Full",
"unrealised_pnl": 3.475,
"deleverage_indicator": 2,
"risk_id": 41,
"stop_loss": 0.5,
"take_profit": 0.28,
"trailing_stop": 0,
"tp_trigger_by": 1,
"sl_trigger_by": 1,
"position_idx": 2,
"mode": "BothSide"
},
"wallet_balance": 2108.58165689,
"available_balance": 2091.03640109
},
"time_now": "1655870135.180074",
"rate_limit_status": 73,
"rate_limit_reset_ms": 1655870135178,
"rate_limit": 75
}
追加保證金
HTTP 請求
POST
/private/linear/position/add-margin
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
side | true | string | 方向 |
margin | true | number | 增加/減少多少保證金,增加10,減少-10,支持小數後4位 |
position_idx | false | integer | Position idx, 用於在不同倉位模式下標識倉位: 0-單向持倉 1-雙向持倉Buy 2-雙向持倉Sell |
返回參數
參數 | 類型 | 說明 |
---|---|---|
user_id | number | 用戶ID |
symbol | string | 合約類型 |
side | string | 方向 |
size | number | 倉位數量 |
position_value | number | 當前倉位價值 |
entry_price | number | 平均開倉價 |
liq_price | number | 強平價格 |
bust_price | number | 破產價格 |
leverage | number | 逐倉模式下, 值為用戶設置的杠桿;全倉模式下,值為當前風險限額下最大杠桿 |
auto_add_margin | number | 是否 自動追加保證金 |
is_isolated | bool | 是否逐倉 |
position_margin | number | 倉位保證金 |
occ_closing_fee | number | 預占用平倉手續費 |
realised_pnl | number | 當日已結盈虧 |
cum_realised_pnl | number | 累計已結盈虧 |
free_qty | number | 可平倉位數量(如果您有多頭頭寸,free_qty 為負數。反之亦然) |
tp_sl_mode | string | 止盈止損模式 |
unrealised_pnl | number | 未結盈虧 |
deleverage_indicator | number | 風險指示燈等級(1,2,3,4,5) |
risk_id | number | 風險限額ID |
stop_loss | number | 止損價格 |
take_profit | number | 止盈價格 |
trailing_stop | number | 追蹤止損(與當前價格的距離) |
tp_trigger_by | string | 止盈激活價格類型,默認為LastPrice |
sl_trigger_by | string | 止損激活價格類型,默認為LastPrice |
position_idx | integer | Position idx, 用於在不同倉位模式下標識倉位: 0-單向持倉 1-雙向持倉Buy 2-雙向持倉Sell |
mode | string | 倉位模式: MergedSingle - 單倉模式 BothSide - 雙倉模式 |
wallet_balance | number | 錢包余額 |
available_balance | number | 可用余額, 錢包余額 - 倉位保證金 |
修改杠桿
請求示例
curl https://api-testnet.bybit.com/private/linear/position/set-leverage \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSDT","buy_leverage":10,"sell_leverage":10"sign":"{sign}"}'
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="cCrMK2P55002rmQh1z",
api_secret="eTXOcGvu6Ue9MA916oO5ymqbj2UzBfSLKcti"
)
print(session_auth.set_leverage(
symbol="BTCUSDT",
buy_leverage=10,
sell_leverage=10
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": null,
"time_now": "1585881527.650138",
"rate_limit_status": 74,
"rate_limit_reset_ms": 1585881527648,
"rate_limit": 75
}
設置杠桿
HTTP 請求
POST
/private/linear/position/set-leverage
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
buy_leverage | true | number | 杠桿大於0,小於風險限額對應的杠桿 |
sell_leverage | true | number | 杠桿大於0,小於風險限額對應的杠桿 |
設置止盈止損
請求示例
curl https://api-testnet.bybit.com/private/linear/position/trading-stop \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSDT","side":"Buy","take_profit":10,"timestamp":{timestamp},"sign":"{sign}"}'
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="cCrMK2P55002rmQh1z",
api_secret="eTXOcGvu6Ue9MA916oO5ymqbj2UzBfSLKcti"
)
print(session_auth.set_trading_stop(
symbol="BTCUSDT",
side="Buy",
take_profit=10
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": null,
"time_now": "1586780408.193508",
"rate_limit_status": 73,
"rate_limit_reset_ms": 1586780408191,
"rate_limit": 75
}
設置倉位止盈止損、部分止盈止損、追蹤止損。處於partial mode模式,設置部分止盈止損單,不會覆蓋其他部分止盈止損設置
HTTP 請求
POST
/private/linear/position/trading-stop
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
side | true | string | Position side |
take_profit | false | number | 不小於0,如果等於0則是取消止盈(TP) (在partial mode部分模式下無效) |
stop_loss | false | number | 不小於0,如果等於0則是取消止損(SL) (在partial mode部分模式下無效) |
trailing_stop | false | number | 不小於0,如果等於0則是取消追蹤止損(TS) (在partial mode部分模式下無效) |
tp_trigger_by | false | string | 止盈激活價格類型,默認為LastPrice |
sl_trigger_by | false | string | 止損激活價格類型,默認為LastPrice |
sl_size | false | number | 在部分止盈止損模式下,止損合約數量 |
tp_size | false | number | 在部分止盈止損模式下,止盈合約數量 |
position_idx | false | integer | Position idx, 用於在不同倉位模式下標識倉位: 0-單向持倉 1-雙向持倉Buy 2-雙向持倉Sell |
用戶成交記錄
請求示例
curl "https://api-testnet.bybit.com/private/linear/trade/execution/list?api_key={api_key}&symbol=BTCUSDT×tamp={timestamp}&sign={sign}"
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="cCrMK2P55002rmQh1z",
api_secret="eTXOcGvu6Ue9MA916oO5ymqbj2UzBfSLKcti"
)
print(session_auth.user_trade_records(
symbol="BTCUSDT"
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": {
"current_page": 1,
"data": [
{
"order_id": "7369b2f4-52f1-4698-abf7-368e4ba9aefa",
"order_link_id": "",
"side": "Buy",
"symbol": "BTCUSDT",
"exec_id": "9b8216fa-98d7-55c0-b5fa-279db5727996",
"price": 5894
"order_price": 5894,
"order_qty": 0.001,
"order_type": "Limit",
"fee_rate": 0.00075,
"exec_price": 5894,
"exec_type": "Trade",
"exec_qty": 0.001,
"exec_fee": 0.0044205,
"exec_value": 5.894,
"leaves_qty": 0,
"closed_size": 0,
"last_liquidity_ind": "RemovedLiquidity",
"trade_time": 1585547384
"trade_time_ms": 1585547384847
}
]
},
"time_now": "1577480599.097287",
"rate_limit_status": 119,
"rate_limit_reset_ms": 1580885703683,
"rate_limit": 120
}
}
獲取用戶成交記錄,按時間降序排列。
HTTP 請求
GET
/private/linear/trade/execution/list
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
start_time | false | integer | 開始時間戳(毫秒) 限定在當前時間的七天內,如果想了解時間範圍更長的信息,請咨詢客服下載數據。 |
end_time | false | integer | 結束時間戳(毫秒) 限定在當前時間的七天內, 如果想了解時間範圍更長的信息,請咨詢客服下載數據。 |
exec_type | false | string | 交易類型 |
page | false | integer | 頁碼.默認取第一頁,最大50 |
limit | false | integer | 每頁數量, 最大200. 默認每頁50條,最多200條每頁 |
返回參數
參數 | 類型 | 說明 |
---|---|---|
order_id | string | 訂單ID |
order_link_id | string | 機構自定義訂單ID, 最大長度36位,且同一機構下自定義ID不可重復 |
side | string | 方向 |
symbol | string | 合約類型 |
exec_id | string | 成交ID |
price | number | 訂單價格 |
order_price | number | 訂單價格 |
order_qty | number | 訂單數量 |
order_type | string | 交易記錄類型 |
fee_rate | number | 手續費率 |
exec_price | number | 成交價格 |
exec_type | string | 執行類型 |
exec_qty | number | 成交數量 |
exec_fee | number | 交易手續費 |
exec_value | number | 成交價值 |
leaves_qty | number | 剩余委托數量 |
closed_size | number | 平倉委托對應的平倉大小 |
last_liquidity_ind | string | 只有當exec_type 字段類型為Trade 、AdlTrade 、BustTrade 時有效 |
trade_time | number | 秒級交易時間戳 |
trade_time_ms | number | 毫秒級交易時間戳 |
用戶曆史成交記錄
請求示例
curl "https://api-testnet.bybit.com/private/linear/trade/execution/history-list?api_key={api_key}&symbol=BTCUSDT×tamp={timestamp}&sign={sign}"
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="cCrMK2P55002rmQh1z",
api_secret="eTXOcGvu6Ue9MA916oO5ymqbj2UzBfSLKcti"
)
print(session_auth.extended_user_trade_records(
symbol="BTCUSDT"
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": {
"page_token": "OVFyd2RLQ051UDhlZXNGa1RRNWEwM0FNWWZLdk9LVS95RnIzbThKa3EzUVJpc0ZiNGt2Z2NzdWxJb2h6QTZ3MHBZdmRnNlZSWFpKY0h3V1RpY0ZqcER5RlZNbGRjbGh4N2VYdXpZcUduZm9lWkFsNjFnVTJrLzdYSy9TNC9BcjhsRlRNY3NWM0x1MFdrQ05hSlFObW8yUjdpZXZyRHd3MWlvTzdmb0tWdmFwSEhqQUs0MG4wSXlsV1VZTlpWWVpla08vVGYzRWJEbVJhY2t0RmE3TDhKMCtuRnZ2ZDFuVmZQZXB6SWNGVitiZDlmSFNkazRZb1hlcXRPYzdLS040OGJVMnpER0Mzd1lFcURDTCs3SC9pRGl0UW9JZC9xSGZlNENUSW1hVHBGcUhSVlNVYzBRL3dtVVhmRXNTN2NkOHZGVGU5NThlWlRGZGp0UWxaWnhybzJmcis5UTZuYWpXTFBtVVYrQlo1VkVNPQ==",
"data": [
{
"order_id": "ad263e18-ce2f-4e7c-9077-5db8d2186051",
"order_link_id": "",
"side": "Sell",
"symbol": "BTCUSDT",
"exec_id": "43514fa8-8948-5649-9854-704bae563c16",
"price": 20284,
"order_price": 20284,
"order_qty": 0.32,
"order_type": "Market",
"fee_rate": 0.0006,
"exec_price": 21348.5,
"exec_type": "Trade",
"exec_qty": 0.32,
"exec_fee": 4.098912,
"exec_value": 6831.52,
"leaves_qty": 0,
"closed_size": 0.32,
"last_liquidity_ind": "RemovedLiquidity",
"trade_time": 1656316742,
"trade_time_ms": 1656316742722
}
]
},
"time_now": "1651078431.113746",
"rate_limit_status": 117,
"rate_limit_reset_ms": 1651078431074,
"rate_limit": 120
}
獲取用戶成交記錄,按時間降序排列。
HTTP 請求
GET
/private/linear/trade/execution/history-list
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
start_time | false | integer | 開始時間戳(毫秒) 限定在當前時間的2年內,如果想了解時間範圍更長的信息,請咨詢客服下載數據。 |
end_time | false | integer | 結束時間戳(毫秒) 限定在當前時間的2年內, 如果想了解時間範圍更長的信息,請咨詢客服下載數據。 |
exec_type | false | string | 交易類型 |
page_token | false | string | 默認情況下,獲取第一頁數據。如果要獲取第二頁數據,需要將第一頁返回的page_token作為入參。 |
limit | false | integer | 每頁數量, 最大100. 默認每頁100條,最多100條每頁 |
返回參數
參數 | 類型 | 說明 |
---|---|---|
page_token | string | 默認情況下,獲取第一頁數據。如果要獲取第二頁數據,需要將第一頁返回的page_token作為入參。 |
data | ArrayList | |
order_id | string | 訂單ID |
order_link_id | string | 機構自定義訂單ID, 最大長度36位,且同一機構下自定義ID不可重復 |
side | string | 方向 |
symbol | string | 合約類型 |
exec_id | string | 成交ID |
price | number | 訂單價格 |
order_price | number | 訂單價格 |
order_qty | number | 訂單數量 |
order_type | string | 交易記錄類型 |
fee_rate | number | 手續費率 |
exec_price | number | 成交價格 |
exec_type | string | 執行類型 |
exec_qty | number | 成交數量 |
exec_fee | number | 交易手續費 |
exec_value | number | 成交價值 |
leaves_qty | number | 剩余委托數量 |
closed_size | number | 平倉委托對應的平倉大小 |
last_liquidity_ind | string | 只有當exec_type 字段類型為Trade 、AdlTrade 、BustTrade 時有效 |
trade_time | number | 秒級交易時間戳 |
trade_time_ms | number | 交易時間 |
平倉盈虧
請求示例
curl https://api-testnet.bybit.com/private/linear/trade/closed-pnl/list?api_key={api_key}&symbol=BTCUSDT×tamp={timestamp}&sign={sign}
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="cCrMK2P55002rmQh1z",
api_secret="eTXOcGvu6Ue9MA916oO5ymqbj2UzBfSLKcti"
)
print(session_auth.closed_profit_and_loss(
symbol="BTCUSDT"
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": {
"current_page": 1,
"data": [
{
"id": 1710,
"user_id": 160815,
"symbol": "BTCUSDT",
"order_id": "e6a11e08-6dd0-404e-bea7-dc22b7ab0228",
"side": "Buy",
"qty": 0.5,
"order_price": 999999,
"order_type": "Market",
"exec_type": "Trade",
"closed_size": 0.5,
"cum_entry_value": 3000,
"avg_entry_price": 6000,
"cum_exit_value": 3000.5,
"avg_exit_price": 6001,
"closed_pnl": -5.000375,
"fill_count": 1,
"leverage": 100,
"created_at": 1577480599
}
]
},
"time_now": "1577480599.097287",
"rate_limit_status": 119,
"rate_limit_reset_ms": 1580885703683,
"rate_limit": 120
}
獲取用戶平倉記錄,按時間降序排列。
HTTP 請求
GET
/private/linear/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 | Order ID of the closing order |
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 | 創建時間 |
風險限額
查詢風險限額表
請求示例
curl "https://api-testnet.bybit.com/public/linear/risk-limit?symbol=BTCUSDT"
from pybit import usdt_perpetual
session_unauth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com"
)
print(session_unauth.get_risk_limit(
symbol="BTCUSDT"
))
響應示例
{
"ret_code":0,
"ret_msg":"OK",
"ext_code":"",
"ext_info":"",
"result":[
{
"id":1,
"symbol":"BTCUSDT",
"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":"BTCUSDT",
"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
/public/linear/risk-limit
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | 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-testnet.bybit.com/private/linear/position/set-risk \
-H "Content-Type: application/json" \
-d '{"api_key":"{api_key}","symbol":"BTCUSDT","risk_id":2,"timestamp":{timestamp},"sign":"{sign}"}'
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="cCrMK2P55002rmQh1z",
api_secret="eTXOcGvu6Ue9MA916oO5ymqbj2UzBfSLKcti"
)
print(session_auth.set_risk_limit(
symbol="BTCUSDT",
side="Buy",
risk_id=1
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": {
"risk_id": 2
},
"time_now": "1609839125.563609",
"rate_limit_status": 73,
"rate_limit_reset_ms": 1609839125560,
"rate_limit": 75
}
設置風險限額。
HTTP 請求
POST
/private/linear/position/set-risk
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
side | true | string | 方向 |
risk_id | true | integer | 風險限額ID |
position_idx | false | integer | Position idx, 用於在不同倉位模式下標識倉位: 0-單向持倉 1-雙向持倉Buy 2-雙向持倉Sell |
返回參數
參數 | 類型 | 說明 |
---|---|---|
risk_id | number | 風險限額ID |
資金費率
查詢預測資金費率和資金費用
請求示例
curl "https://api-testnet.bybit.com/private/linear/funding/predicted-funding?api_key={api_key}&symbol=BTCUSDT×tamp={timestamp}&sign={sign}"
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="cCrMK2P55002rmQh1z",
api_secret="eTXOcGvu6Ue9MA916oO5ymqbj2UzBfSLKcti"
)
print(session_auth.predicted_funding_rate(
symbol="BTCUSDT"
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": {
"predicted_funding_rate": -0.00375,
"predicted_funding_fee": 0.13081256
},
"time_now": "1587035697.424492",
"rate_limit_status": 119,
"rate_limit_reset_ms": 1587035697422,
"rate_limit": 120
}
查詢預測資金費率和資金費用。
HTTP 請求
GET
/private/linear/funding/predicted-funding
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
返回參數
參數 | 類型 | 說明 |
---|---|---|
predicted_funding_rate | number | 預測資金費率 |
predicted_funding_fee | number | 預測資金費用 |
查詢上個周期資金費用結算信息
請求示例
curl "https://api-testnet.bybit.com/private/linear/funding/prev-funding?api_key={api_key}&symbolt=BTCUSDT×tamp={timestamp}&sign={sign}"
from pybit import usdt_perpetual
session_auth = usdt_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com",
api_key="cCrMK2P55002rmQh1z",
api_secret="eTXOcGvu6Ue9MA916oO5ymqbj2UzBfSLKcti"
)
print(session_auth.my_last_funding_fee(
symbol="BTCUSDT"
))
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": {
"symbol": "BTCUSDT",
"side": "Buy",
"size": 3.13,
"funding_rate": 0.0001,
"exec_fee": 1.868923,
"exec_time": "2020-04-13T08:00:00.000Z"
},
"time_now": "1586780352.867171",
"rate_limit_status": 119,
"rate_limit_reset_ms": 1586780352864,
"rate_limit": 120
}
UTC時間每天0點、8點、16點進行資金費用結算
當前周期的資金費用結算是根據上個周期的資金費率來進行結算
比如16點結算時是按照8點產生的資金費率來進行結算,而16點產生的資金費率則會在第二天0點結算時使用
HTTP 請求
GET
/private/linear/funding/prev-funding
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|---|---|---|
symbol | true | string | 合約類型 |
返回參數
參數 | 類型 | 說明 |
---|---|---|
symbol | string | 合約類型 |
side | string | 執行資金費率時的用戶倉位方向 |
size | number | 執行資金費率時的用戶倉位數量 |
funding_rate | number | 資金費率 |
exec_fee | number | 交易手續費 |
exec_time | string | 交易時間 |
APIKey信息
流動性貢獻分
錢包接口
錢包相關接口需要認證。
獲取錢包余額
資金記錄
提幣記錄
資產兌換記錄
通用數據接口
通用數據接口不需要鑒權。
服務器時間
請求示例
curl https://api-testnet.bybit.com/v2/public/time
from pybit import inverse_perpetual
session_unauth = inverse_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com"
)
print(session_unauth.server_time())
響應示例
{
"ret_code": 0,
"ret_msg": "OK",
"ext_code": "",
"ext_info": "",
"result": {},
"time_now": "1577444332.192859"
}
獲取Bybit服務器時間
HTTP 請求
GET
/v2/public/time
請求參數
參數 | 是否必須 | 類型 | 說明 |
---|
公告
請求示例
curl https://api-testnet.bybit.com/v2/public/announcement
from pybit import inverse_perpetual
session_unauth = inverse_perpetual.HTTP(
endpoint="https://api-testnet.bybit.com"
)
print(session_unauth.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頻率限制。 我們不建議您在這些限制的邊緣運行您的應用程序,以防異常的網絡活動導致意外違規。
-
GET
&DELETE
方法 (共享):- 連續 2 分鐘內每秒不超過 50 個請求
- 連續 5 秒內每秒不超過 70 個請求
-
POST
方法:- 連續 2 分鐘內每秒不超過 20 個請求
- 連續 5 秒內每秒不超過 50 個請求
此表顯示了根據您使用的 API 的不同 IP 頻率限制數。
IP 頻率限制 | API | Path |
---|---|---|
2mins 50/s; 5s 70/s |
||
反向永續 | /v2 | |
反向交割 | /futures | |
USDT永續 | /public, /private | |
賬戶資產 | /asset | |
2mins 50/s; 5s 70/s |
||
現貨 | /spot | |
2mins 50/s; 5s 70/s |
||
USDC Options | /option | |
USDC Perpetual | /perpetual |
違反限制後,您的 IP 將被禁止一段時間(通常為 30 分鐘)。 持續違反限制將導致永久禁止。 我們不能撤銷永久禁令或縮短臨時禁令。
賬戶頻率限製
Bybit基於每分鐘的滾動時間窗口來做頻率限製,並且是按賬戶(uid)和交易對(symbol)來做劃分限製,每次請求API響應中都會包含如下字段:
"rate_limit_status": 119,
"rate_limit_reset_ms": 1572114055663,
"rate_limit": 120
rate_limit_status
- 該接口當前時間窗口剩余可用請求數rate_limit
- 該接口當前頻率限製上限rate_limit_reset_ms
- 如果您已超過該接口當前窗口頻率限製,該字段表示下個可用時間窗口的時間戳(毫秒),即什麽時候可以恢復訪問;如果您未超過該接口當前窗口頻率限製,該字段表示返回的是當前服務器時間(毫秒).
接口頻率限製表
頻率限製 | 請求路徑 | 消耗 |
---|---|---|
100/min | /private/linear/order/create | 1 / request |
/private/linear/order/replace | 1 / request | |
/private/linear/order/cancel | 1 / request | |
/private/linear/order/cancel-all | 10 / request | |
/private/linear/stop-order/create | 1 / request | |
/private/linear/stop-order/replace | 1 / request | |
/private/linear/stop-order/cancel | 1 / request | |
/private/linear/stop-order/cancel-all | 10 / request | |
75/min | /private/linear/position/set-leverage | 1 / request |
/private/linear/position/switch-isolated | 1 / request | |
/private/linear/tpsl/switch-mode | 1 / request | |
/private/linear/position/set-auto-add-margin | 1 / request | |
/private/linear/position/trading-stop | 1 / request | |
/private/linear/position/add-margin | 1 / request | |
120/min | /private/linear/position/list | 1 / request |
/private/linear/trade/closed-pnl/list | 1 / request | |
/private/linear/trade/execution/list | 1 / request | |
/private/linear/trade/execution/history-list | 1 / request | |
600/min | /private/linear/order/list | 1 / request |
/private/linear/order/search | 1 / request | |
/private/linear/stop-order/list | 1 / request | |
/private/linear/stop-order/search | 1 / request | |
120/min | /private/linear/funding/prev-funding | 1 / request |
/private/linear/funding/predicted-funding | 1 / request |
下單限製
每個交易對可以持有的訂單數量上限:
- 活動單: 500
- 條件單: 10
如何提高頻率限製
- 請先閱讀如何滿足提高頻率限製條件
- 請發送郵件到 api@bybit.com,我們會在 1-4 個工作日內答復。郵件內容必須包含以下內容:
- 您的姓名和公司名稱和簡介
- 您的bybit 賬號uid或註冊郵箱手機號,以及您要申請提頻的交易對
- 您上個月的交易量(吃單/掛單)並提供截圖
- 簡單介紹您的交易策略和為什麽需要更高限頻
- 如果可以,請提供您的成交記錄csv文檔
Bybit流動性貢獻系統
Bybit 使用報單成交率
和 流動性貢獻打分
來評價用戶對改善bybit可執行流動性作出的貢獻。
不同symbol的貢獻分
和報單成交率
是獨立計算的。
報單成交率
平臺上每天提交超過2000
個報單的賬戶,需要保持7天
的報單成交率高於最小報單成交率門檻值
,違反此規則將會被降低頻率或禁用 API。
API 交易用戶最小報單成交率門檻
7
日內API 交易用戶最小報單成交率門檻 0.1%
報單成交率
報單成交率
: 定義為 一段時間段內,用戶已成交報單數量占該用戶已提交報單數量的比例已提交報單
: 是任何已成功發送到平臺的委托已成交報單
: 是成交了任何數量的委托報單成交率 = ( 一段時間內用戶的已成交報單數量 / 一段時間內已提交報單數量)
報單成交率舉例
A用戶: 已成交報單數量 = 2 已提交報單數量 = 8 報單成交率 = 2 / 8 = 25%
B用戶: 已成交報單數量 = 1 已提交報單數量 = 1 報單成交率 = 1 / 1 = 100%
API 交易用戶提高頻率的條件
平臺會根據API用戶近7
日掛單對平臺流動性貢獻分
的最低值,對滿足條件的用戶進行提高頻率上限的獎勵
流動性貢獻分 | Order頻率限製 |
---|---|
20-100 | 800次 / 每分鐘 |
10-20 | 600次 / 每分鐘 |
5-10 | 400次 / 每分鐘 |
2-5 | 200次 / 每分鐘 |
<2 | 100次 / 每分鐘 |
流動性貢獻打分
流動性貢獻打分 = 有效價格掛單自占比 * 有效價格掛單量平臺占比 * 100
名詞解釋
有效價格掛單
有效價格掛單
: 定義為在距離盤口中間價較近的規定範圍內的掛單被定義為有效價格掛單.最佳競價中間價
: (最佳競買價 + 最佳競賣價) 的均值最佳競價中間價 = 1/2*(最佳競買價 + 最佳競賣價)
有效價格範圍
[最佳競價中間價 - 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/bybit-exchange/pybit/blob/master/pybit/_http_manager.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服務器地址:
- 測試網公共topic地址: wss://stream-testnet.bybit.com/realtime_public
- 測試網私有topic地址: wss://stream-testnet.bybit.com/realtime_private
- 主網公共topic地址(請根據您的網絡情況選擇以下任意一個地址使用):
wss://stream.bybit.com/realtime_public
wss://stream.bytick.com/realtime_public - 主網私有topic地址(請根據您的網絡情況選擇以下任意一個地址使用):
wss://stream.bybit.com/realtime_private
wss://stream.bytick.com/realtime_private
驗證示例如右側代碼區所示
心跳包/Ping
如何發送心跳包
ws.send('{"op":"ping"}');
響應示例
{
"success": true,
"ret_msg": "pong",
"conn_id": "036e5d21-804c-4447-a92d-b65a44d00700"
"request": {
"op": "ping",
"args": null
}
}
訂閱方式
Websocket訂閱方式
直接訂閱
// Subscribing to the trade data for ETHUSDT
ws.send('{"op":"subscribe","args":["trade.ETHUSDT"]}')
訂閱多個topic
// Example: Subscribing to the trade data for BTCUSD and XRPUSD
ws.send('{"op":"subscribe","args":["trade.BTCUSDT","trade.XRPUSDT"]}')
建立連接後, 可以通過發送JSON請求來訂閱topic. 其中binary為false表示不進行壓縮傳輸,為true時表示以GZIP格式進行壓縮,請求格式如下:
ws.send('{"op": "subscribe", "args": ["topic.filter"]}');
您也可以同時訂閱多個感興趣的topic,訂閱方式如下
ws.send('{"op": "subscribe", "args": ["topic.filter", "topic.filter"]}');
Websocket取消訂閱方式
取消訂閱
// Unsubscribing from the trade data for ETHUSDT
ws.send('{"op":"unsubscribe","args":["trade.ETHUSDT"]}')
您可以在不斷開連接的前提下動態調整您要訂閱的信息,取消訂閱方式如下:
ws.send('{"op": "unsubscribe", "args": ["topic.filter", "topic.filter"]}');
推送周期
如果topic名中包含一個推送周期
,如100ms
, 那麽表明這個topic是每隔100ms
推送一次.否則, 這個topic只要有消息就會推送
.
訂閱結果
訂閱推送
{
"success": true,
"ret_msg": "",
"conn_id":"e0e10eee-4eff-4d21-881e-a0c55c25e2da"
"request": {
"op": "subscribe",
"args": [
"candle.BTCUSDT.1m"
]
}
}
每個topic訂閱請求都會有對應的響應,您可以根據返回結果判斷是否訂閱成功。
公共 Topics
orderBook25檔
請求訂閱
ws.send('{"op": "subscribe", "args": ["orderBookL2_25.BTCUSDT"]}');
from time import sleep
from pybit import usdt_perpetual
ws_linear = usdt_perpetual.WebSocket(
test=True,
ping_interval=30, # the default is 30
ping_timeout=10, # the default is 10
domain="bybit" # the default is "bybit"
)
def handle_message(msg):
print(msg)
# To subscribe to multiple symbols,
# pass a list: ["BTCUSDT", "ETHUSDT"]
ws_linear.orderbook_25_stream(
handle_message, "XRPUSDT"
)
while True:
sleep(1)
快照推送示例 - 連接建立成功後首次推送
{
"topic": "orderBookL2_25.BTCUSDT",
"type": "snapshot",
"data": {
"order_book":[
{
"price": "2999.00",
"symbol": "BTCUSDT",
"id": 29990000,
"side": "Buy",
"size": 9
},
{
"price": "3001.00",
"symbol": "BTCUSDT",
"id": 30010000,
"side": "Sell",
"size": 10
}
]
},
"cross_seq": 11518,
"timestamp_e6": 1555647164875373
}
增量推送示例 - 快照數據推送後,推送的增量數據
{
"topic": "orderBookL2_25.BTCUSDT",
"type": "delta",
"data": {
"delete": [
{
"price": "3001.00",
"symbol": "BTCUSDT",
"id": 30010000,
"side": "Sell"
}
],
"update": [
{
"price": "2999.00",
"symbol": "BTCUSDT",
"id": 29990000,
"side": "Buy",
"size": 8
}
],
"insert": [
{
"price": "2998.00",
"symbol": "BTCUSDT",
"id": 29980000,
"side": "Buy",
"size": 8
}
],
"transactTimeE6": 0
},
"cross_seq": 11519,
"timestamp_e6": 1555647221331673
}
獲取25檔orderbook數據.
訂閱成功後, 會立即得到一個當前快照包的推送信息. orderbook數據按訂單價格升序排列, 從最低價格的買單到最高價格的賣單.
快照包之後,每當orderbook發生變化,websocket都會推送這些變化的增量數據.
推送頻率:20ms
返回參數
參數 | 類型 | 說明 |
---|---|---|
price | string | 委托價格 |
symbol | string | 合約類型 |
side | string | 方向 |
size | number | 倉位數量 |
orderBook200檔
請求訂閱
ws.send('{"op": "subscribe", "args": ["orderBook_200.100ms.BTCUSDT"]}');
from time import sleep
from pybit import usdt_perpetual
ws_linear = usdt_perpetual.WebSocket(
test=True,
ping_interval=30, # the default is 30
ping_timeout=10, # the default is 10
domain="bybit" # the default is "bybit"
)
def handle_message(msg):
print(msg)
# To subscribe to multiple symbols,
# pass a list: ["BTCUSDT", "ETHUSDT"]
ws_linear.orderbook_200_stream(
handle_message, "EOSUSDT"
)
while True:
sleep(1)
快照推送示例 - 連接建立成功後首次推送
{
"topic": "orderBook_200.100ms.BTCUSDT",
"type": "snapshot",
"data": {
"order_book":[
{
"price": "2999.00",
"symbol": "BTCUSDT",
"id": 29990000,
"side": "Buy",
"size": 9
},
{
"price": "3001.00",
"symbol": "BTCUSDT",
"id": 30010000,
"side": "Sell",
"size": 10
}
]
},
"cross_seq": 11518,
"timestamp_e6": 1555647164875373
}
增量推送示例 - 快照數據推送後,推送的增量數據
{
"topic": "orderBook_200.100ms.BTCUSDT",
"type": "delta",
"data": {
"delete": [
{
"price": "3001.00",
"symbol": "BTCUSDT",
"id": 30010000,
"side": "Sell"
}
],
"update": [
{
"price": "2999.00",
"symbol": "BTCUSDT",
"id": 29990000,
"side": "Buy",
"size": 8
}
],
"insert": [
{
"price": "2998.00",
"symbol": "BTCUSDT",
"id": 29980000,
"side": "Buy",
"size": 8
}
],
"transactTimeE6": 0
},
"cross_seq": 11519,
"timestamp_e6": 1555647221331673
}
獲取200檔orderbook數據.
訂閱成功後, 會立即得到一個當前快照包的推送信息. orderbook數據按訂單價格升序排序, 從最低價格的買單到最高價格的賣單.
快照包之後,每當orderbook發生變化,websocket將會繼續推送這些增量數據.
推送頻率:100ms
返回參數
參數 | 類型 | 說明 |
---|---|---|
price | string | 委托價格 |
symbol | string | 合約類型 |
side | string | 方向 |
size | number | 倉位數量 |
平臺成交
請求訂閱
ws.send('{"op": "subscribe", "args": ["trade.BTCUSDT"]}')
from time import sleep
from pybit import usdt_perpetual
ws_linear = usdt_perpetual.WebSocket(
test=True,
ping_interval=30, # the default is 30
ping_timeout=10, # the default is 10
domain="bybit" # the default is "bybit"
)
def handle_message(msg):
print(msg)
# To subscribe to multiple symbols,
# pass a list: ["BTCUSDT", "ETHUSDT"]
ws_linear.trade_stream(
handle_message, "EOSUSDT"
)
while True:
sleep(1)
響應示例
{
"topic": "trade.BTCUSDT",
"data": [
{
"symbol": "BTCUSDT",
"tick_direction": "PlusTick",
"price": 8098,
"size": 328,
"timestamp":"2020-03-30T02:21:06.000Z",
"trade_time_ms":"1585534866418",
"side":"Sell",
"trade_id":"01e79e28-d1f4-59ac-b079-ca909606d91a"
}
]
}
推送頻率:100ms
返回參數
參數 | 類型 | 說明 |
---|---|---|
symbol | string | 合約類型 |
tick_direction | string | 價格變化方向 |
price | number | 委托價格 |
size | number | 倉位數量 |
timestamp | string | UTC 時間 |
trade_time_ms | string | 毫秒時間戳 |
side | string | taker的買賣方向 |
trade_id | string | 交易ID |
行情
請求訂閱
ws.send('{"op": "subscribe", "args": ["instrument_info.100ms.BTCUSDT"]}')
from time import sleep
from pybit import usdt_perpetual
ws_linear = usdt_perpetual.WebSocket(
test=True,
ping_interval=30, # the default is 30
ping_timeout=10, # the default is 10
domain="bybit" # the default is "bybit"
)
def handle_message(msg):
print(msg)
# To subscribe to multiple symbols,
# pass a list: ["BTCUSDT", "ETHUSDT"]
ws_linear.instrument_info_stream(
handle_message, "BTCUSDT"
)
while True:
sleep(1)
快照推送示例 - 連接建立成功後首次推送
{
"topic": "instrument_info.100ms.BTCUSDT",
"type": "snapshot",
"data": {
"id": 1,
"symbol": "BTCUSDT",
"last_price_e4": "322955000",
"last_price": "322955000",
"last_tick_direction": "ZeroPlusTick",
"prev_price_24h_e4": "331960000",
"prev_price_24h": "331960000",
"price_24h_pcnt_e6": "-27126",
"high_price_24h_e4": "333120000",
"high_price_24h": "333120000",
"low_price_24h_e4": "315940000",
"low_price_24h": "315940000",
"prev_price_1h_e4": "319490000",
"prev_price_1h": "319490000",
"price_1h_pcnt_e6": "10845",
"mark_price_e4": "323133000",
"mark_price": "323133000",
"index_price_e4": "323106800",
"index_price": "323106800",
"open_interest_e8": "1430451600000",
"total_turnover_e8": "5297934997553700000",
"turnover_24h_e8": "243143978993099700",
"total_volume_e8": "1184936057899924",
"volume_24h_e8": "7511238100000",
"funding_rate_e6": "100",
"predicted_funding_rate_e6": "-15",
"cross_seq": "6501157651",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "2021-07-14T09:32:10.000Z",
"next_funding_time": "2021-07-14T16:00:00Z",
"count_down_hour": 7,
"funding_rate_interval": 8,
"bid1_price_e4": "322950000",
"ask1_price_e4": "322955000"
"bid1_price": "322950000",
"ask1_price_e4": "322955000",
"ask1_price": "322955000",
},
"cross_seq": "6501157734",
"timestamp_e6": "1626255131908287"
}
增量推送示例 - 快照數據推送後,推送的增量數據
{
"topic": "instrument_info.100ms.BTCUSDT",
"type": "delta",
"data": {
"update": [
{
"id": 1,
"symbol": "BTCUSDT",
"last_price_e4": "322950000",
"last_price": "322950000",
"price_24h_pcnt_e6": "-27141",
"price_1h_pcnt_e6": "10829",
"index_price_e4": "323100000",
"index_price": "323100000",
"total_turnover_e8": "5297935000783200000",
"turnover_24h_e8": "243143982222599700",
"total_volume_e8": "1184936057999924",
"volume_24h_e8": "7511238200000",
"cross_seq": "6501157735",
"created_at": "1970-01-01T00:00:00.000Z",
"updated_at": "2021-07-14T09:32:12.000Z"
}
]
},
"cross_seq": "6501157736",
"timestamp_e6": "1626255132104671"
}
獲取合約的最新數據.
Push frequency: 100ms
返回參數
參數 | 類型 | 說明 |
---|---|---|
symbol | string | 合約類型 |
last_price_e4 | string | (已廢棄)最新成交價 * 10^4 |
last_price | string | 最新成交價 |
last_tick_direction | string | 價格變化方向 |
prev_price_24h_e4 | string | (已廢棄)24小時前的整點市價 * 10^4 |
prev_price_24h | string | 24小時前的整點市價 |
price_24h_pcnt_e6 | string | 市價相對24h變化百分比 * 10^4 |
high_price_24h_e4 | string | (已廢棄)最近 24 小時最高價 * 10^4 |
high_price_24h | string | 最近 24 小時最高價 |
low_price_24h_e4 | string | (已廢棄)最近 24 小時最低價 * 10^4 |
low_price_24h | string | 最近 24 小時最低價 |
prev_price_1h_e4 | string | (已廢棄)1小時前的整點市價 * 10^4 |
prev_price_1h | string | 1小時前的整點市價 |
price_1h_pcnt_e6 | string | 市價相對1小時前變化百分比 * 10^6 |
mark_price_e4 | string | (已廢棄)標記價格 * 10^4 |
mark_price | string | 標記價格 |
index_price_e4 | string | (已廢棄)指數價格 * 10^4 |
index_price | string | 指數價格 |
open_interest_e8 | string | 未平倉合約數量* 10^8. 不是實時更新,最慢更新時間是一分鐘 |
total_turnover_e8 | string | 總成交金額 * 10^8 |
turnover_24h_e8 | string | 24小時成交金額 * 10^8 |
total_volume_e8 | string | 總交易量 * 10^8 |
volume_24h_e8 | string | 最近 24 小時成交量 * 10^8 |
funding_rate_e6 | string | 資金費率 * 10^6 |
predicted_funding_rate_e6 | string | 預測資金費率 * 10^6 |
cross_seq | string | 撮合版本號 |
created_at | string | 創建時間 |
updated_at | string | 更新時間 |
next_funding_time | string | 下次結算資金費用時間 |
countdown_hour | number | 結算資金費用剩余時間 |
funding_rate_interval | number | 資金費率收取時間間隔,單位小時 |
bid1_price_e4 | string | (已廢棄)最佳買單價格 * 10^4 |
ask1_price_e4 | string | (已廢棄)最佳賣單價格 * 10^4 |
bid1_price | string | 最佳買單價格 |
ask1_price | string | 最佳賣單價格 |
K線
請求訂閱
ws.send('{"op":"subscribe","args":["candle.1.BTCUSDT"]}')
from time import sleep
from pybit import usdt_perpetual
ws_linear = usdt_perpetual.WebSocket(
test=True,
ping_interval=30, # the default is 30
ping_timeout=10, # the default is 10
domain="bybit" # the default is "bybit"
)
def handle_message(msg):
print(msg)
# To subscribe to multiple symbols,
# pass a list: ["BTCUSDT", "ETHUSDT"]
# pass an interval
ws_linear.kline_stream(
handle_message, "DOTUSDT", "D"
)
while True:
sleep(1)
響應示例
{
"topic": "candle.1.BTCUSDT",
"data": [
{
"start": 1655956380,
"end": 1655956440,
"period": "1",
"open": 20261,
"close": 20257.5,
"high": 20261,
"low": 20256,
"volume": "25.396",
"turnover": "514491.9815",
"confirm": False,
"cross_seq": 13135807020,
"timestamp": 1655956431377798
}
],
"timestamp_e6": 1655956431377798
}
目前所支持的周期:
- 1 3 5 15 30
- 60 120 240 360 720
- D
- W
- M
推送頻率:1-60s
返回參數
參數 | 類型 | 說明 |
---|---|---|
start | integer | 開始時間戳(秒) |
end | integer | 結束時間戳(秒) |
open | number | 開始價格 |
close | number | 結束價格 |
high | number | 最高價格 |
low | number | 最低價格 |
volume | string | 交易量 |
turnover | string | 成交金額 |
confirm | bool | 是否確認 |
cross_seq | integer | 撮合版本號 |
timestamp | integer | 數據發送時間(秒級)* 10^6 |
平臺強平推送
請求訂閱
ws.send('{"op":"subscribe","args":["liquidation.XRPUSDT"]}')
from time import sleep
from pybit import usdt_perpetual
ws_linear = usdt_perpetual.WebSocket(
test=True,
ping_interval=30, # the default is 30
ping_timeout=10, # the default is 10
domain="bybit" # the default is "bybit"
)
def handle_message(msg):
print(msg)
# To subscribe to multiple symbols,
# pass a list: ["BTCUSDT", "ETHUSDT"]
ws_linear.liquidation_stream(
handle_message, "DOTUSDT"
)
while True:
sleep(1)
響應示例
{
"topic":"liquidation.XRPUSDT",
"data": {
"symbol":"XRPUSDT",
"side":"Sell",
"price":"3384.15",
"qty":"0.057",
"time":1631608881954
}
}
查詢平臺強平推送.
推送頻率:實時的
返回參數
參數 | 類型 | 說明 |
---|---|---|
symbol | string | 合約類型 |
side | string | 被強平倉位的方向 |
price | string | 破產價格 |
qty | string | 交易數量 |
time | number | 毫秒時間戳 |
私有 Topics
持倉
請求訂閱
ws.send('{"op": "subscribe", "args": ["position"]}')
from time import sleep
from pybit import usdt_perpetual
ws_linear = usdt_perpetual.WebSocket(
test=True,
api_key="your api key",
api_secret="your api secret",
ping_interval=30, # the default is 30
ping_timeout=10, # the default is 10
domain="bybit" # the default is "bybit"
)
def handle_message(msg):
print(msg)
ws_linear.position_stream(
handle_message
)
while True:
sleep(1)
響應示例
{
"topic": "position",
"action": "update",
"data": [
{
"user_id": "533285",
"symbol": "BTCUSDT",
"size": 0.01,
"side": "Buy",
"position_value": 202.195,
"entry_price": 20219.5,
"liq_price": 0.5,
"bust_price": 0.5,
"leverage": 99,
"order_margin": 0,
"position_margin": 1959.6383,
"occ_closing_fee": 3e-06,
"take_profit": 25000,
"tp_trigger_by": "LastPrice",
"stop_loss": 18000,
"sl_trigger_by": "LastPrice",
"trailing_stop": 0,
"realised_pnl": -4.189762,
"auto_add_margin": "0",
"cum_realised_pnl": -13.640625,
"position_status": "Normal",
"position_id": "0",
"position_seq": "92962",
"adl_rank_indicator": "2",
"free_qty": 0.01,
"tp_sl_mode": "Full",
"risk_id": "1",
"isolated": false,
"mode": "BothSide",
"position_idx": "1"
}
]
}
獲取我的倉位列表。通過該接口可以獲取當前用戶的持倉信息,如持倉數量、賬戶余額等信息
返回參數
參數 | 類型 | 說明 |
---|---|---|
user_id | number | 用戶ID |
symbol | string | 合約類型 |
size | number | 倉位數量 |
side | string | 方向 |
position_value | number | 倉位價值 |
entry_price | number | 平均入場價 |
liq_price | number | 強平價格 |
bust_price | number | 破產價格 |
leverage | number | 逐倉模式下, 值為用戶設置的杠桿;全倉模式下,值為當前風險限額下最大杠桿 |
order_margin | number | 委托預占用保證金 |
position_margin | number | 倉位保證金 |
occ_closing_fee | number | 倉位占用的平倉手續費 |
take_profit | number | 止盈價格 |
tp_trigger_by | string | 止盈激活價格類型,默認為LastPrice |
stop_loss | number | 止損價格 |
sl_trigger_by | string | 止損激活價格類型,默認為LastPrice |
trailing_stop | number | 追蹤止損(與當前價格的距離) |
realised_pnl | number | 當日已結盈虧 |
auto_add_margin | number | 是否 自動追加保證金 |
cum_realised_pnl | number | 累計已結盈虧 |
position_status | string | 倉位狀態,正常,強平,減倉 |
position_seq | string | 倉位變化版本號 |
free_qty | number | 可平倉位數量(如果您有多頭頭寸,free_qty 為負數。反之亦然) |
tp_sl_mode | string | 止盈止損模式 Full or Partial |
risk_id | string | 風險限額ID |
isolated | bool | 是否逐倉,true-逐倉 false-全倉 |
mode | string | 倉位模式, MergedSingle or BothSide |
position_idx | string | Position idx, 用於在不同倉位模式下標識倉位: 0-單向持倉 1-雙向持倉Buy 2-雙向持倉Sell |
個人成交
請求訂閱
ws.send('{"op": "subscribe", "args": ["execution"]}')
from time import sleep
from pybit import usdt_perpetual
ws_linear = usdt_perpetual.WebSocket(
test=True,
api_key="your api key",
api_secret="your api secret",
ping_interval=30, # the default is 30
ping_timeout=10, # the default is 10
domain="bybit" # the default is "bybit"
)
def handle_message(msg):
print(msg)
ws_linear.execution_stream(
handle_message
)
while True:
sleep(1)
響應示例
{
"topic": "execution",
"data": [
{
"symbol": "BTCUSDT",
"side": "Sell",
"order_id": "xxxxxxxx-xxxx-xxxx-9a8f-4a973eb5c418",
"exec_id": "xxxxxxxx-xxxx-xxxx-8b66-c3d2fcd352f6",
"order_link_id": "",
"price": 11527.5,
"order_qty": 0.001,
"exec_type": "Trade",
"exec_qty": 0.001,
"exec_fee": 0.00864563,
"leaves_qty": 0,
"is_maker": false,
"trade_time": "2020-08-12T21:16:18.142746Z"
}
]
}
獲取用戶成交記錄,按時間升序排列。
返回參數
參數 | 類型 | 說明 |
---|---|---|
symbol | string | 合約類型 |
side | string | 方向 |
order_id | string | 訂單ID |
exec_id | string | 成交ID |
order_link_id | string | 機構自定義訂單ID, 最大長度36位,且同一機構下自定義ID不可重復 |
price | number | 成交價格 |
order_qty | number | 訂單數量 |
exec_type | string | 交易類型(不能為"Funding") |
exec_qty | number | 成交數量 |
exec_fee | number | 交易手續費 |
leaves_qty | number | 剩余委托數量 |
is_maker | boolean | 是否是maker |
trade_time | string | 交易時間 |
活動單
請求訂閱
ws.send('{"op": "subscribe", "args": ["order"]}')
from time import sleep
from pybit import usdt_perpetual
ws_linear = usdt_perpetual.WebSocket(
test=True,
api_key="your api key",
api_secret="your api secret",
ping_interval=30, # the default is 30
ping_timeout=10, # the default is 10
domain="bybit" # the default is "bybit"
)
def handle_message(msg):
print(msg)
ws_linear.order_stream(
handle_message
)
while True:
sleep(1)
響應示例
{
"topic": "order",
"action": "",
"data": [
{
"order_id": "19a8cbbe-e077-42c7-bdba-505c76619ea5",
"order_link_id": "Bactive004",
"symbol": "BTCUSDT",
"side": "Sell",
"order_type": "Market",
"price": 19185.5,
"qty": 0.01,
"leaves_qty": 0,
"last_exec_price": 20196,
"cum_exec_qty": 0.01,
"cum_exec_value": 201.95999,
"cum_exec_fee": 0.121176,
"time_in_force": "ImmediateOrCancel",
"create_type": "CreateByUser",
"cancel_type": "UNKNOWN",
"order_status": "Filled",
"take_profit": 0,
"stop_loss": 0,
"trailing_stop": 0,
"create_time": "2022-06-23T04:08:47.956636888Z",
"update_time": "2022-06-23T04:08:47.960908408Z",
"reduce_only": true,
"close_on_trigger": false,
"position_idx": "1"
}
]
}
返回參數
參數 | 類型 | 說明 |
---|---|---|
order_id | string | 訂單ID |
order_link_id | string | 機構自定義訂單ID, 最大長度36位,且同一機構下自定義ID不可重復 |
symbol | string | 合約類型 |
side | string | 方向 |
order_type | string | 委托單價格類型 |
price | number | 委托價格 |
qty | number | 成交數量 |
leaves_qty | number | 剩余委托數量 |
last_exec_price | number | 最近一次成交價格 |
cum_exec_qty | number | 累計成交數量 |
cum_exec_value | string | 累計成交價值 |
cum_exec_fee | string | 累計成交手續費 |
time_in_force | string | 執行策略 |
create_type | string | 下單操作的觸發場景 |
cancel_type | string | 取消操作的觸發場景 |
order_status | string | 訂單狀態 |
take_profit | number | 止盈價格 |
stop_loss | number | 止損價格 |
trailing_stop | number | 追蹤止損(與當前價格的距離) |
create_time | string | order_status 為New 時的時間戳 |
update_time | string | 更新時間 |
reduce_only | bool | 只減倉 |
close_on_trigger | bool | 觸發後平倉. 如果下平倉單,請設置為true ,避免因為保證金不足而導致下單失敗 |
position_idx | string | Position idx, 用於在不同倉位模式下標識倉位: 0-單向持倉 1-雙向持倉Buy 2-雙向持倉Sell |
條件單
請求訂閱
ws.send('{"op": "subscribe", "args": ["stop_order"]}')
from time import sleep
from pybit import usdt_perpetual
ws_linear = usdt_perpetual.WebSocket(
test=True,
api_key="your api key",
api_secret="your api secret",
ping_interval=30, # the default is 30
ping_timeout=10, # the default is 10
domain="bybit" # the default is "bybit"
)
def handle_message(msg):
print(msg)
ws_linear.stop_order_stream(
handle_message
)
while True:
sleep(1)
響應示例
{
"topic": "stop_order",
"data": [
{
"stop_order_id": "559bba2c-0152-4557-84f6-63dc6ab78463",
"order_link_id": "",
"user_id": "533285",
"symbol": "BTCUSDT",
"side": "Sell",
"order_type": "Market",
"price": 0,
"qty": 0.01,
"time_in_force": "ImmediateOrCancel",
"create_type": "CreateByTakeProfit",
"cancel_type": "UNKNOWN",
"order_status": "Untriggered",
"stop_order_type": "TakeProfit",
"tp_trigger_by": "UNKNOWN",
"trigger_price": 25000,
"create_time": "2022-06-23T04:06:55.402188346Z",
"update_time": "2022-06-23T04:08:47.960950878Z",
"reduce_only": true,
"close_on_trigger": true,
"position_idx": "1"
}
]
}
返回參數
參數 | 類型 | 說明 |
---|---|---|
stop_order_id | string | 條件委托訂單ID |
order_link_id | string | 機構自定義訂單ID, 最大長度36位,且同一機構下自定義ID不可重復 |
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 | 訂單狀態 |
stop_order_type | string | 委托單價格類型 |
tp_trigger_by | string | 觸發價格類型. 默認為最新市價 |
trigger_price | number | 如果stop_order_type為`TrailingProfit`時,為激活價格,否則為觸發價格。 |
create_time | string | order_status 為New 時的時間戳 |
update_time | string | 更新時間 |
reduce_only | bool | 只減倉 |
close_on_trigger | bool | 觸發後平倉. 如果下平倉單,請設置為true ,避免因為保證金不足而導致下單失敗 |
position_idx | string | Position idx, 用於在不同倉位模式下標識倉位: 0-單向持倉 1-雙向持倉Buy 2-雙向持倉Sell |
錢包
請求訂閱
ws.send('{"op": "subscribe", "args": ["wallet"]}')
from time import sleep
from pybit import usdt_perpetual
ws_linear = usdt_perpetual.WebSocket(
test=True,
api_key="your api key",
api_secret="your api secret",
ping_interval=30, # the default is 30
ping_timeout=10, # the default is 10
domain="bybit" # the default is "bybit"
)
def handle_message(msg):
print(msg)
ws_linear.wallet_stream(
handle_message
)
while True:
sleep(1)
響應示例
{
"topic": "wallet",
"data": [
{
"wallet_balance":429.80713,
"available_balance":429.67322
}
]
}
返回參數
參數 | 類型 | 說明 |
---|---|---|
wallet_balance | number | 錢包余額 |
available_balance | number | 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 |
歸檔數據
歷史行情
您可以在這裏獲取Bybit 歷史行情數據。
歷史資金費率無法通過API獲得。但是,您可以使用"導出"按鈕獲取此數據的CSV文件 here.
枚舉定義
以下是各個接口請求參數或返回結果中定義的枚舉。
Side (side
)
Buy
Sell
Symbol (symbol
)
BTCUSDT
ETHUSDT
- ...
您可以根據Query Symbol接口獲取所有交易中的symbol。
Currency (currency
/coin
)
USDT
Contract Type(contract_type
)
InversePerpetual
LinearPerpetual
InverseFutures
Contract Status(status
)
Trading
Settling
Closed
Wallet fund type (wallet_fund_type
/ type
)
Deposit
入金Withdraw
提幣RealisedPNL
已結盈虧Commission
傭金Refund
系統返還(如提幣審核拒絕返還、用戶提幣取消返還)Prize
贈金ExchangeOrderWithdraw
兌出ExchangeOrderDeposit
兌入
Withdraw status (status
)
ToBeConfirmed
待(用戶郵件)確認UnderReview
審核中Pending
待打款Success
打款成功CancelByUser
用戶取消Reject
審核拒絕Expire
提幣請求過期
Order type (order_type
)
Limit
限價單Market
市價單
Quantity (qty
)
- BTCUSDT 開倉最大值 100,平倉最大值 100
- ETHUSDT 開倉最大值 1000,平倉最大值 1000
- LINKUSDT 開倉最大值 10000,平倉最大值 10000
- LTCUSDT 開倉最大值 2000,平倉最大值 2000
- XTZUSDT 開倉最大值 20000,平倉最大值 20000
- BCHUSDT 開倉最大值 600,平倉最大值 600
- ADAUSDT 開倉最大值 240000,平倉最大值 240000
- DOTUSDT 開倉最大值 15000,平倉最大值 15000
- UNIUSDT 開倉最大值 10000,平倉最大值 10000
- XRPUSDT 開倉最大值 1000000,平倉最大值 1000000
- XEMUSDT 開倉最大值 250000,平倉最大值 250000
- SUSHIUSDT 開倉最大值 10000,平倉最大值 10000
- AAVEUSDT 開倉最大值 500,平倉最大值 500
- DOGEUSDT 開倉最大值 200000,平倉最大值 200000
- MATICUSDT 開倉最大值 70000,平倉最大值 70000
- EOSUSDT 開倉最大值 50000,平倉最大值 50000
- ETCUSDT 開倉最大值 2000,平倉最大值 2000
- BNBUSDT 開倉最大值 1500,平倉最大值 1500
- FILUSDT 開倉最大值 2000,平倉最大值 2000
- SOLUSDT 開倉最大值 3000,平倉最大值 3000
Price (price
)
- 活動單
- 必須是
tick_size
的整數倍- 當前symbol信息(如
tick_size
),可以通過交易對接口接口獲得。
- 當前symbol信息(如
- 必須小於一百萬 (
1000000
) - 如果用戶沒有未平倉,則價格必須大於市場價格的10%
- 如, 若當前市場價(last price) 為 10314, 那麽下單價格的最小值為 1031.5。
- 偽代碼(假設價格是0.5的增量):
IF price > (last_price * 0.1) // 發送訂單 ELSE // 不會發送訂單,因為價格將不被系統接受
- 如果已持有倉位,那麽價格必須高於強平價格
- 如, 若多倉的強平價格為 5176.5 那麽價格最小為 5177. 在做空的情況下,價格必須低於強平價格。
- 必須是
- 條件單
- 必須大於等於
1
- 必須大於等於
Time in force (time_in_force
)
GoodTillCancel
一直有效至取消ImmediateOrCancel
立即成交或取消FillOrKill
完全成交或取消PostOnly
被動委托
Trigger price type (trigger_by
)
LastPrice
最新市價IndexPrice
指數價格MarkPrice
標記價格
Order (order
)
排序方向
desc
(default)asc
Order status (order_status
/stop_order_status
)
Created
New
Rejected
PartiallyFilled
Filled
PendingCancel
- 撮合引擎收到取消指令但不一定會被成功取消Cancelled
Only for conditional orders:
Untriggered
- 等待市價觸發條件單Deactivated
- 條件單觸發前被取消Triggered
- 市價已觸發條件單Active
- 條件單觸發成功且下單成功
Cancel type (cancel_type
)
CancelByUser
用戶取消CancelByReduceOnly
CancelByPrepareLiq
,CancelAllBeforeLiq
- 倉位進入強平導致取消訂單CancelByPrepareAdl
,CancelAllBeforeAdl
- 自動減倉導致取消訂單CancelByAdmin
CancelByTpSlTsClear
- 止盈止損單被取消CancelByPzSideCh
- 該訂單在觸發止盈止損後被取消
Create type (create_type
)
CreateByUser
CreateByClosing
CreateByAdminClosing
CreateByStopOrder
CreateByTakeProfit
CreateByStopLoss
CreateByPartialTakeProfit
CreateByPartialStopLoss
CreateByTrailingStop
CreateByLiq
- Created by partial liquidationCreateByAdl_PassThrough
- Created by ADLCreateByTakeOver_PassThrough
- Created by liquidation takeover
Exec type (exec_type
)
Trade
普通交易AdlTrade
自動減倉Funding
資金費率BustTrade
強製平倉Settle
交割結算
Liquidity type (last_liquidity_ind
)
AddedLiquidity
maker成交RemovedLiquidity
taker成交
Tick direction type (tick_direction
)
表示價格的波動,相對於上一筆交易是漲還是跌
PlusTick
漲ZeroPlusTick
跟上一次持平,上一次跟上上一次是漲MinusTick
跌ZeroMinusTick
跟上一次持平,上一次跟上上一次是跌
TP/SL mode (tp_sl_mode
)
止盈止損模式
Full
倉位止盈止損Partial
部分止盈止損
Kline interval (interval
)
1
- 1 minute3
- 3 minutes5
- 5 minutes15
- 15 minutes30
- 30 minutes60
- 1 hour120
- 2 hours240
- 4 hours360
- 6 hours720
- 12 hoursD
- 1 dayW
- 1 weekM
- 1 month
Stop order type (stop_order_type
)
TakeProfit
StopLoss
TrailingStop
Stop
錯誤碼
Bybit使用以下HTTP Code和錯誤碼:
HTTP Code | 含義 |
---|---|
200 | 請求有效 |
403 | 拒絕訪問 -- 您請求的次數過多(請參閱IP 頻率限制) |
404 | 訪問路徑不存在 |
10000
處理請求時發生未知錯誤
10001
請檢查傳遞的值是否符合要求。例如,如果是浮點數,確保它符合tick_size
和qty_step
10002
請求過期,請檢查 timestamp
和 recv_window
10003
無效的apikey
10004
簽名錯誤
10005
apikey權限不足
10006
請求次數超限。 請參閱API 频率限制
10007
您的請求中沒有api_key
10010
請求ip不匹配
10016
服務異常或請求超時
10017
請求路徑不存在或請求方法錯誤
10018
超過ip頻率限製
10020
不支持此操作
10021
此請求的時間戳不在recvWindow之外。此請求的時間戳比服務器時間提前1000毫秒。請查證你的本地時間和服務器時間
10022
此請求的簽名無效
11000
在參數中發現非法字符。在參數'%s'中發現非法字符; 合法範圍是「%s」
11001
無法處理請求。請再試一次
11002
未發送強製性參數,該參數為空/空或格式錯誤。強製參數'%s'未發送,為空/空或格式錯誤。
11003
發送了未知參數。
11004
並非所有發送的參數都被讀取
11005
參數為空
11006
不需要時已發送參數
11011
精度超過為此資產定義的最大值
11012
交易對沒有掛單
11014
不需要時發送了TimeInForce參數
11015
無效timeInForce
11016
無效訂單類型
11017
無效買賣方向
11018
新的客戶訂單ID為空
11019
新的客戶訂單ID為空
11020
無效時間間隔
11021
無效交易對
11025
該listenKey不存在。
11027
查詢間隔太大。
11028
可選參數組合無效。
11030
發送的參數為無效數據。
11030
發送的參數為無效數據。
11031
Insufficient balance.
11032
訂單價格過高
11033
訂單價格過低,請查詢Broker Info信息
11034
訂單價格精度過長,請查詢Broker Info信息
11035
訂單quantity過大
11036
訂單quantity小於最小值
11037
訂單quantity精度過長
11038
訂單價格超出允許範圍
11039
訂單已經被執行
11040
交易金額小於最小值
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_id
和order_link_id
必須二選一
30001
order_link_id
重復
30003
qty
太小
30004
qty
太大
30005
price
太大
30006
No last_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
訂單已取消
30038
No mark_price.
30039
Applied leverage has exceeded the permitted range.
30040
Any adjustments made will trigger immediate liquidation.
30041
持倉不存在
30042
錢包余額不足
30043
由於倉位清算,不允許操作
30044
由於ADL,不允許操作
30045
持倉處於其他不可操作狀態
30046
There are multiple untriggered stop orders.
30047
Inconsistent p:o.
30048
Applied leverage has exceeded the permitted range.
30049
可用余額不足
30050
任何調整都將立即引發清算
30051
杠桿設置非法,因為它將超出您的風險限額
30052
杠桿設置非法,不能小於1
30053
max_affordable_position_margin <= 0, position:%s
30054
保證金設置不合法
30055
Available Balance is not enough to add margin.
30056
The position is in cross_margin.
30057
請求的合約數量超過風險限額
30063
不滿足只減倉的條件
30066
Set auto add margin fail.
30067
可用余額不足
30068
退出價值必須大於0
30074
無法創建條件單,由base_price
和stop_px
比較可知預期漲至stop_px
時觸發條件單,而此時LastPrice
(或IndexPrice
、MarkPrice
,由trigger_by
指定)已經達到或高於stop_px
30075
無法創建條件單,由base_price
和stop_px
比較可知預期跌至stop_px
時觸發條件單,而此時LastPrice
(或IndexPrice
、MarkPrice
,由trigger_by
指定)已經達到或低於stop_px
30076
Replace params invalid. Order not modified.
30077
Submission of order will result in the breach of user's limit according to open interest.
30078
Contracts not in trading status
30079
The position is about to trigger a liquidation
30080
Price cannot be lower than current Buy liq_price
30081
Price cannot be greater than current sell liq_price
30082
Position exists No switching of position mode allowed
30083
No change in position pattern
30084
No changes to the full position-by-position model
30085
Margin unchanged
30086
With a commissioned order, switching position mode is not allowed
30087
Symbol does not support two-way open positions
30088
Symbol does not exist
30089
Duplicate order number
30090
Risk limit info does not exist
30091
Illegal orders (meaning that the order os|cs is not legal in various scenarios)
30092
No position is not allowed to set margin
30093
No net position
30094
Withdrawal of an order before a liquidation is not concluded
30095
Full positions are not allowed to modify leverage
31003
User account banned
32006
The available balance is not sufficient to cover the handling fee.
32008
Insufficient available margin.
32009
Any adjustments made will trigger immediate liquidation.
32010
Risk limit cannot be adjusted due to insufficient available margin.
32011
Risk limit cannot be adjusted as the current/expected position value held exceeds the revised risk limit.
33004
apikey已過期
34010
Wallet Balance is less than zero.
34015
Cannot set new leverage as it is equal to the previous leverage.
34017
Current leverage is less than 1X
34018
Cannot set leverage lower than 1X
34019
Cannot set leverage greater than maxLeverage.
34020
Cannot set leverage which is same to the previous leverage.
34021
Cannot cancel occ_calc_data, the data is wrong.
34022
Cannot set leverage which will cause available balance less than 0.
34023
The request was canceled because the origin request has been handled.
34024
The request does not include add margin data.
34025
Increase in leverage has failed.
34026
風險限額沒有變化
34027
Cannot adjust leverage.
32009
Any adjustments made will trigger immediate liquidation.
34028
ReCalc Funding Fee Failed.
34030
positionInfo not sync with current exec_rpt.
34033
Realized PNL already rotated.
34032
PositionSeq not match on Withdraw.
34035
Add margin not modified.
34036
Set leverage not modified.
34037
Set custom fee rate not modified.
34038
Update deleverage indicator not modified.
34039
Update position status not modified.
34040
Set TP/SL/TS not modified.
35014
37001
Both side positions tp_sl_mode is equal.
37002
Same tp_sl_mode.
37003
This position has at least one stop-link order and cannot switch between stop-loss and take-profit modes.
37004
This position has at least one stop-loss link order and cannot switch between stop-loss and take-profit modes
37005
This position has at least one trailing stop or trailing stop link order and cannot be switched to take profit and stop loss mode
37006
Conditional or limit orders carry a take profit and stop loss parameter
37007
Insufficient number of positions left to set Stop Loss and Take Profit
37008
Active orders are not allowed to modify the price and quantity when they also modify the trigger price
37009
Activity orders are not allowed to modify the stop-loss and take-profit settings if the order is partially filled
37010
In Full Take Profit Stop Loss mode, it is not allowed to modify the Stop Profit Stop Loss size
37011
In partial SL mode, SL is set to more than 20. Set SL/TP exceeds the limit oldTpNum+oldStNum+newNum=(2 the num is tp+sl)
37012
Stop loss price needs to be greater than base price.
37013
Stop loss price needs to be less than base price.
38101
Replacement of order will result in the breach of user's limit according to open interest.
130001
position_idx
無效。請檢查您的持倉模式
130002
錢包數據為空
130003
倉位狀態不正常
130004
活動單數量超過上限
130005
委托單價格超過允許範圍
130006
委托單的數量超過允許範圍
130007
委托單價格超過允許範圍
130008
委托單類型無效
130009
合約數量低於最低限製
130010
委托單不存在或超時而無法操作
130011
倉位在強平過程中而無法操作
130012
倉位在減倉過程中而無法操作
130013
追蹤單的追蹤值無效
130014
條件單的觸發價格無效
130015
條件單的預期方向和基礎價格無效
130016
無效的條件單類型,不能更改價格
130017
無效的條件單類型,不能更改數量
130018
無效的追蹤值
130019
無效的條件單類型,無法更改觸發價格
130020
無效的條件單類型,無法更改追蹤值
130021
下單成本不足
130024
不能給無倉位設置止盈止損
130025
低於10%基準價格
130026
價格太高
130027
給買方向的倉位設置的價格應該高於基準價格
130028
給賣方向的倉位設置的價格應該在基準價格和強平價之間
130029
給買方向的倉位設置的價格應該在基準價格和強平價之間
130030
給賣方向的倉位設置的價格應該低於基準價格
130032
無效的訂單狀態,不能取消或執行觸發
130033
條件單數量大於限製10
130034
無法更改止盈/止損單
130035
太頻繁取消單子,請稍後重試
130037
訂單已經被取消了
130040
倉位將被強平
130041
可用余額小於0
130049
可用余額不足
130050
相應的調整將會觸發強平
130051
由於風險限額,無法設置杠桿
130052
低於最低限製,無法設置杠桿
130056
倉位處於全倉中
130057
倉位size為0
130058
不能設置保證金低於最低倉位成本
130059
不能設置倉位開倉限額大於品種的限額
130060
自動追加保證金未更改
130061
沒有改變費用,無效的請求
130062
不能設置開倉限額低於當前買倉位價值
130063
不能設置開倉限額低於當前賣倉位價值
130064
僅支持USDT
130074
需要價格上升,但觸發價低於當前價
130075
需要價格下降,但觸發價高於當前價
130076
參數無效
130077
入金請求已處理過
130078
出金請求已處理過
130079
結算當日盈虧請求已處理過
130101
無法解析的創建委托單請求
130102
無法解析的取消委托單請求
130103
無法解析的取消所有委托單請求
130104
無法解析的強平請求
130105
無法解析的預下單請求
130106
無法解析的查詢委托單請求
130107
無法解析的觸發激活請求
130108
無法解析的追加保證金請求
130109
無法解析的計算倉位盈虧請求
130110
無法解析的查詢資產請求
130111
無法解析的查詢倉位列表請求
130112
無法解析的設置自動追加保證金請求
130113
無法解析的設置費用請求
130114
無法解析的調杠桿請求
130115
無法解析的設置保證金請求
130116
無法解析的設置開倉限額請求
130117
無法解析的設置止盈止損請求
130118
無法解析的結算資金費用請求
130119
無法解析的設置倉位模式請求
130120
無法解析的入金請求
130121
無法解析的出金請求
130122
無法解析的結算當日盈虧請求
130123
無法解析的AdlExecute請求
130124
無法解析的adl clean請求
130125
平倉數量大於持倉數量
130126
盤口沒有掛單
130023
本訂單成交後會觸發強平
130127
止盈止損及追蹤止損沒有修改
130137
Please check to see if your existing position and open orders (together, your pz_value
) will exceed your risk limit (risk_limit
). You can change your risk limit with the Set Risk limit endpoint.
130145
平倉單size大於倉位可平量
130149
止盈止損設置失敗,價格校驗未通過
130150
操作過快,請稍後重試
130151
切換失敗,請先取消當前止盈止損設置
130152
切換失敗,請先取消當前止盈止損設置
130153
切換失敗,請先取消當前止盈止損設置
130154
切換失敗,請先取消活動單的止盈止損設置
130155
剩余可設置止盈止損的數量不足
130156
不允許修改活動單價格或數量的同事修改止盈止損觸發價格
130157
修改失敗,此活動單已部分成交情況下,不能修改止盈止損價格
130158
倉位止盈止損模式下,不允許修改止盈止損數量
130159
部分止盈止損模式下,止盈止損設置超過20條
134026
風險限額未修改
132011
調整失敗,當前倉位大小超出風險限額
130090
風險限額無效