본문 바로가기
프로그램

[파이썬] 주식 캔들차트(candlestick)

by 오디세이99 2022. 8. 17.
728x90
반응형

주식 차트의 기본인 캔들차트입니다.

이게 어려운 코드는 아닌데, 어쩌다가 쓰려면 혼동됩니다.

import pandas_datareader as web
import random
import numpy as np
import datetime
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
from mplfinance.original_flavor import candlestick2_ohlc

STOCK_CODE = ['069500','005930','051910','035420','005380','035720','068270','066570','005490','051900','017670']
STOCK_NAME = ['KODEX200','삼성전자','LG화학','네이버','현대차','카카오','셀트리온','LG전자','POSCO','LG생활건강','SK텔레콤']
START = '2022-01-01'
END = '2022-07-31'

df = web.DataReader(STOCK_CODE[1]+'.KS', data_source='yahoo', start=START, end=END)
df['ma5'] = df['Close'].rolling(window=5).mean()
df['ma20'] = df['Close'].rolling(window=20).mean()
df['ma60'] = df['Close'].rolling(window=60).mean()
df['ma120'] = df['Close'].rolling(window=120).mean()
df['date'] = df.index.astype(str).str[0:10]
df.dropna()

%matplotlib Qt5
# %matplotlib inline
fig = plt.figure(figsize=(30, 16))
plt.rcParams['font.family'] = 'NanumGothic'    # 한글 사용
ax_main = fig.add_subplot(1,1,1)
ax_main.plot(df.date.tolist(), df['Close'], label='Close')
ax_main.plot(df.date.tolist(), df['ma5'], label='ma5')
ax_main.plot(df.date.tolist(), df['ma20'], label='ma20')
ax_main.plot(df.date.tolist(), df['ma60'], label='ma60')
ax_main.xaxis.set_major_locator(ticker.MaxNLocator(25)) # x축에 보이는 ticker 개수(20개면 1달)
plt.xticks(rotation = 45) # x축 45도 회전
candlestick2_ohlc(ax_main, df['Open'], df['High'], df['Low'], df['Close'], width=0.5, colorup='r', colordown='b')
plt.legend()
plt.grid()
plt.show()

728x90
반응형

댓글