MACD戦略はどのように計算されるのか?

MACD計算式の入力、パラメータ、検証、制限事項。

MACD戦略はどのように計算されるのか?

直接的な回答

MACD(「移動平均収束発散」)は、同じ価格シリーズに対して計算された2つの指数移動平均(EMA)から計算されます。基本的な手順は、高速EMAを計算し、低速EMAを計算し、それらを引いてMACDラインを得、MACDラインにEMAを適用してシグナルラインを得、シグナルをMACDから引いてヒストグラムを得ることです。

「MACD戦略」というアプローチは通常、MACD値をルールロジックの入力として使用することを意味します(例えば、MACDラインをシグナルラインと比較したり、ヒストグラムの変化を分析したりする)。計算そのものは、上記の指標の数学です。

メカニズムと定義

1) 入力価格シリーズの選択

まず、「価格」が計算中に何を意味するかを定義します。一般的な選択肢には、終値や、時々平均価格が含まれます。入力シリーズを選択したら、MACD計算のすべてのEMAに対して同じシリーズを一貫して適用する必要があります。

作業例の前提条件:すべての計算は、固定頻度でサンプリングされた価格の1つの時系列(例えば、各バーの終値)を使用します。データ頻度やシリーズが変更されると、MACD値は変更されます。

2) 高速および低速EMAの計算

以下を設定します:

  • n_fast = 高速EMAの長さ(パラメータ)
  • n_slow = 低速EMAの長さ(パラメータ)
  • P_t = 時間tの選択した価格

EMAは、最近の観測に対してより多くの重みを与える加重移動平均です。多くの定義では、EMAは再帰的に書くことができます:

  • EMA_fast(t) = EMA_fast(t-1) + α_fast * (P_t - EMA_fast(t-1))
  • EMA_slow(t) = EMA_slow(t-1) + α_slow * (P_t - EMA_slow(t-1))

ここで、スムージング係数α_fastα_slowは長さに依存します:

  • α_fast = 2 / (n_fast + 1)
  • α_slow = 2 / (n_slow + 1)

初期化の注意(重要な制限):EMAには開始値が必要です。異なるプラットフォームではEMAを異なる方法で初期化することがあります(例えば、最初の価格から開始する、または初期EMAとして単純移動平均を使用する)。そのため、実装間で初期のMACD値が正確に一致しない場合があります。

3) MACDラインの計算

時間tのMACDラインは、高速および低速EMAの差です:

  • MACD(t) = EMA_fast(t) - EMA_slow(t)

この差は正または負になることがあります。その大きさは価格スケールと選択したEMAの長さの両方に依存します。

4) シグナルラインをMACDのEMAとして計算

n_signalをシグナルEMAの長さ(パラメータ)とします。シグナルラインはMACDシリーズに適用されたEMAです:

  • Signal(t) = Signal(t-1) + α_signal * (MACD(t) - Signal(t-1))
  • α_signal = 2 / (n_signal + 1)

再び、シグナルEMAには初期化方法が必要です。

5) ヒストグラムの計算

ヒストグラムは、MACDラインとそのシグナルラインの間の距離を強調表示します:

  • Histogram(t) = MACD(t) - Signal(t)

ヒストグラムが正の場合、MACDはシグナルより上;負の場合、MACDはシグナルより下です。

パラメータの概要

MACD計算は、3つの主要な長さに依存します:

  • n_fast(高速EMAの長さ)
  • n_slow(低速EMAの長さ)
  • n_signal(シグナルEMAの長さ)

また、以下にも依存します:

  • 選択した価格シリーズP_t
  • 実装でEMAsが初期化される方法
  • データのサンプリング頻度

証拠または検証可能な例

以下は、簡単な仮定を使用した一般的な数値例であり、再現できるようにしています。

前提条件:

  • 時間t = 1..6の短い価格シリーズを使用
  • n_fast = 3n_slow = 6n_signal = 2を使用
  • 初期化を伴うEMA再帰を使用(1つを選択し、その後一貫して従う必要があります)

入力価格シリーズを選択(例の値):

  • P_1, P_2, P_3, P_4, P_5, P_6

ステップA:α_fast = 2/(3+1) = 0.5およびα_slow = 2/(6+1) ≈ 0.2857を計算します。

ステップB:開始値。

  • 1つの方法はEMA_fast(1) = P_1およびEMA_slow(1) = P_1です。

ステップC:t = 2..6に対して前方に反復します:

  • EMA_fast(t) = EMA_fast(t-1) + 0.5*(P_t - EMA_fast(t-1))
  • EMA_slow(t) = EMA_slow(t-1) + 0.2857*(P_t - EMA_slow(t-1))

ステップD:MACDライン:

  • tごとにMACD(t) = EMA_fast(t) - EMA_slow(t)

ステップE:シグナル:

  • α_signal = 2/(2+1) = 2/3 ≈ 0.6667
  • Signal(1) = MACD(1)(または他の一貫した初期化)を選択し、次に反復します:
    • Signal(t) = Signal(t-1) + 0.6667*(MACD(t) - Signal(t-1))

ステップF:ヒストグラム:

  • Histogram(t) = MACD(t) - Signal(t)

計算した際に気づくべきこと:

  • n_fastn_slow、またはn_signalを変更すると、MACDおよびシグナルラインの滑らかさと遅延が変わります。
  • ヒストグラムは独立したシリーズではありません;それは数学的にMACDとシグナルから導かれます。

計算したMACDがチャートツールと異なる場合、最も一般的な理由はEMAの初期化、異なる価格フィールド(終値対典型値)、または異なるパラメータの解釈です。

制限事項とリスク(重要な故障モード)

1) EMA初期化の違い

EMAには開始値が必要なため、異なるソフトウェアはシリーズの最初の部分でやや異なるMACD値を生成することがあります。これは、特に短いデータセットの場合、シグナルEMAとヒストグラムに伝播することがあります。

2) パラメータの感度

MACDはn_fastn_slow、およびn_signalに直接依存します。小さな変更は以下に影響を与えることがあります:

  • アンプリチュード(値の大きさ)
  • タイミング(MACDがどれだけ早く反応するか)
  • 転換点の頻度

したがって、誰かが異なるパラメータセット間でMACD値を比較すると、比較が誤解を招くことがあります。

3) 価格シリーズと時間頻度の選択

MACDは特定の入力シリーズP_tから計算され、与えられた間隔でサンプリングされます。異なる価格定義や異なるタイムフレームでMACDを計算すると、結果の指標値は一致しません。

4) MACDをルールに使用しても不確実性は除去されません

指標が正しく計算されても、その値を決定に変換すると不確実性が生じます。ライブ環境での実際の結果は、MACD式の外部の多くの要因(例:実行品質、市場条件、運用コスト)に依存します。歴史的な関係は将来の結果を保証しません。

検証と次に確認すべきこと

MACDを正しく計算しているか(または提供者が計算しているか)を独立して確認するには、取引アドバイスに依存せずに次のことができます:

  1. 正確な入力価格シリーズ(例:終値)とデータ頻度を確認します。
  2. 高速EMA、低速EMA、シグナルEMAのパラメータ値を確認します。
  3. 同じ初期化アプローチを使用してEMAsを再計算します。
  4. MACD = EMA_fast − EMA_slowを計算し、次にSignalMACDのEMAとして計算し、次にHistogram = MACD − Signalを計算します。

「MACD戦略」の議論に関して、次に明確にすべき価値のある質問:MACD値の上に適用されるルールロジックは何ですか(例:どの比較やヒストグラム条件)? 計算は入力が与えられたら決定論的ですが、戦略層はその値がどのように解釈されるかを決定します。

外国為替およびCFD取引には大きなリスクがあります。FoxiForexの情報は教育目的であり、個別の金融助言ではありません。スポンサー掲載は明確に表示されます。