반응형

비트코인을 이동평균선 이격도로 추세 분석 ⓒ unsplash

FinanceDataReaderMatplotlib을 이용하여 비트코인 가격 추세와 이동평균선, 이격도를 계산하여 그래프로 출력하는 방법을 알아봅니다. 이를 통해 비트코인 가격에 대한 투자 전략을 수립할 수 있습니다.

가상화폐 중에서도 가장 대표적인 코인인 비트코인은 전 세계적으로 거래되며, 수많은 투자자들이 관심을 가지고 있습니다. 비트코인 가격은 불안정하기 때문에, 투자를 하려면 정확한 추세 파악과 매수/매도 시점 예측이 필요합니다.

 

이를 위해 파이썬에서 FinanceDataReader와 Matplotlib 라이브러리를 사용하여 비트코인 가격 데이터를 불러와 이동평균선과 이격도를 계산하고, 이를 그래프로 출력합니다. 이동평균선은 주가의 추세를 파악하는 데 유용하며, 이격도는 이동평균선 간 차이를 계산하여 매수/매도 시점을 예측하는 데 사용됩니다.


Colab 코드 실행하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
!pip install finance-datareader pandas matplotlib
 
!pip install mplcursors
 
import FinanceDataReader as fdr
import matplotlib.pyplot as plt
import pandas as pd
 
# 비트코인 가격 데이터 불러오기
btc = fdr.DataReader('BTC/KRW''2017-01-01')
 
# 로그를 적용한 비트코인 가격 데이터 생성하기
btc['LogPrice'= pd.Series(np.log(btc['Close']), index=btc.index)
 
# 지수이동평균 계산하기
ma20 = btc['LogPrice'].ewm(span=20).mean()
ma100 = btc['LogPrice'].ewm(span=100).mean()
 
# 이동평균선간의 이격도 계산하기
distance = ma20 - ma100
 
# 차트 그리기
fig, ax = plt.subplots(figsize=(1813))
 
# 가격 데이터 그리기
ax.plot(btc['LogPrice'], label='Price')
ax.plot(ma20, label='MA20')
ax.plot(ma100, label='MA100')
 
# 이격도 그리기
ax2 = ax.twinx()
ax2.plot(distance, color='red', linestyle='--', label='Distance')
ax2.axhline(0, color='black', linewidth=0.5)
 
# 그래프 제목과 축 레이블 설정하기
ax.set_title('Logarithmic Bitcoin Price in KRW')
ax.set_xlabel('Date')
ax.set_ylabel('Log Price')
 
ax2.set_ylabel('Distance')
 
# 범례 추가하기
lines1, labels1 = ax.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax.legend(lines1 + lines2, labels1 + labels2, loc='upper left')
 
# 그래프 보여주기
plt.show()
cs

위 코드에서는 비트코인 가격 데이터를 불러와 이동평균선과 이격도를 계산하고, 그 결과를 상하 2개의 서브플롯으로 나누어 그래프로 출력합니다. 이를 통해 비트코인 가격 추세와 매수/매도 시점을 파악할 수 있습니다.

이를 활용하여, 비트코인 가격에 대한 투자 전략을 수립할 수 있습니다. 예를 들어, 상승 추세가 유지될 때 매수하고 하락 추세가 예상될 때 매도하면서 수익을 올리는 것이 가능합니다.


비트코인 차트에 로그를 적용하고 20일 이동평균선, 100일 이동평균선의 이격도 구하고, 20MA 100MA 이격도를 빨간색 점선으로 그리는 코드를 만들어 Colab에서 실행해서 위 그래프 얻었다.
비트코인과 이동평균선 이격도 분석

위 코드에서 계산된 이격도 그래프는 20일 이동평균선과 100일 이동평균선의 차이를 표현한 그래프입니다. 

분석 결과, 이동평균선간의 이격도 그래프는 중장기적인 트렌드를 파악하는 데에 유용한 지표입니다. 이격도가 양수인 경우 상승 트렌드, 음수인 경우 하락 트렌드를 나타내는 경우가 많습니다. 따라서, 이동평균선간의 이격도 그래프를 이용하여 매수 시점과 매도 시점을 결정할 수 있습니다.

 

예를 들어, 이동평균선간의 이격도 그래프가 음수에서 0을 돌파하는 시점은 매수 시점으로 판단할 수 있습니다. 이는 하락한 가격이 반등할 가능성이 높아지기 때문입니다. 그러나, 단순히 이격도 그래프가 0을 돌파하는 시점을 매수 시점으로 삼으면 위험할 수 있습니다. 이동평균선간의 이격도 그래프가 0보다 크거나 작은 경우는 주가의 흐름이 상승하거나 하락하는 추세일 때를 나타내며, 흐름이 바뀌는 시점은 그래프가 0을 돌파하는 시점보다 더 빨리 나타날 수 있습니다.

 

매도 시점으로 이동평균선간의 이격도 그래프 값이 너무 커진 시점을 고려하는 것은 하나의 방법입니다. 이는 주가가 급격히 상승하여 상대적으로 과매수 상태에 놓인 것으로 판단하여 매도 결정을 내리기 위함입니다.

하지만, 이격도 그래프가 크게 증가하는 시점이 매도 시점인지 판단하기 위해서는 다른 지표나 정보와 함께 종합적으로 판단해야 합니다. 이격도 그래프가 크게 증가하는 시점이 급격한 상승세를 보이면서 주가가 계속 상승할 가능성이 있는 경우도 있기 때문입니다. 따라서, 이동평균선간의 이격도 그래프 값이 너무 커진 시점을 매도 시점으로 결정하기 전에는 다른 기술적 지표나 이전의 주가 움직임 등을 고려하여 신중한 판단이 필요합니다.

반응형