삶의 공유

[파이썬] 비트코인 자동매매 전략 Study(가격, 거래량 기반 전략)-데이터준비 본문

Data Scientist/Python

[파이썬] 비트코인 자동매매 전략 Study(가격, 거래량 기반 전략)-데이터준비

dkrehd 2022. 4. 3. 20:00
728x90
반응형

안녕하세요~

 

최근에 파이썬 자동매매 Study를 시작했는데, 그 공부 기록을 하나씩 남겨보려고 합니다. 

 

이번에 포스팅할 전략은

 

가격, 거래량 기반 롱 온리 전략

 

입니다.

 

 

Data 준비

 

먼저 필요한 라이브러리들을 import 해줍니다.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

 

판다스를 이용해여 csv파일에 저장된 비트코인 데이터를 불러옵니다.

df = pd.read_csv("Bitcoin_price.csv")
df.rename(columns={"Unnamed: 0":"Date"}, inplace=True)
df

2017 7/1 ~ 2021 10/7까지의 1시간 단위로 나뉘어진 비트코인 가격, 거래량등의 데이터를 불러옵니다

1. 'Date'컬럼을 index로 변경해줍니다.

df.set_index('Date', drop=True, inplace=True)

2. 'close', 'volume' 컬럼만 별도로 data 변수에 넣어줍니다.

data = df[['close','volume']].copy()

 

 

 

비트코인 가격이 어떻게 변화해왔는지 시각화를 한번 해보겠습니다.

data.close.plot(figsize=(12,8), title="BTC/USDT", fontsize=12)
plt.show()

 

 

거래량은 어떻게 변화해왔는지 한번 살펴보겠습니다.

data.volume.plot(figsize=(12,8), title="BTC/USDT", fontsize=12)
plt.show()

 

3. np.log함수를 이용해서 Daily 수익률을 구해줍니다.

 

data["returns"] = np.log(data.close.div(data.close.shift(1)))
data

 

수익률의 분포도를 한번 살펴보겠습니다.

data.returns.plot(kind='hist', bins=100, figsize=(12,8))
plt.show()

 

 

4. 누적 수익률을 계산하겠습니다.

data['creturns'] = data.returns.cumsum().apply(np.exp)
data

 

5. 거래량 변화 컬럼을 추가하겠습니다.

data["vol_ch"] = np.log(data.volume.div(data.volume.shift(1)))
data

 

거래량 변화와, 수익률간의 관계를 산포도 그래프를 이용해서 살펴보겠습니다.

plt.scatter(x=data.vol_ch, y=data.returns)
plt.xlabel("Volume_change")
plt.ylabel("Returns")
plt.show()

 

 

길어지는 관계로 다음편에 이어서 하겠습니다.

반응형