MACDの計算方法: 公式、パラメータ、および必要なデータ
MACDを計算する前に
MACDは、Moving Average Convergence Divergenceの略です。これは、特定の瞬間の単一の価格ベースの数値ではなく、価格シリーズの移動平均を組み合わせて作成された派生時系列です。
MACDは通常、以下で定義されます:
- 同じ基礎価格シリーズ(最も一般的には終値)の2つの移動平均: 「高速」平均と「低速」平均。
- 派生差分シリーズ(MACDライン)。
- MACDラインに適用された平滑平均(シグナルライン)。
- オプションで、MACDとそのシグナルラインの間の距離を示すヒストグラム。
歴史的な値から派生するため、MACDの計算には、一貫した歴史的価格と移動平均計算の一貫したルールが必要です。
コアフォーミュラ(メカニズム)
MACDを計算するには、時刻 (t=1,2,\dots) の価格シリーズ (P_t) (例えば、各期間の終値)が必要です。その後、通常、以下の2つの指数移動平均(EMA)を計算します:
- 期間 (n_{fast}) のEMA_fast
- 期間 (n_{slow}) のEMA_slow
一般的なEMAの再帰は: [ \text{EMA}t(n) = \alpha \cdot P_t + (1-\alpha) \cdot \text{EMA}{t-1}(n) ] ここで、平滑化係数は [ \alpha = \frac{2}{n+1} ]
ステップ1: MACDラインを計算
[ \text{MACD}_t = \text{EMA}t(n{fast}) - \text{EMA}t(n{slow}) ]
この減算は「収束/発散」部分です: 高速EMAが低速EMAより上の場合、差は正です; 下の場合、差は負です。
ステップ2: シグナルラインを計算
次に、期間 (n_{signal}) の別のEMAを使用してMACDラインを平滑化します: [ \text{Signal}_t = \text{EMA}t(\text{MACD}(n), n{signal}) ] 再帰形式で書くと: [ \text{Signal}t = \beta \cdot \text{MACD}t + (1-\beta) \cdot \text{Signal}{t-1} ] ここで [ \beta = \frac{2}{n{signal}+1} ]
ステップ3(オプション): ヒストグラムを計算
ヒストグラムは、MACDラインとシグナルラインの差として定義されることが多いです: [ \text{Histogram}_t = \text{MACD}_t - \text{Signal}_t ]
このヒストグラムは、MACDが平滑化された参照より上か下かを視覚化するのに役立ちます。
パラメータとデータ要件(決定する必要があること)
MACDを正しく再現するには、各入力と計算規則を指定する必要があります。
1) 価格シリーズの定義
- (P_t) に使用する価格: 終値、典型価格、または他のフィールド。
- 時間ステップ: 日次、時間別など。
公式が同じでも、異なる (P_t) を選択すると、結果のインジケーターが変わります。
2) 期間の長さ
以下を選択する必要があります:
- (n_{fast}): 高速EMAの長さ
- (n_{slow}): 低速EMAの長さ
- (n_{signal}): シグナルEMAの長さ
重要な実用的要件は、EMA値の計算を開始する際に、EMAを一貫して初期化するために十分な歴史的データがあることです。異なるソフトウェアは、特にシリーズの最初の部分でEMAを少し異なる方法で初期化することがあります。
3) EMAの初期化
EMAの再帰には初期値が必要です(例えば、最初のEMAポイントは最初の観測価格に等しく設定されるか、初期ウィンドウの単純平均を使用することがあります)。選択は初期のMACD値に影響を与えます。
2つのチャートツールを比較すると、同じ可視パラメータを使用しても、開始時に小さな不一致が見られることがあります。
4) すべてのステップでの一貫性
以下を選択した後:
- 価格シリーズ (P_t)
- EMAの定義
- パラメータの長さ MACDラインを計算する際と、それをシグナルラインに平滑化する際には、同じ規則を使用する必要があります。
証拠または例: 簡単な自己チェック計算
以下は、任意のデータセットで従うことができる自己完結型の例の構造です。(数値結果は省略しています。これは、結果が入力シリーズと初期化に依存するためです。)
歴史的シリーズ (P_1, P_2, \dots) があると仮定します。
- 期間 (n_{fast})、(n_{slow})、および (n_{signal}) を選択します。
- (\alpha = \frac{2}{n_{fast}+1}) を計算し、各 (t) に対して (\text{EMA}t(n{fast})) を計算します。
- (\alpha_{slow} = \frac{2}{n_{slow}+1}) を計算し、(\text{EMA}t(n{slow})) を計算します。
- 各 (t) に対して: [ \text{MACD}_t = \text{EMA}t(n{fast}) - \text{EMA}t(n{slow}). ]
- (\beta = \frac{2}{n_{signal}+1}) を選択し、以下を計算します: [ \text{Signal}_t = \beta \cdot \text{MACD}t + (1-\beta)\cdot \text{Signal}{t-1}. ]
- オプションで以下を計算します: [ \text{Histogram}_t = \text{MACD}_t - \text{Signal}_t. ]
素早くテストできる重要な制限
EMAは、古いデータよりも最近のデータをより重く重み付けするため、MACDは通常、急速な変化に遅れをとり、動きが進んだ後に符号を反転させることがあります。これをテストするには:
- 価格が急激に跳ね上がる短いサンプルを使用し、
- (\text{MACD}_t) が新しいレベルを意味的に反映するまでにどれだけの期間か観察します。
この遅れは、平滑化の性質であり、「予測」の性質ではありません。
制限と失敗モード(何が問題になるか)
規則が固定されると、MACDの計算は機械的に明確に定義されますが、実際の使用ではまだ誤解を招くことがあります。主要な制限には以下が含まれます:
1) 初期化と初期シリーズの違い
異なるツールが異なるEMA開始ルールを使用する場合、初期のMACDとシグナル値が異なることがあります。
失敗モード: プラットフォームを比較したり、データをエクスポートしたりする際に、不一致したMACD値が見られる。
2) パラメータの感度
(n_{fast})、(n_{slow})、または (n_{signal}) を変更すると、動作が変わります:
- 短い期間はより速く反応しますが、ノイズに対してより敏感です
- 長い期間はより多くの平滑化を行いますが、より遅く反応することがあります
失敗モード: 1つのパラメータセットで理解した読み取り値は、他のセットに適用できないことがあります。
3) 価格入力の選択
(P_t) に異なる価格フィールドを使用すると、全体のインジケーターが変わります。
失敗モード: 「同じMACD設定」でも、異なる価格定義が異なるラインを生成する。
4) 派生ラインの解釈の混乱
MACDは移動平均の出力です。将来の価格を直接測定するものではありません。
失敗モード: MACDの特徴を、価格の歴史的変換ではなく、独立した確実性として扱う。
5) 市場レジムの効果(レンジ vs トレンド)
乱高下するレンジ相場では、移動平均が繰り返し収束と発散を繰り返し、MACDがシグナルラインの周りで頻繁に振動することがあります。
失敗モード: 単に平滑化が短期的なスイングの交互の反応に繰り返し反応するため、矛盾した読み取りが現れることがあります。
確認と次の質問
独自にMACD計算を確認するには:
- (P_t) の定義と時間ステップを確認します。 2) 宣言された (\alpha = \frac{2}{n+1}) と選択した初期化を使用してEMAの再帰を使用します。 3) (\text{MACD}_t = \text{EMA}t(n{fast}) - \text{EMA}t(n{slow})) を計算します。