目的
今回は、Pythonによる株価のテクニカル分析に欠かせないMACDについて紹介します。
Pythonのライブラリである「mplfinance」を使用することで、
簡単なコードで、MACDのグラフを作成することが、可能になります。
そもそもMACDって何?というところから、具体的な分析方法まで紹介しています。
さらに、Pythonで実際にコードを書くことで、数式への理解が深まります。
MACDとは?
MACD(マックディー)= Moving Average Convergence/Divergence oscillator
1970年代にGerald Appelという人が作成したもので、株価のトレンドを捉えるのに効果的です。
MACDを算出するには、指数関数的な移動平均が使用されています。
指数平滑移動平均(EMA)= Exponential Moving Average
指数平滑移動平均は、直近の価格を重視して計算した移動平均です。
直近の価格を重視して計算した移動平均で現在の値動きへの反応が早いのが特徴です。
単純移動平均(SMA)= Simple Moving Average
一般的な移動平均線は、単純移動平均と呼ばれています。一定期間の価格を単純に平均したものです。
実行結果
ソースコード
下記のソースコードをコピーすることで簡単にチャートを作成することができます。
準備&株価の取得
上記の実行結果を参考にしていただければ、問題ありませんが、
詳しいライブラリのインポートや株価の取得については、下記の記事を参考にしていただければと思います。
MDCDによるテクニカル分析
MACDのグラフする関数
def MACD(df, Fast_length, Slow_length, Signal_smoothing):
#パラメータ設定
df['MACD'] = df['Close'].ewm(span=Fast_length).mean() - df['Close'].ewm(span=Slow_length).mean()
df['SIGNAL'] = df['MACD'].rolling(Signal_smoothing).mean()
df['HIST'] = df['MACD'] - df['SIGNAL']
df['HIST_PLUS'] = df['HIST'].where(df['HIST'] > 0, 0)
df['HIST_MINUS'] = df['HIST'].where(df['HIST'] < 0, 0)
#MACDのグラフ設定
add_plot = [
mpf.make_addplot(df['MACD'], color='blue', panel=1, secondary_y=True),
mpf.make_addplot(df['SIGNAL'], color='orange', panel=1, secondary_y=True),
mpf.make_addplot(df['HIST_PLUS'], type='bar', color='green', panel=1, secondary_y=False),
mpf.make_addplot(df['HIST_MINUS'], type='bar', color='red', panel=1, secondary_y=False)
]
#キャンドルチャートの作成
mpf.plot(df, type='candle', addplot=add_plot)
MACD_パラメータ設定
df:取得した株価データフレーム
下記のパラメータは、商品、期間、使い方によって、自身で数値を考える必要があります。
Fast_length:動きの速い(期間の短い)指数平滑移動平均(EMA)の日数
Slow_length:動きの遅い(期間の長い)指数平滑移動平均(EMA)の日数
Signal_smoothing:MACDラインの指数平滑移動平均(EMA)の日数
グラフ説明
下記、グラフの説明になります。
パラメータ設定は、世界の投資機関がよく使用しているものになります。
MACDライン
= 短期のEMA(12日間の指数平滑移動平均)- 長期EMA(26日間の指数平滑移動平均)
シグナルライン
= MACDラインのEMA( MACDライン9日間の指数平滑移動平均)
ヒストグラム = MACDライン – シグナルライン
一般的な分析方法
見方としては、
2本の線が、上向きの時は、上昇トレンド、下向きの時は、下降トレンド、
線の向きが変わったところをトレンドの転換点です。
2本の線は、上昇トレンドの時は、中心線より上、下向きの時は、中心線より下で推移し、
トレンドが長くなるほど中心線から離れます。
ピンポイントで買い時、売り時を見るときは、先行している線と遅行している線の交差を見ます。
具体的なパラメータ
パラレータを小さくするほど、相場の変化に敏感な設定になります。
一般的なパラメータ(世界の投資機関がよく使用しているもの)
Fast length:12日,Slow length:26日,Signal smoothing:9日
MACD(df_stock_data, 12, 26, 9)
パラメータ例その1(値動きのスピードが速いなどの場合)
一般的なパラメータの約67%の値
Fast length:8日,Slow length:18日,Signal smoothing:6日
MACD(df_stock_data, 8, 18, 6)
パラメータ例その2(短期投資などの場合)
一般的なパラメータの約50%の値
Fast length:6日,Slow length:13日,Signal smoothing:4日
MACD(df_stock_data, 6, 13, 4)
参考にした本
テクニカル分析の方法だけでなく、
投資について、わかりやすく書かれているので、大変参考になると思います。
電子書籍の方が半額で購入できるので、そちらをオススメします。