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
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 사인파(Sine wave) 그리기 (0) | 2022.08.17 |
---|---|
[파이썬] 주식 Chart Image 날짜 지정 저장 (2) | 2022.08.17 |
[파이썬] 주식 골든크로스/데드크로스 (0) | 2022.08.17 |
[파이썬] 품사 구분 및 명사 Diagram(schemdraw) (0) | 2022.08.16 |
[파이썬] 프로우차트 등(schemdraw) 폰트 크기 (0) | 2022.08.16 |
댓글