Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ch06_09_FirstScreen에서 차트 그래프 mplfinance 신버전으로 못만드나요? #16

Open
ttub opened this issue Jan 4, 2021 · 4 comments
Labels
enhancement New feature or request

Comments

@ttub
Copy link

ttub commented Jan 4, 2021

제가 코드를 수정하려고 했는데 차트가 창이 여러개로 나뉘어져서 표시됩니다.
캔들은 창1, ema는 창2 이렇게요.

@INVESTAR
Copy link
Owner

INVESTAR commented Jan 9, 2021

최근에 오탈자 업데이트 및 웹 스크레이핑 차단 이슈가 있어서 좀 바쁘네요. 여유가 생기면 mplfinance 버전으로 작성해서 깃헙에 공유하겠습니다.

@INVESTAR
Copy link
Owner

mplfinance는 동일한 시간 x 축을 공유하는 패널을 0부터 9까지 최대 10개까지 사용할 수 있습니다.
제일 위의 패널이 0번 패널이 되고, 그 이후부터 1, 2, 3, ... 9번까지 번호가 붙습니다.
자세한 사용법은 아래 mplfinance의 공식 예제를 참고하시기 바랍니다.
https://github.com/matplotlib/mplfinance/blob/master/examples/panels.ipynb

아쉽게도 mplfinance에서는 범례(legend) 기능이 아직 완전히 개발되지 않은 것 같습니다.
기존에 mpl_finance로 작성했던 코드를 최대한 유사하게 mplfinance로 포팅한 코드는 아래와 같습니다.

mplfinance_example
https://github.com/INVESTAR/StockAnalysisInPython/blob/master/06_Trading_Strategy/ch06_09_FirstScreenEx.py

import pandas as pd
import mplfinance as mpf
from Investar import Analyzer

mk = Analyzer.MarketDB()
df = mk.get_daily_price('엔씨소프트', '2017-01-01', '2019-12-31')
df.index = pd.to_datetime(df.date)
df = df[['open', 'high', 'low', 'close', 'volume']] 

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 히스토그램

apds = [mpf.make_addplot(ema130, color='c'),
    mpf.make_addplot(macdhist, type='bar', panel=1, color='m'),
    mpf.make_addplot(macd, panel=1, color='b'),
    mpf.make_addplot(signal, panel=1, color='g'),
    ]
mc = mpf.make_marketcolors(up='r', down='b', inherit=True) 
stl = mpf.make_mpf_style(marketcolors=mc) 
mpf.plot(df, title='Triple Screen Trading - First Screen (NCSOFT)', type='candle',
    addplot=apds, figsize=(9,7), panel_ratios=(1,1), style=stl)

@INVESTAR INVESTAR pinned this issue Feb 14, 2021
@INVESTAR INVESTAR added the enhancement New feature or request label Feb 14, 2021
@INVESTAR INVESTAR unpinned this issue Feb 14, 2021
@GoodRaymond
Copy link

mplfinance 신버전에서 label은 어떻게 구현하나요?

@INVESTAR
Copy link
Owner

mplfinance의 깃허브에서 확인을 해봤는데 label이나 legend 관련 기능은 아직까지 완벽히 지원되지 않는 것 같습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants