파이썬 주식데이터 분석, 주식보조지표 확인하는 방법은?!
목차
금융사에서 제공하는 API를 이용하면, 주식 데이터 분석부터 주문까지 할 수 있습니다. 이를 통해 자동매매시스템까지 구축이 가능한데요. 관심 있는 주식을 분석하고 가치를 판단하는 일은 의미 있습니다. 파이썬 패키지를 이용하여 여러 가지 주식 지표를 산출하는 방법을 알아보았습니다.
파이썬을 이용하면 주식 분석을 쉽게 할 수 있습니다. 문법이 쉽고 활용도가 높은 패키지들이 많아 데이터를 수집하고 활용하기가 좋습니다. 블로그 글이 복붙이 되지 않습니다. 그래서 포스팅 하단에 아래 설명한 코드를 첨부하였습니다.
1. 파이썬 패키지 설치
파이썬에는 이미 이동평균선을 구하고, 주가 차트를 그리기 쉽게 도와주는 패키지가 있습니다. 하지만 이것도 불편하다고 생각했는지 함수 하나로 계산부터 차트까지 그려주는 패키지를 누군가 개발했습니다. StockInsider라는 패키지입니다. talib이라는 패키지도 주식 관련 지표를 산출하는데 유용합니다. 우선 패키지를 설치해 보겠습니다.
pip install StockInsider
사용방법은 간단합니다. 원하는 종목코드를 넣어서 StockInsider 객체를 만들 후에, 필요한 plot함수를 호출하면 됩니다.
from insider import StockInsider
si = StockInsider("sz002516")
si.plot()
빨간색과 녹색 막대의 차이는 당일 종가가 오픈가보다 올랐는지 떨어졌는지를 나타냅니다. 빨간색은 오른 것이고, 녹색을 떨어진 것인데요.
하지만 중국에서 개발한 패키지라 한국이나 미국 시장에 상장된 종목 코드는 등록돼 있지 않습니다. 그래서 코스피 종목을 확인하려면 약간의 작업이 필요합니다. 코스피 종목의 주식데이터를 받아서 StockInsider 패키지에 넣어줘야 하는데요. from_external_csv_data함수가 있어서 어렵지 않게 할 수 있습니다. 이 부분을 함수로 만들어 보았습니다.
def get_stock(code):
import FinanceDataReader as fdr
from insider import StockInsider
import os
df=fdr.DataReader("code")
df["day"]=df.index
df.columns=['open', 'close','high', 'low', 'volumn', "price_change",'day']
df["ma5"]=df["close"].rolling(5).mean()
df["ma10"]=df["close"].rolling(10).mean()
df["ma20"]=df["close"].rolling(20).mean()
df["v_ma5"]=df["volumn"].rolling(5).mean()
df["v_ma10"]=df["volumn"].rolling(10).mean()
df["v_ma20"]=df["volumn"].rolling(20).mean()
df["percent_change"]=df["close"].pct_change()
if os.path.exists("./data")==False:
os.mkdir("./data")
df.to_csv("./data/{}.csv".format(code))
fpath = "./data/{}.csv".format(code)
si = StockInsider.from_external_csv_data(fpath=fpath, code=code)
return si
주가 데이터는 FinanceDataReader 패키지로 가져오고, 전처리를 후에 csv파일로 저장합니다. 이 파일을 이용해서 StockInsider 객체를 만듭니다. 이제 plot함수를 이용하면 아래와 같이 주식지표를 확인할 수 있습니다. 삼성전자 종목코드를 입력하여, 삼성전자 차트를 그려보았습니다.
si=get_stock("005930")
si.plot()
출력된 데이터가 너무 많다고 생각하면, plot함수의 입력파라미터에 head=120과 같이 숫자를 입력해서 일부 데이터만 확인할 수도 있습니다. verbose=False를 입력파라미터로 넣으면 bar를 제외하고 선그래프만 볼 수 있습니다. show_data()를 호출하면 데이터를 직접 확인할 수 있습니다.
StockInsider에서 확인할 수 있는 주식보조지표들은 아래와 같습니다. 아는 것도 있지만, 모르는 것도 다수 있네요.
주식보조지표 이름 |
주식보조지표 내용 |
사용방법 |
---|---|---|
MA | Moving Average | si.plot_ma() |
MD | Moving Deviation | si.plot_md() |
EMA | Exponential Moving Average | si.plot_ema() |
MACD | Moving Average Convergence/Divergence | si.plot_macd() |
KDJ | - | si.plot_kdj() |
RSI | Relative Strength Index | si.plot_rsi() |
VRSI | Volumn Relative Strength Index | si.plot_vrsi() |
Volumn change | - | si.plot_volumn() |
VMA | Volumn Moving Average | si.plot_vma() |
VSTD | - | si.plot_vstd() |
VMACD | Volumn Moving Average Convergence/Divergence | si.plot_vmacd() |
ENV(轨 | - | si.plot_env() |
VOSC | Volumn Oscillator | si.plot_vosc() |
MI | Momentum Indicator | si.plot_mi() |
MIKE | - | si.plot_mike() |
ADTM | - | si.plot_adtm() |
OBV | On Balance Volumn | si.plot_obv() |
RC | Price rate of Change | si.plot_rc() |
BOLL | BOLL line | si.plot_boll() |
BBIBOLL | BBI BOLL line | si.plot_bbiboll() |
ATR | Average True Ranger | si.plot_atr() |
CDP | Contrarian Operation | si.plot_cdp() |
SAR | Stop And Reverse | si.plot_sar() |
MTM | Momentum Index | si.plot_mtm() |
DMI | Directional Movement Index | si.plot_dmi() |
가장 이해하기 쉬운 이동평균선을 계산해 보았습니다.
si.plot_ma()
plot함수를 제외하고, 호출하면 데이터를 직접 확인할 수도 있습니다. 예를 들어 Relative Strength Index를 그래프로 그리려면, plot_rsi() 함수를 이용합니다. 여기서 'plot_'를 제외하고 rsi() 함수만 호출하면 데이터를 직접 확인할 수 있습니다.
위 파이썬 코드를 아래에 파일로 첨부합니다.
StockInsider 패키지를 이용하여, 여러 가지 주식보조지표를 확인하는 방법을 알아보았습니다. 이렇게 그래프를 그리고, 데이터를 확인하는 것도 주식공부가 됩니다.
'주식 > 투자방법' 카테고리의 다른 글
주식 개장시간과 개장 시간외 거래하는 법은?! (0) | 2020.08.26 |
---|---|
펀드 수수료 종류와 가장 싸게 투자하는 방법 (4) | 2020.08.20 |
주식초보책 추천, '주식 시장 흐름 읽는 법'은 어떤 내용인가? (3) | 2020.08.13 |
주식 액면분할 의미와 주가에 미치는 영향은?! (3) | 2020.08.06 |
참 쉬운 주식 기초 공부, 주식 차트 보는 법은?! (7) | 2020.07.28 |
나만 모르는 주식투자 관련 경제용어 3가지-경기정책・기준금리・통화량 (2) | 2020.07.02 |
키움증권 신용거래란 무엇이며, 이용방법은?! (3) | 2020.06.16 |
착하게 투자와 재테크, 일과 성공으로 부자되는 법이 있을까?! (16) | 2020.06.11 |