코인 거래량 알림 설정
바이낸스 API로 가져올 수 있는가?
네, 거래량은 바이낸스 Kline에 포함된 정보로 Kline을 HTTP요청을 하면 받을 수 있는 데이터입니다. requests 모듈의 get() 함수로 "https://www.binance.com/api/v3/uiKlines?limit=1000&symbols=BTCUSDT&interval=5m"와 같은 url을 입력하면 다음과 같은 response를 받으실 수 있습니다.
왼쪽은 예시로 주어진 값이고 오른쪽은 열의 정보입니다. 12개의 열과 1000개의 행의 데이터프레임을 받을 수 있으며 제가 알고 싶은 거래량은 Volume과 Quote asset volume에 해당합니다. 여기서 Volume은 코인거래수량이고 Quote asset volume은 거래대금입니다. Quote asset의 뜻은 거래통화이므로 USDT(테더)를 기준으로 한 거래대금이라고 이해하시면 됩니다. 개인적인 투자 관점으로 거래량은 볼 필요가 없고 이 거래대금을 이용하는 것이 좋다고 생각합니다.
거래대금의 경우에는 Kline을 요청하는 것만으로 바로 얻을 수 있으므로 별도의 가공이 필요 없어 쉽게 다룰 수 있는 지표입니다. 앞으로 다양한 지표들의 알림을 만들 텐데 이동평균선 같은 지표들 대부분은 API문서를 보면 알다시피 제공을 안 합니다. 하지만 시간, 시가, 고가, 저가, 종가, 거래량 등으로 모두 충분히 만들어낼 수 있는 지표들이므로 Kline의 데이터를 요청하는 것만으로 알림을 만들 수 있습니다.
미리 정리해 둔 함수
많지는 않지만 제가 알림 봇을 만들면서 자주 쓰는 코드를 함수정의하여 모아두는 곳이 binance.py입니다. 함수정의를 알고 싶으신 분은 "코인 알림 봇 만들기" 카테고리를 참고해 주시길 바랍니다.
'기술/코인 알림 봇 만들기 (기초)' 카테고리의 글 목록
코인 금붕어의 코인 반성문
goldfishman.tistory.com
전체 코드
import binance as bn
import numpy as np
import threading
tickers = bn.tickers("future")
def run():
for i in tickers:
try:
volume = bn.get(i, "5m")['volume']
close = bn.get(i, "5m")['close']
close998 = close.iloc[-2]
close997 = close.iloc[-3]
volume_range = volume[:997]
volume_avg = np.average(volume_range)
volume998 = volume.iloc[-2]
volume_ratio = round(volume998 / volume_avg, 1)
if close998>close997 and volume_ratio>10 and volume998 > 50000:
bn.tel_text(i + " " + str(volume_ratio) + "배")
except Exception as e:
if str(e).startswith('429'):
bn.tel_text(i + " " + str(e))
else:
pass
threading.Timer(270, run).start()
run()
조건식은 5분 봉 기준 캔들이 양봉 마감 and 약 최근 5000분 동안 한 캔들의 거래대금 평균보다 10배 이상 and 거래대금이 50000 테더 이상으로 마감하면, 텔레그램으로 코인이름과 거래대금의 평균 대비 배율을 나타내어 줍니다. 저는 투자 스타일이 캔들의 마감을 끝까지 지켜보고 결정하기 때문에 iloc[-1](현재 변동 중인 캔들)이 아닌 한 칸씩 뒤로하여 iloc[-2]를 기준으로 하였고, 거래량으로 만든 저만의 지표인 volume_ratio를 만들어내어 조건식에 넣었습니다. 여러분도 이제 각자의 투자기술에 적절한 지표를 만들어 조건식을 조정하며 알림을 설정하시면 됩니다.
OMG 코인 하나가 올라온 것을 볼 수 있고 코인이름과 배율도 잘 전달되었습니다.
'기술 > 지표 알림' 카테고리의 다른 글
바이낸스 롱/숏 비율 알림 받기 (429) | 2023.04.16 |
---|---|
MACD 알림 설정하는 방법 (415) | 2023.04.13 |
지수이동평균(EMA) 가중이동평균(WMA) 계산 (457) | 2023.04.11 |
이동 평균(MA) 골든크로스 알림 (398) | 2023.04.09 |
모든 코인 RSI 알림 (428) | 2023.04.08 |
댓글