데이터 분석 환경
주식차트 이동평균선 Talib SMA 구하고 그래프 그리기
데이터랑
2023. 5. 2. 01:22
728x90
일전에 설치한 Talib는 32bit 환경에서 설치 한 관계로
최근에 만든 64Bit 가상환경에서는 실행이 안되기 때문에 새로운 환경에 맞는 Talib버전을 찾아 다운로드하고
가상환경이 동작하는 해당 폴더로 다운로드한 파일을 이동하여
pip install 명령으로 재설치를 했다.
1. 맞는 버전의 Talib 찾아 다운로드
2. 가상환경을 activate 한 이후 pip install로 talib 설치
3. Talib로 10일, 60일 이동 평균 계산
### sqlite3 저장된 주식 데이터 로드해서 Talib로 이평 구하는 예제
import pandas as pd
import matplotlib.pyplot as plt
import tensorflow as tf
import sqlite3
import talib
conn = sqlite3.connect("C:\study\data\DBMS\kw_option.db", isolation_level=None)
cur = conn.cursor() # 커서 획득
sector_code = '201'
table_name = 'sec_price_kospi200'
##### 데이터 로드 ######
sql_option = f"select date_tr, code_sector, price_close , volume_tr ,amount_tr \
from {table_name} where date_tr > 20220101 and code_sector = {sector_code} order by date_tr, code_sector" ###
print(sql_option)
df = pd.read_sql(sql_option, conn)
df.set_index("date_tr", inplace=True)
##### 10일, 60일 이동평균선 구하기 ######
sma10 = talib.SMA(df['price_close'], timeperiod=10)
sma60 = talib.SMA(df['price_close'], timeperiod=60)
##### 그래프 그리기 ######
fig, axs = plt.subplots(2, sharex=True, figsize=(10,6), gridspec_kw={'height_ratios': [2, 1]})
# Plot the moving average
axs[0].plot(df.index, df['price_close'], label='Close')
axs[0].plot(df.index, sma10, label='Moving Average10')
axs[0].plot(df.index, sma60, label='Moving Average60')
axs[1].bar(df.index, df['amount_tr'], label='amount')
axs[1].set_title('amount')
axs[0].tick_params(axis='x', which='both', bottom=False, top=False, labelbottom=False)
axs[1].tick_params(axis='x', which='both', rotation=60)
axs[1].xaxis.set_major_locator(ticker.MultipleLocator(7)) ### MultipleLocator 클래스는 x축 간격을 설정하는 데 사용
plt.legend(fontsize=8) ### 범례 글자 크기 조정
plt.tight_layout() ### figure 크기 자동 조정
plt.show()
3. Talib로 이동평균 적용한 결과 그래프로 확인해 보기
https://datawith.tistory.com/63
주식차트 주가 기술적 지표 분석을 위한 TA-Lib 설치
주식, 선물 옵션과 같은 금융데이터 수집하는 시스템이 구축되면 이를 분석하고 시각화 하는 작업은 어떤 툴로 할까 고민하고 있었는데 TA-Lib 패키지가 눈에 띄었다. TA-Lib은 사실 분석툴이라기
datawith.tistory.com
728x90
728x90