MACDと移動平均の計算方法
直接的な回答
MACD(移動平均収束発散)は、選択した価格シリーズの移動平均から計算されます。最も一般的なバージョンでは、同じ入力価格の2つの指数移動平均(EMA)を使用します:「高速」EMAと「低速」EMAです。MACDラインは、そのEMAの差です。MACDラインの別のEMAがシグナルラインとなり、ヒストグラムはMACDラインとシグナルラインの差です。
この文脈での移動平均は、過去の観測値に重みを割り当てるルールを使用して、過去のデータポイントから計算されます。EMAは古いデータよりも最近のデータに重みを付けます。そのため、MACDは「時間にわたって単純に平均化された」アプローチよりも速く反応します。
メカニズムまたは定義
1) 入力シリーズの選択(平均の「価格」)
MACDと移動平均の両方は、定期的にサンプリングされた数値の時系列が必要です(例:バーごとの終値)。入力価格の典型的な選択肢には以下が含まれます:
- 終値シリーズ
- 他の価格成分(例:始値、高値、安値、またはそれらの平均)
入力シリーズを選択すると、移動平均の計算は確定的になります。
2) 移動平均の基本:EMAの公式
EMAは、再帰的に更新することで時系列を平滑化します。
入力シリーズを (P_t) とし、(t) が時間ステップをインデックス付けします。長さ (N) のEMAは、以下を使用して計算されます:
- スムージング係数:(\alpha = \frac{2}{N+1})
- 再帰的更新(初期化後の (t)): [ EMA_t = \alpha,P_t + (1-\alpha),EMA_{t-1} ]
初期化は重要です。一般的な実用的な初期化は、最初に利用可能な価格(または最初の (N) ポイントの単純平均)を使用して (EMA_{N}) または計算ウィンドウ内の最初のEMA値を設定することです。異なるソフトウェアでは、初期化が少し異なる場合があり、早期の値がシフトすることがあります。
3) MACDラインとヒストグラム(典型的なパラメータ)
標準的なMACD構造には、3つのプロットされたコンポーネントがあります:
- MACDライン
- シグナルライン
- ヒストグラム
以下を設定します:
- (N_{fast}) は高速EMAの長さ
- (N_{slow}) は低速EMAの長さ
- (N_{signal}) はシグナルEMAの長さ
同じ価格シリーズの2つのEMAを計算します:
- (EMA^{fast}t) を (N{fast}) を使用して
- (EMA^{slow}t) を (N{slow}) を使用して
次に、MACDラインは: [ MACD_t = EMA^{fast}_t - EMA^{slow}_t ]
次に、シグナルラインをMACDラインのEMAとして計算します: [ Signal_t = EMA(MACD)t\text{を長さ }N{signal}\text{ を使用して} ]
最後に、ヒストグラムはその差です: [ Histogram_t = MACD_t - Signal_t ]
これらの公式は、MACDの「メカニズム」の核心を示しています:MACDは単一の移動平均ではなく、2つの移動平均の差を計算し、その差に別の移動平均を適用したものです。
証拠または例(明示的な仮定を伴う計算ステップ)
この例の仮定:
- バーごとに1回サンプリングされた時系列 (P_t) を持っています。
- 終値を (P_t) として使用します。
- 典型的な長さとして (N_{fast}=12)、(N_{slow}=26)、および (N_{signal}=9) を選択します。
手順:
- (\alpha_{fast} = 2/(12+1)) と (\alpha_{slow} = 2/(26+1)) を計算します。
- (EMA^{fast}t) を作成するには: [ EMA^{fast}t = \alpha{fast} P_t + (1-\alpha{fast}) EMA^{fast}_{t-1} ]
- (EMA^{slow}t) を作成するには: [ EMA^{slow}t = \alpha{slow} P_t + (1-\alpha{slow}) EMA^{slow}_{t-1} ]
- 両方のEMAが存在する各時間ステップでMACDラインを計算します: [ MACD_t = EMA^{fast}_t - EMA^{slow}_t ]
- (N_{signal}=9) のMACDシリーズのシグナルEMAを計算します: [ Signal_t = \alpha_{signal} MACD_t + (1-\alpha_{signal}) Signal_{t-1} ] ここで (\alpha_{signal} = 2/(9+1)) です。
- ヒストグラムを計算します: [ Histogram_t = MACD_t - Signal_t ]
同じ入力シリーズ (P_t) と同じ長さを使用してこれらの手順を独立して実装すれば、同じMACD構造を再現できるはずです。EMAの初期化が異なるか、初期EMA値の定義が異なる場合、小さな差異が現れることがあります。
制限とリスク
-
パラメータ感度 MACDは (N_{fast})、(N_{slow})、および (N_{signal}) に依存します。これらの長さを変更すると、値の応答性とスケールが変わります。ただし、基本的な公式は同じままです。
-
データとアライメントの問題 MACDの計算には一貫した時間インデックスが必要です:
- すべてのシリーズは同じサンプリング頻度を使用する必要があります。
- 選択した入力価格シリーズは、データソースと式の間で一致する必要があります。
- 異なるバー定義(例:「終値」対他の価格)でEMAを計算すると、結果が異なります。
-
不十分な履歴と初期化 EMAには過去の値が必要なため、データセットの最初に近すぎて計算を開始すると、早期のMACD値が信頼性を欠くことがあります。EMAの初期化の選択(最初の値対 (N) ポイントの平均)は、早期の読み取りに影響を与えることがあります。
-
解釈の失敗モード MACDコンポーネントは数学的変換です。それらは自動的に利益または正しい結果を示すわけではありません。選択した時系列の記述的特徴として扱い、単独の決定ルールとして扱わないでください。
-
非定常的な振る舞い 市場時系列は、時間とともに統計的特性を変化させることがあります(例:ボラティリティレジム)。計算が正しくても、同じ数値パターンは異なるレジムで異なる振る舞いを示すことがあります。
検証と次の質問
独自の計算を検証するには、以下の項目を確認してください:
- EMAのスムージング係数 (\alpha = 2/(N+1)) が一貫して使用されていることを確認します。
- 同じ入力価格シリーズ (P_t) を使用していることを確認します。
- シグナルEMAを計算する前に (MACD_t = EMA^{fast}_t - EMA^{slow}_t) を適用していることを確認します。
- ヒストグラムが (Histogram_t = MACD_t - Signal_t) を使用していることを確認します。
- 初期化またはアライメントの差異を検出するために、小さなウィンドウの計算値を2番目の独立した実装と比較します。
必要に応じて、入力価格または長さ (N_{fast})、(N_{slow})、および (N_{signal}) を変更したときにMACDの意味がどのように変わるかも確認してください。関連する説明は、内部ページの macd and moving average および設定がMACDと移動平均にどのように影響するか how do settings change macd and moving average を通じて探ることができます。