• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

MACD

date: 2024-07-28 excerpt: MACDについて

tag: 投資MACD


MACDについて

概要

  • MACD(Moving Average Convergence Divergence)は、移動平均線の収束拡散を利用したテクニカル指標
  • 26日移動平均線と12日移動平均線の差を取ることで、トレンドの強さを示す
  • 2本の移動平均線のクロスで売買シグナルを出すことができる

具体的な計算

import pandas as pd
import yfinance as yf
import matplotlib.pyplot as plt
import seaborn as sns

# 株価データを取得
ticker = '^GSPC'
data = yf.download(ticker, start='2024-01-01', end='2024-07-27')

# MACDを計算
short_window = 12
long_window = 26
signal_window = 9

data['EMA12'] = data['Close'].ewm(span=short_window, adjust=False).mean()
data['EMA26'] = data['Close'].ewm(span=long_window, adjust=False).mean()
data['MACD'] = data['EMA12'] - data['EMA26']
data['Signal Line'] = data['MACD'].ewm(span=signal_window, adjust=False).mean()
data['Histogram'] = data['MACD'] - data['Signal Line']

# seabornスタイルを設定
sns.set(style='whitegrid')

# プロット
fig, ax1 = plt.subplots(figsize=(14,7))

# 株価のプロット
sns.lineplot(data=data, x=data.index, y='Close', label='Close Price', color='black', ax=ax1)

# 第二軸を作成
ax2 = ax1.twinx()

# MACDラインのプロット
sns.lineplot(data=data, x=data.index, y='MACD', label='MACD', color='blue', ax=ax2)

# シグナルラインのプロット
sns.lineplot(data=data, x=data.index, y='Signal Line', label='Signal Line', color='red', ax=ax2)

# ヒストグラムのプロット
ax2.bar(data.index, data['Histogram'], label='Histogram', color='gray', alpha=0.3)

# 凡例を設定
ax1.legend(loc='upper left')
ax2.legend(loc='upper right')

# タイトルを設定
plt.title('MACD for S&P 500 (^GSPC)')

plt.show()


投資MACD Share Tweet