목 차
1. 들어가며
2. 사전설명
3. 코드설명
4. 주문내역 취소 결과
5. 전체 코드
6. 마치며
1. 들어가며
이전 글에서는 미체결 주문을 받아오는 방법을 알아보았다.
미체결내역이 필요한 이유는 취소주문을 할 때, 코인명이 필요하다.
1종목 주문을 할 때는 "코인명"만 필요하지만,
여러가지 코인이 있을 때는 "코인명" 외, "원주문 번호" 등이 필요하다.
여기서는 1종목만 거래하지만, "코인명"과 "원주문 번호"를 활용하여,
미체결 주문내역을 취소할 것이다.
이번 글에서는 미체결 주문의 취소하는 방법을 알아보자.
<그림1>은 미체결 내역 현황이다.
* 가격 21,150.50달러, 수량 20개, 포지션 long, order no는 168b88f
→ 주문 번호는 끝의 8개만 출력이 된다. (주문번호는 32자리이다)
2. 사전설명
api_key 및 api_secret를 활용하여
바이비트API에서 데이터(미체결 내역)를 받고,
미체결 내역을 취소한다.
① 설명 경로 : Account Data Endpoints > Active Orders > Cancel Active Order
② 입력 정보 : symbol명을 기재한다 → "BTCUSD"로 입력
③ 출력 정보 : user_id, order_id, symbol 등의 정보를 받아온다.
④ 입력 샘플 : api_key 및 api_secret를 통해 바이비트API에서 데이터 요청
⑤ 출력 샘플 : 받아오는 데이터는 딕셔너리 > 딕셔너리 형태이다.
* 딕셔너리에서 데이터 추출 방법은 딕셔너리 [ '문자형' ] 으로 받아온다.
3. 코드설명
api_key 및 api_secret를 통해 바이비트API에서 데이터를 수신받아,
미체결 데이터를 취소한다.
<그림3-1>은 미체결 내역(그림1)이 아직 남아있다.
1줄 : pybit 를 임포트한다.
3줄~6줄 : 11줄~15줄까지 바이비트API에서 데이터를 얻기 위해,
3줄~6줄에서 api_key 및 api_secret 를 읽어온다.
8줄 : 주문내역 알아오기 및 취소를 위해 sendorder_bitcoin 함수를 선언한다.
9줄 : 코인명 "BTCUSD"를 입력한다.
11줄~15줄 : 바이비트API에서 데이터를 받아와서, session에 넣는다.
17줄 : 주문내역을 balance에 넣어준다.
18줄~19줄 : 코인명과 주문번호를 받아온다.
25줄 : 이 글의 핵심이다.
바이비트API의 cancel_active_order 함수를 활용하여
조회된 미체결 주문 내역을 취소한다.
* 이때 활용하는 것이 18줄~19줄에서 받아온 코인명과 주문번호이다.
(1종목일 때는, 코인명만 기재해도, 취소된다)
4. 주문내역 취소 결과
3번(코드설명)의 23번줄에서 제출하였지만,
체결되지 아니한 주문(=미체결 내역)을 취소한 화면이다.
5. 전체코드
from pybit.inverse_perpetual import HTTP
with open(r'C:\Users\ ... api_key 경로 ... ') as f:
lines = f.readlines()
api_key = lines[0].strip()
api_secret = lines[1].strip()
def sendorder_bitcoin():
symbol = "BTCUSD"
session = HTTP(
endpoint="https://api.bybit.com",
api_key=api_key,
api_secret=api_secret
)
balance = session.get_active_order(symbol=symbol)['result']['data'][0]
symbol = balance['symbol']
order_id = balance['order_id']
print(symbol)
print(order_id)
session.cancel_active_order(symbol=symbol, order_id = order_id)
sendorder_bitcoin()
# (expected result)
# BTCUSD
# d9c6####-####-####-####-####168bf88f
6. 마치며
미체결 주문내역을 취소하는 방법은 의외로 간략했다.
코드 1줄로 취소되는 게 신기하긴 하다.
* session.cancel_active_order(symbol=코인명, order_id=주문번호)
분할매수가 아닌, 단타라면 굳이 취소주문을 할 이유가 있을까 생각된다.
하지만, 지정가 주문을 통한 분할 진입하는 방법도 있으니
취소 주문하는 형태도 알아두자.
'3. 비트코인 선물 > 3-1. 바이비트 선물 연구일지' 카테고리의 다른 글
(바이비트) 거래시 적용되는 원달러 환율(krw/usd) 계산 및 적용 기준시간 알아보기 (0) | 2022.11.22 |
---|---|
(바이비트) 비트코인 수수료 및 수익 계산하기 (0) | 2022.11.21 |
(엑셀) 비트코인 청산가격 계산하기 (1) 엑셀로 계산하기 (0) | 2022.11.15 |
(엑셀) text 함수를 활용하여 비트코인 1분봉 패턴 만들기 (0) | 2022.11.14 |
(비트코인 자동매매API) (9) 미체결 주문내역 조회하기 (0) | 2022.11.12 |
(비트코인 자동매매API) (8) 비트코인 진입/청산 주문하기 (0) | 2022.11.11 |
(비트코인 자동매매API) (7) 비트코인 주문량 계산하기 (0) | 2022.11.09 |
(비트코인 자동매매API) (6) 투자가능금액 조회하기 (0) | 2022.11.08 |