3. 비트코인 선물/3-1. 바이비트 선물 연구일지

(비트코인 자동매매API) (9) 미체결 주문내역 조회하기

봄이오네 2022. 11. 12. 08:05
반응형
목 차
1. 들어가며
2. 사전설명
3. 코드설명
4. 전체 코드 및 결과
5. 마치며

1. 들어가며

지난 글에서는 비트코인 진입/청산 주문하기를 알아보았다.

이번 글에서는 거래를 위해 제출한 주문내역(미체결 내역)을 받는 방법을 알아보도록 하겠다.

주문내역을 알아야 하는 이유는 체결이 안된 "원주문 내역"을 취소하기 위해,

기 제출된 주문내역을 알아야 하기 때문이다.

 

<그림1>에서는 미체결 주문내역을 바이비트API에서 가져오는 내용을 설명할 예정이다.

    * 코인명은 BTCUSD이며, 롱 표시션으로 21,150달러, 수량 20개를 주문 → 미체결 주문내역

그림1. 미체결된 주문내역


2. 사전설명

코인명을 입력하여, user_id, 포지션 방향 등을 받아올 수 있다.

그림2. 주문내역을 받아오는 설명

 

설명 경로 : Account Data Endpoints > Active Orders > Get Active Order

입력 내용 : 코인명 1개는 필수적으로 입력한다. "BTCUSD" 입력

출력 내용 : user_id, 포지션 방향 등의 데이터를 받는다.

입력 샘플 : api_key, api_secret를 통해 바이비트API에 접근하여 데이터를 요청한다.

출력 샘플 : 딕셔너리 > 리스트 > 딕셔너리 형태로 데이터를 받아온다.

        * 딕셔너리 : 문자형으로 데이터를 추출 / 리스트 : 숫자형으로 데이터를 추출


3. 코드설명

api_key 및 api_secret를 통해

바이비트API에 접근하여 데이터를 수신받고,

코인명 및 원주문 번호(order_id)를 받을 수 있다.

 

그림3. 미체결 내역을 조회하기

 

1줄 : 3줄~25줄까지 바이비트API를 활용하기 위해 pybit를 임포트한다.

3줄~6줄 : 11줄~15줄에서 바이비트API에 접근하기 위해

                  api_key 및 api_secret를 읽어온다.

 

8줄 : 미체결 내역을 조회하기 위해 임의의 함수인 sendorder_bitcoin을 선언한다.

9줄 : symbol에 "BTCUSD"를 입력한다.

11줄~15줄 : 바이비트API에 3줄~6줄의 key/secret를 통해 데이터를 받아온다.

 

17줄 : 활성화된 주문내역(=미체결 내역)을 받기 위해 balance에 담는다.

        * 딕셔너리 데이터는 문자형('result') / 리스트 데이터는 숫자형('0')으로 추출한다.

19줄~24줄 : symbol(코인명) 및 order_id(원주문 번호)를 추출 및 출력한다.

27줄 : 8줄의 함수를 실행한다.


4. 전체 코드 및 결과

from pybit.inverse_perpetual import HTTP

with open(r'C:\Users\User\Desktop\bybit_dir\bybit.key.txt') 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)

sendorder_bitcoin()


(expected result)
# BTCUSD
# 65f12-####-####-####-e3ae168#####

5. 마치며

이번 글에서는 미체결주문 내역을 알아보았다.

피루 입력해야 하는 내용이 코인명(symbol) 1개 뿐이다.

생각보다 코드가 간략하다.

 

미체결주문 내역이 필요한 이유는

일정시간 내 체결이 안되는 등 취소하려면,

원주문 내역을 알아야 한다.

 

다음 글에서는 미체결 내역(원주문내역)의 취소에 대해 설명할 예정이다.

반응형