보조 지표를 시각화하는 방법을 학습합니다. 시각화는 데이터 분석 결과를 직관적으로 이해하도록 돕습니다. Matplotlib와 Plotly를 사용하여 다양한 그래프를 그려봅니다. 시각화를 통해 효과적인 매매 전략을 개발할 수 있습니다.
보조 지표는 숫자 데이터로 표현됩니다. 숫자만으로는 데이터의 패턴을 파악하기 어렵습니다. 시각화는 데이터를 그래프 형태로 보여줍니다. 이를 통해 추세, 변동성, 관계 등을 쉽게 파악할 수 있습니다. 시각화는 데이터 분석의 필수적인 과정입니다.
이 섹션에서는 Matplotlib와 Plotly를 사용하여 보조 지표를 시각화합니다. Matplotlib는 파이썬의 기본적인 시각화 라이브러리입니다. Plotly는 인터랙티브한 그래프를 제공하는 라이브러리입니다. 두 라이브러리의 장단점을 비교하고, 상황에 맞게 선택하여 사용합니다.
1단계: Matplotlib 설치 및 기본 사용법
Matplotlib는 파이썬에서 그래프를 그리는 데 가장 많이 사용되는 라이브러리입니다. 먼저 Matplotlib를 설치합니다.
pip install matplotlib
다음은 Matplotlib를 사용하여 간단한 선 그래프를 그리는 예제입니다.
import matplotlib.pyplot as plt
import pandas as pd
# 예시 데이터 생성
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 1, 3, 5]}
df = pd.DataFrame(data)
# 그래프 그리기
plt.plot(df['x'], df['y'])
# 제목 및 레이블 추가
plt.title('Sample Line Graph')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 그래프 표시
plt.show()
위 코드는 x축과 y축 데이터를 사용하여 선 그래프를 그립니다. plt.title()
, plt.xlabel()
, plt.ylabel()
함수를 사용하여 제목과 레이블을 추가합니다. plt.show()
함수는 그래프를 화면에 표시합니다.
2단계: Matplotlib를 이용한 보조 지표 시각화
이동평균선, RSI, MACD 등 다양한 보조 지표를 Matplotlib를 사용하여 시각화합니다. 먼저 필요한 라이브러리를 임포트합니다.
import matplotlib.pyplot as plt
import pandas as pd
import talib
다음은 이동평균선(SMA)을 가격 데이터와 함께 시각화하는 예제입니다.
# 예시 데이터 불러오기 (CSV 파일 또는 API)
df = pd.read_csv("BTC_USDT_1h.csv") # 예시 파일명, 실제 파일명으로 변경
# 컬럼명 확인 및 조정 (Open, High, Low, Close, Volume)
df.rename(columns={'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close', 'volume': 'Volume'}, inplace=True)
# 이동평균선 계산
df['SMA_20'] = talib.SMA(df['Close'], timeperiod=20)
# 그래프 그리기
plt.figure(figsize=(12, 6)) # 그래프 크기 설정
plt.plot(df['Close'], label='Close Price')
plt.plot(df['SMA_20'], label='SMA 20')
# 제목 및 레이블 추가
plt.title('Close Price and 20-day SMA')
plt.xlabel('Time')
plt.ylabel('Price')
# 범례 표시
plt.legend()
# 그리드 추가
plt.grid(True)
# 그래프 표시
plt.show()
위 코드는 종가와 20일 이동평균선을 함께 표시합니다. plt.figure(figsize=(12, 6))
함수는 그래프의 크기를 설정합니다. plt.legend()
함수는 범례를 표시합니다. plt.grid(True)
함수는 그래프에 그리드를 추가합니다.
다음은 RSI를 시각화하는 예제입니다.
# RSI 계산
df['RSI'] = talib.RSI(df['Close'], timeperiod=14)
# 그래프 그리기
plt.figure(figsize=(12, 4))
plt.plot(df['RSI'], label='RSI')
# 과매수/과매도 영역 표시
plt.axhline(70, color='red', linestyle='--', label='Overbought (70)')
plt.axhline(30, color='green', linestyle='--', label='Oversold (30)')
# 제목 및 레이블 추가
plt.title('Relative Strength Index (RSI)')
plt.xlabel('Time')
plt.ylabel('RSI Value')
# 범례 표시
plt.legend()
# 그리드 추가
plt.grid(True)
# 그래프 표시
plt.show()
위 코드는 RSI 값과 함께 과매수/과매도 기준선을 표시합니다. plt.axhline()
함수는 수평선을 추가합니다.
3단계: Plotly 설치 및 기본 사용법
Plotly는 인터랙티브한 그래프를 제공하는 라이브러리입니다. Plotly를 사용하면 그래프를 확대/축소하고, 데이터를 자세히 볼 수 있습니다. 먼저 Plotly를 설치합니다.
pip install plotly
다음은 Plotly를 사용하여 간단한 선 그래프를 그리는 예제입니다.
import plotly.express as px
import pandas as pd
# 예시 데이터 생성
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 1, 3, 5]}
df = pd.DataFrame(data)
# 그래프 그리기
fig = px.line(df, x='x', y='y', title='Sample Line Graph')
# 그래프 표시
fig.show()
위 코드는 plotly.express
모듈을 사용하여 선 그래프를 그립니다. px.line()
함수는 데이터프레임, x축, y축 데이터를 인자로 받습니다. fig.show()
함수는 그래프를 웹 브라우저에 표시합니다.
4단계: Plotly를 이용한 보조 지표 시각화
Plotly를 사용하여 보조 지표를 시각화합니다. Plotly는 다양한 종류의 그래프를 제공합니다. 선 그래프, 막대 그래프, 캔들스틱 차트 등을 사용할 수 있습니다.
다음은 이동평균선(SMA)을 가격 데이터와 함께 시각화하는 예제입니다.
import plotly.graph_objects as go
import pandas as pd
import talib
# 예시 데이터 불러오기 (CSV 파일 또는 API)
df = pd.read_csv("BTC_USDT_1h.csv") # 예시 파일명, 실제 파일명으로 변경
# 컬럼명 확인 및 조정 (Open, High, Low, Close, Volume)
df.rename(columns={'open': 'Open', 'high': 'High', 'low': 'Low', 'close': 'Close', 'volume': 'Volume'}, inplace=True)
# 이동평균선 계산
df['SMA_20'] = talib.SMA(df['Close'], timeperiod=20)
# 그래프 객체 생성
fig = go.Figure()
# 종가 데이터 추가
fig.add_trace(go.Scatter(x=df.index, y=df['Close'], mode='lines', name='Close Price'))
# 이동평균선 데이터 추가
fig.add_trace(go.Scatter(x=df.index, y=df['SMA_20'], mode='lines', name='SMA 20'))
# 레이아웃 설정
fig.update_layout(title='Close Price and 20-day SMA',
xaxis_title='Time',
yaxis_title='Price',
template='plotly_white') # 템플릿 설정
# 그래프 표시
fig.show()
위 코드는 plotly.graph_objects
모듈을 사용하여 그래프를 그립니다. go.Figure()
함수는 그래프 객체를 생성합니다. go.Scatter()
함수는 선 그래프를 추가합니다. fig.update_layout()
함수는 그래프의 레이아웃을 설정합니다. template='plotly_white'
는 그래프 배경을 흰색으로 설정합니다.
다음은 캔들스틱 차트를 사용하여 가격 데이터를 시각화하는 예제입니다.
“`python
import plotly.graph_objects as go
import pandas as pd
df = pd.read_csv(“BTC_USDT_1h.csv”) # 예시 파일명, 실제 파일명으로 변경
df.rename(columns={‘open’: ‘Open’, ‘high’: ‘High’, ‘low’: ‘Low’, ‘close’: ‘Close’, ‘volume’: ‘Volume’}, inplace=True)
fig = go.Figure(