반응형
업비트로 하고 싶었는데 업비트는 쓸만한 파이썬 래퍼 패키지를 찾지 못했다. 일단 바이낸스로 구현해보자.
패키지 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
- [비트코인자동매매]2. 상승장 알리미, @jjaa9292, vlog, 2022
- Slack API - Python Slack SDK - Webhook Client
or
[카카오페이로 후원하기] [토스페이로 후원하기]
반응형
'개발 > 파이썬 자동매매' 카테고리의 다른 글
(파이썬 자동매매) 볼린저 밴드(Bollinger Bands) (0) | 2023.02.10 |
---|---|
(파이썬) 바이낸스 비트코인 이동평균선 돌파 전략 백테스팅 (2) | 2023.02.07 |
(파이썬) 바이낸스 비트코인 이동평균선 그리기 (0) | 2023.02.07 |
[비트코인 자동매매] 상승장 알리미 스케쥴러 적용하기 (1) | 2023.01.12 |
[비트코인 자동매매] 상승장 알리미 슬랙으로 발송하기 (0) | 2023.01.12 |