未分類

Pythonによる株価テクニカル分析_MACD編

目的

今回は、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)

参考にした本

テクニカル分析の方法だけでなく、
投資について、わかりやすく書かれているので、大変参考になると思います。
電子書籍の方が半額で購入できるので、そちらをオススメします。




おすすめのPython学習方法

ABOUT ME
チェルシー
【プロフィール】  年齢:30代前半  性別:オス 【主な職歴】  メーカー勤務  製品設計開発_メカ設計:7年  開発業務自動化:1年半 元々、メカ設計エンジニアとして、製品設計開発に携わっていました。新しいスキルを身につけたいと独学でPythonを勉強し始め、現在、本業でソフトエンジニアとして働いています。具体的には、Pythonを使った製品評価業務の自動化を推進しています。 また、製品市場データ分析業務など可視化なども実施しています。 【2023年度目標】 1. 副業収入:月5,000円 2. 塩漬けにしていたブログをChatGPTなどを活用して執筆の効率化し、1年半前に開設した本サイトを改善する 3. 定期的に株式投資おすすめ成長株の紹介記事を投稿 4. 自作中の米国成長株の分析ツールのコーディング紹介 5. 株式投資の本で学んだ情報をアウトプットする