내 주문 체결 정보 실시간 수신
- 내 주문의 접수, 거부, 체결 , 취소, 수정 이벤트 실시간 수신.
- 비교 : 구버전에서는 Execution 에도 OrderStatus 정보 제공되었으나, V5 에서는 Order 로만 OrderStatus 정보 제공됨.
Order . subscribe 구문.
{
"op": "subscribe",
"args": [
"order"
]
}
args 에 order 기록하면 내가 주문한 종목이 현물, 선물, 인버스, 옵션 모두 실시간 수신 가능.
그룹별로 요청 하려면 order.spot , order.linear, order.inverse, order.option 기록.
Order 실시간 수신데이터 형식.
{
"id": "5923240c6880ab-c59f-420b-9adb-3639adc9dd90",
"topic": "order",
"creationTime": 1672364262474,
"data": [
{
"symbol": "ETH-30DEC22-1400-C",
"orderId": "5cf98598-39a7-459e-97bf-76ca765ee020",
"side": "Sell",
"orderType": "Market",
"cancelType": "UNKNOWN",
"price": "72.5",
"qty": "1",
"orderIv": "",
"timeInForce": "IOC",
"orderStatus": "Filled",
"orderLinkId": "",
"lastPriceOnCreated": "",
"reduceOnly": false,
"leavesQty": "",
"leavesValue": "",
"cumExecQty": "1",
"cumExecValue": "75",
"avgPrice": "75",
"blockTradeId": "",
"positionIdx": 0,
"cumExecFee": "0.358635",
"createdTime": "1672364262444",
"updatedTime": "1672364262457",
"rejectReason": "EC_NoError",
"stopOrderType": "",
"tpslMode": "",
"triggerPrice": "",
"takeProfit": "",
"stopLoss": "",
"tpTriggerBy": "",
"slTriggerBy": "",
"tpLimitPrice": "",
"slLimitPrice": "",
"triggerDirection": 0,
"triggerBy": "",
"closeOnTrigger": false,
"category": "option",
"placeType": "price",
"smpType": "None",
"smpGroup": 0,
"smpOrderId": "",
"feeCurrency": ""
}
]
}
데이터 항목
Parameter | Type | Comments |
id | string | Message ID |
topic | string | Topic name |
creationTime | number | Data created timestamp (ms) |
data | array | Object |
> category | string | Product type
|
> orderId | string | Order ID |
> orderLinkId | string | User customised order ID |
> isLeverage | string | Whether to borrow. Unified spot only. 0: false, 1: true. . Classic spot is not supported, always 0 |
> blockTradeId | string | Block trade ID |
> symbol | string | Symbol name |
> price | string | Order price |
> qty | string | Order qty |
> side | string | Side. Buy,Sell |
> positionIdx | integer | Position index. Used to identify positions in different position modes |
> orderStatus | string | Order status |
> cancelType | string | Cancel type |
> rejectReason | string | Reject reason. Classic spot is not supported |
> avgPrice | string | Average filled price. If unfilled, it is ""
|
> leavesQty | string | The remaining qty not executed. Classic spot is not supported |
> leavesValue | string | The remaining value not executed. Classic spot is not supported |
> cumExecQty | string | Cumulative executed order qty |
> cumExecValue | string | Cumulative executed order value |
> cumExecFee | string | Cumulative executed trading fee. For normal spot, it is the execution fee per single fill |
> feeCurrency | string | Trading fee currency for Spot only. Please understand Spot trading fee currency here |
> timeInForce | string | Time in force |
> orderType | string | Order type. Market,Limit. For TP/SL order, it means the order type after triggered |
> stopOrderType | string | Stop order type |
> orderIv | string | Implied volatility |
> triggerPrice | string | Trigger price. If stopOrderType=TrailingStop, it is activate price. Otherwise, it is trigger price |
> takeProfit | string | Take profit price |
> stopLoss | string | Stop loss price |
> tpslMode | string | TP/SL mode, Full: entire position for TP/SL. Partial: partial position tp/sl. Spot does not have this field, and Option returns always "" |
> tpLimitPrice | string | The limit order price when take profit price is triggered |
> slLimitPrice | string | The limit order price when stop loss price is triggered |
> tpTriggerBy | string | The price type to trigger take profit |
> slTriggerBy | string | The price type to trigger stop loss |
> triggerDirection | integer | Trigger direction. 1: rise, 2: fall |
> triggerBy | string | The price type of trigger price |
> lastPriceOnCreated | string | Last price when place the order |
> reduceOnly | boolean | Reduce only. true means reduce position size |
> closeOnTrigger | boolean | Close on trigger. What is a close on trigger order? |
> placeType | string | Place type, option used. iv, price |
> smpType | string | SMP execution type |
> smpGroup | integer | Smp group ID. If the UID has no group, it is 0 by default |
> smpOrderId | string | The counterparty's orderID which triggers this SMP execution |
> createdTime | string | Order created timestamp (ms) |
> updatedTime | string | Order updated timestamp (ms) |
orderStaus 상세
orderStatus
- Created order has been accepted by the system but not yet put through the matching engine
- New order has been placed successfully
- Rejected
- PartiallyFilled
- PartiallyFilledCanceled Only spot has this order status
- Filled
- Cancelled In derivatives, orders with this status may have an executed qty
- Untriggered
- Triggered
- Deactivated
- Active order has been triggered and the new active order has been successfully placed. Is the final state of a successful conditional order
Execution . subscribe 구문
{
"op": "subscribe",
"args": [
"execution"
]
}
args 에 executiuon 기록하면 내가 주문한 종목이 현물, 선물, 인버스, 옵션 모두 실시간 수신 가능.
그룹별로 요청 하려면 execution.spot , execution.linear, execution.inverse, execution.option 기록.
VC++ 코드 구현예.
/*
2023.10.26. api v5
subscribe 구문.
{
"op": "subscribe",
"args": [
"execution"
]
}
args에 기록가능한 것.
전종목그룹 요청시 : execution
그룹별 요청시: execution.spot , execution.linear, execution.inverse, execution.option
인자 : Symbol* 종목 1개단위로 요청안되므로 사용하지 않음.
*/
int CCyWebSocketBybit_Spot::Subscribe_Execution_MyOrder(CCyD_CyFinSymbol::Symbol* p_symbol, int sub_unsub)
{
std::string str_data;
if (sub_unsub == 1) {
str_data = "{\"op\": \"subscribe\", \"args\": [ \"execution.spot\"]}";
if (0 < m_CCyWebSocket_Secure.send_websocket(str_data)) { // 구독성공.
Regi_Symbol(p_symbol, 1);
}
}
else if (sub_unsub == 0) {
str_data = "{\"op\": \"unsubscribe\", \"args\": [ \"execution.spot\"],\"req_id\":\"customised_id\"}";
if (m_CCyWebSocket_Secure.send_websocket(str_data)) { // 구독해지 성공.
Regi_Symbol(p_symbol, 0);
}
}
else {
return -1;
}
return 1;
}
Execution 실시간 수신데이터 형식.
{
"id": "592324803b2785-26fa-4214-9963-bdd4727f07be",
"topic": "execution",
"creationTime": 1672364174455,
"data": [
{
"category": "linear",
"symbol": "XRPUSDT",
"execFee": "0.005061",
"execId": "7e2ae69c-4edf-5800-a352-893d52b446aa",
"execPrice": "0.3374",
"execQty": "25",
"execType": "Trade",
"execValue": "8.435",
"isMaker": false,
"feeRate": "0.0006",
"tradeIv": "",
"markIv": "",
"blockTradeId": "",
"markPrice": "0.3391",
"indexPrice": "",
"underlyingPrice": "",
"leavesQty": "0",
"orderId": "f6e324ff-99c2-4e89-9739-3086e47f9381",
"orderLinkId": "",
"orderPrice": "0.3207",
"orderQty": "25",
"orderType": "Market",
"stopOrderType": "UNKNOWN",
"side": "Sell",
"execTime": "1672364174443",
"isLeverage": "0",
"closedSize": "",
"seq": 4688002127
}
]
}
Execution 데이터 항목
Parameter | Type | Comments |
id | string | Message ID |
topic | string | Topic name |
creationTime | number | Data created timestamp (ms) |
data | array | Object |
> category | string | Product type
|
> symbol | string | Symbol name |
> isLeverage | string | Whether to borrow. Unified spot only. 0: false, 1: true. . Classic spot is not supported, always 0 |
> orderId | string | Order ID |
> orderLinkId | string | User customized order ID |
> side | string | Side. Buy,Sell |
> orderPrice | string | Order price. Classic spot is not supported |
> orderQty | string | Order qty. Classic spot is not supported |
> leavesQty | string | The remaining qty not executed. Classic spot is not supported |
> orderType | string | Order type. Market,Limit. Classic spot is not supported |
> stopOrderType | string | Stop order type. If the order is not stop order, any type is not returned. Classic spot is not supported |
> execFee | string | Executed trading fee. You can get spot fee currency instruction here Classic spot is not supported |
> execId | string | Execution ID |
> execPrice | string | Execution price |
> execQty | string | Execution qty |
> execType | string | Executed type. Classic spot is not supported |
> execValue | string | Executed order value. Classic spot is not supported |
> execTime | string | Executed timestamp(ms) |
> isMaker | boolean | Is maker order. true: maker, false: taker |
> feeRate | string | Trading fee rate. Classic spot is not supported |
> tradeIv | string | Implied volatility. Valid for option |
> markIv | string | Implied volatility of mark price. Valid for option |
> markPrice | string | The mark price of the symbol when executing. Valid for option |
> indexPrice | string | The index price of the symbol when executing. Valid for option |
> underlyingPrice | string | The underlying price of the symbol when executing. Valid for option |
> blockTradeId | string | Paradigm block trade ID |
> closedSize | string | Closed position size |
> seq | long | Cross sequence, used to associate each fill and each position update
|
연관
bybit api 페이지
상위정리
첫 등록 : 2023.10.26
최종 수정 :
단축 주소 : https://igotit.tistory.com/4952
'트레이딩 > 암호화폐' 카테고리의 다른 글
bybit . API V5 . rest . Get Open Orders (0) | 2023.10.26 |
---|---|
bybit . API V5 . 웹소켓 . authentication 처리 (0) | 2023.10.26 |
bybit . API V5 . 웹소켓 Trade . 실시간 시세 수신 (0) | 2023.10.25 |
bybit . API V5 . 웹소켓 . subscribe, unsubscribe (0) | 2023.10.22 |
bybit. API V5. 서버 주소 정리. (0) | 2023.10.22 |
댓글