# 참고 : 파이썬 증권데이터 분석(김황후 저)

### p293 삼중창 매매 시스템 - 첫번째 창 : 시장 조류(Market Tide), 장기차트
import pandas as pd
import matplotlib.pyplot as plt
import datetime
from mpl_finance import candlestick_ohlc
import matplotlib.dates as mdates
import Analyzer

mk = Analyzer.MarketDB()
df = mk.get_daily_price('LG디스플레이', '2017-01-01', '2021.3.18')

ema60 = df.close.ewm(span=60).mean()        # ① 종가의 12주 지수 이동평균
ema130 = df.close.ewm(span=130).mean()      # ② 종가의 26주 지수 이동평균
macd = ema60 - ema130                       # ③ MACD선
signal = macd.ewm(span=45).mean()           # ④ 신호선(MACD의 9주 지수 이동평균)
macdhist = macd - signal                    # ⑤ MACD 히스토그램

df = df.assign(ema130=ema130, ema60=ema60, macd=macd, signal=signal,
               macdhist=macdhist).dropna()
df['number'] = df.index.map(mdates.date2num)
ohlc = df[['number', 'open', 'high', 'low', 'close']]

plt.figure(figsize=(9, 7))
p1 = plt.subplot(2,1,1)
plt.title('Triple Screen Trading - First Screen (LG Display)')
plt.grid(True)
candlestick_ohlc(p1, ohlc.values, width=.6, colorup='red', colordown='blue')
p1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m'))
plt.plot(df.number, df['ema130'], color='c', label='EMA130')
plt.legend(loc='best')

p2 = plt.subplot(2,1,2)
plt.grid(True)
p2.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m'))
plt.bar(df.number, df['macdhist'], color='m', label='MACD-Hist')
plt.plot(df.number, df['macd'], color='b', label='MACD')
plt.plot(df.number, df['signal'], 'g--', label='MACD-Signal')
plt.legend(loc='best')
plt.show()
