見出し画像

Pythonで株価のローソク足をチャートに描画する ~Plotly編~

Pythonで株価のローソク足をチャートに描くライブラリには、以前に紹介したmplfinance以外に、Plotlyでも描くことができます。

ソースコードと実行結果

from plotly.subplots import make_subplots
import plotly.graph_objects as go

def plotChart(**kwargs):
    OHLCV = kwargs['ohlcv']
    
    Open = OHLCV['Open']
    High = OHLCV['High']
    Low = OHLCV['Low']
    Close = OHLCV['Close']
    MA20 = calcSMA(data=Close, period=20)
    
    
    fig = make_subplots()
    
    fig.add_trace(go.Candlestick(
        x=OHLCV.index, open=Open, high=High, low=Low, close=Close, name='OHLC', 
        increasing_line_color='darkgray', decreasing_line_color='black', 
    ))
    fig.add_trace(go.Scatter(x=MA20.index, y=MA20, name='MA(20)', 
        mode='lines', line=dict(color='green', width=1.0)
    ))
    
    fig.update_layout(
        xaxis_rangeslider_visible=False,  # 標準で表示されるrangesliderを非表示
        hovermode='x',
    )
    
    fig.show()

calcSMAは以前にこちらの記事で紹介した関数です。コードを呼び出せるように併記してください。

次のようにplotChart関数を呼び出して実行してください。

plotChart(ohlcv=OHLCV_N225)

すると、次のようなチャートが描画されます。

ソースコードの解説

Plotlyでローソク足を描くにはplotly.graph_objects.Candlestickを使います。

open, high, low, close に4本値を指定します。

標準では陽線は緑色・陰線は赤色ですが、テクニカル指標と色が重ならないように、increasing_line_color, decreasing_line_colorにモノトーン色を指定しています。

また標準でrangesliderが表示されるため、非表示に変更しています。

参考

plotly.graph_objects.Candlestickのリファレンス
https://plotly.com/python/reference/candlestick/

plotly.graph_objects.Candlestickのドキュメント
https://plotly.github.io/plotly.py-docs/generated/plotly.graph_objects.Candlestick.html


この記事が気に入ったらサポートをしてみませんか?