[비트코인 자동매매] 바이낸스 BTC 상승장 알리미

반응형

업비트로 하고 싶었는데 업비트는 쓸만한 파이썬 래퍼 패키지를 찾지 못했다. 일단 바이낸스로 구현해보자.

패키지 import

필요한 패키지를 import 한다.

import pandas as pd
from binance.client import Client

바이낸스 client

바이낸스 client 를 생성한다.

client = Client()

비트코인 과거 데이터 가져오기

바이낸스 BTCUSDT 마켓에서 “한 달 전 지수 가격 데이터”를 가져온다.

client.get_historical_klines("BTCUSDT", Client.KLINE_INTERVAL_1DAY, "1 month ago UTC")

get_historical_klines 함수를 호출하면 응답 데이터는 이런 형태이다.
각 값의 의미는 아래와 같다. (참고: 바이낸스 API Docs)
여기서 필요한 데이터만 추출하여 DataFrame으로 만든다.

bars = client.get_historical_klines("BTCUSDT", Client.KLINE_INTERVAL_1DAY, "1 month ago UTC")
df = pd.DataFrame(bars)
df = df[[0, 4]]
df.columns = ["Date", "Price"]
df["Date"] = pd.to_datetime(df["Date"], unit = "ms")
df.set_index("Date", inplace = True)


5일이동평균선

5일이동평균선을 구한다.

ma5 = df.rolling(5).mean()
ma5

5일이동평균선과 현재가를 비교하여 상승장인지 하락장인지를 판단할 것이다.

비트코인 현재 가격 가져오기

get_ticker 를 사용하면 비트코인의 현재 가격을 가져올 수 있다.

client.get_ticker(symbol='BTCUSDT')

응답 데이터는 이런 형태이다. 여기서 필요한 lastPrice 데이터만 뽑아온다.

ticker = client.get_ticker(symbol='BTCUSDT')
price = float(ticker['lastPrice'])

상승장/하락장 판단하기

현재 가격이 5일이동평균선 보다 높으면 상승장, 낮으면 하락장으로 판단한다.

last_ma5 = ma5.iloc[-2]['Price']
if price > last_ma5:
    print("상승장")
else:
    print("하락장")

Links

References

반응형