코인 선물 트레이딩 프로그램, 바이낸스(Binance) API : part3 메서드 클래스 만들기

DongJoo Kwak·2022년 3월 7일
0
post-thumbnail

✨ 이번에는 바이낸스(Binance) API를 사용한 메서드를 모아놓은 메서드 클래스를 작성해볼 것입니다!!
✨ 코드 설명은 주석으로 달았습니다!

프로그램 자세한 코드 및 내용 -> https://url.kr/7bwveh

📌 전역변수 및 api데이터 불러오기qq

#전역변수

global order	  	  # 주문 정보를 담은 리스트
global order_num_list #주문번호를 담은 리스트
global position       #Long or Short 포지션 가격

order_num_list = []
g_tick_data = 'ADA/USD' #현재 호가창 및 거래를 할 코인종류 전역변수

#세팅
markets = binance.load_markets() #마켓 데이터 불러오기
binance.verbose = True

📌 class BinanceFunction()

🌳 현재가 조회

def present_price(self):
        ticker = binance.fetch_ticker(g_tick_data)
        print(ticker['open'], ticker['high'], ticker['low'], ticker['close']  # 시가, 고가, 저가, 종가
        print('현재가 : ',ticker['close'])
        return ticker['close']  #매수 매도는 종가기준

🌳매수
<def buy_long(self):
        global position
        position = self.present_price()
        # 코인 주문 : binance.create_order
        order = binance.create_order(g_tick_data, "limit", "buy", 1, price=position, params={})  
                #binance.create_order(코인 종류, 시장가or지정가, 포지션, 수량, 가격)
        order_num_list.append(order) # 주문번호 리스트에 저장
        print('매수전송', order)

🌳매도
<def sell_short(self):
        global position
        position = self.present_price()
        order = binance.create_order(g_tick_data, "limit", "sell", 1, price=position, params={})  
       			 #binance.create_order(코인 종류, 시장가or지정가, 포지션, 수량, 가격)
        order_num_list.append(order)
        print('매도전송', order)

🌳주문 취소
<#후입 선출 주문 취소
def cancel_lifo_order(self):
        temp = order_num_list[(len(order_num_list))]
        order_id = temp['info']['orderId']
        order_cancel = binance.cancel_order(order_id, g_tick_data)
        order_num_list.pop()
        print('주문취소완료',order_cancel)
        
#모든 주문 일괄취소
def cancel_all_order(self):
        for i in range(len(order_num_list)):
            temp = order_num_list[i]
            order_id = temp['info']['orderId']
            order_cancel = binance.cancel_order(order_id, g_tick_data)
            print('주문 일괄취소 완료',order_cancel)
        order_num_list.clear()

🌳잔고확인

    def balance(self):
        balance = binance.fetch_balance()
        return balance[g_tick_data.split('/')[0]] #0번째 인덱스가 잔고

위 클래스안에 메서드를 통해 가격을 받아오고 매수/매도/잔고확인을 할 수 있다. 그외의 다른 메서드는 아래 첨부해 놓은 사이트에 있다. 모두 알고리즘 트레이딩으로 성투하길 바라요~
다음 시간에는 Binance API를 활용하여 만는 메서드들을 통해 쓰레드, 호가창 구현을 하겠습니다!![]

코드 설명은 주석으로 담았으며, 궁금한 점은 댓글로 남겨주시면 답변하겠습니다.

🌳API 문법 참고 사이트

🥕바이낸스 선물 공식 깃허브 : https://github.com/Binance-docs/Binance_Futures_python
🥕바인낸스 공식 API 페이지 : https://binance-docs.github.io/apidocs/delivery/en/#change-log

profile
즐거운 개발 공간

1개의 댓글

comment-user-thumbnail
2023년 8월 18일

궁금한점이 있습니다. 지정가 주문을 할때 제가 가격과 수량을 정해야 하는데 다들 너무 큰 차이가 나면 주문이 안된다고만 하지 어떤 기준으로 어디까지는 주문이 가능하고 어디부터는 주문이 불가능한지 안 나와서요! 혹시 기준을 아시나요?

답글 달기