비트코인 자동매매

[비트코인 자동매매] 호가창 정보를 이용하여 자동매매 개발하기(2)

kyoa2 2023. 4. 2. 00:35

-----------------------------------------------------------------------------

https://accounts.binance.com/register?ref=21391362 <- 레퍼럴 코드로 바이낸스 선물 수수료 할인받기

레퍼럴 코드 : 21391362

-----------------------------------------------------------------------------

 

이전 포스트에서 매수 타점을 찾는 방법을 알았으니 본격적으로 개발 해보겠습니다. getClient(), closeClient(), server_time_sync() 함수는 bapi.py 파일을 만들어서 따로 빼줍시다.

바이낸스 API에 시간당 호출 제한이 있기 때문에 API 사용량 코드를 넣어주는 것이 좋습니다.

분당 1200 사이즈가 넘지 않도록 체크해줍니다.

코인을 매매할 때 최소 거래 금액이 존재합니다. 최소 거래 금액 이상이어야만 매매가 가능합니다.

비트코인이며, 최소 10USDT 이상을 넣어야 살 수 있습니다.

get_asset_balance 함수를 통해 지갑에 있는 USDT 수량을 확인하고 10 이상인지를 확인합니다.

매수 타점을 계산해야합니다. 이전 포스터에서 호가창을 정보를 이용하여 매수 타점을 계산하는 방법을 만들었습니다. 호가창 정보를 최대로 가져와서 물량이 가장 많이 모여있는 가격을 추출합니다.

order_limit_buy 메소드를 호출하여 주문을 하여봅시다. price 인자의 자료형은 string 타입입니다. 보통 가격을 실수나 정수로 넣기 때문에 여기서 문자열로 형변환해줍시다.

메소드를 호출하면 예약 매수 주문이 됩니다. 여기서 고려해야할 점이 있는데, 자동매매를 하기 위해 루프를 돌릴 경우 매수 주문이 다시 들어가서 주문 수량이 계속 커지는 문제가 발생할 수 있습니다. 현재 주문서의 상태를 확인하여 체결 되기 까지 기다리거나 프로그램을 대기 시켜주어야합니다.

get_order 메소드를 통해 현재 주문서 정보를 가져 올 수 있습니다. 메소드 호출시 인자 값으로 주문번호를 받는데, 주문번호는 최초 매수 주문시 주문 정보를 리턴해줄때 가져올 수 있습니다. status 를 통해 현재 주문서의 상태를 확인가능하며, 상태 값은 취소, 기간만료, 신규접수, 체결완료 4개 입니다.

신규 주문 후에 매수 체결이나 취소가 될때 까지 대기합니다.

 

-----------------------------------------------------------------------------

https://accounts.binance.com/register?ref=21391362 <- 레퍼럴 코드로 바이낸스 선물 수수료 할인받기

레퍼럴 코드 : 21391362

-----------------------------------------------------------------------------