マクギンリー・ダイナミックはどのように計算されるか
直接の答え:マクギンリー・ダイナミックの更新ルール
McGinley Dynamic は、新しい各時間ステップごとに、前の McGinley 値と現在の価格を使って移動平均の値を更新することで計算されます。一般的な形では、更新は次のように書けます:
McGinley(i) = McGinley(i−1) + (P(i) − McGinley(i−1)) / [N · (P(i)/McGinley(i−1))^4]
ここで:
- i は現在の時間インデックス(たとえば、次のローソク足/バー)です。
- P(i) は時刻 i における選択された入力価格です(一般的には終値ですが、別の一貫した価格フィールドでも構いません)。
- McGinley(i−1) は、これまでに計算された前の McGinley Dynamic の値です。
- N(しばしば「期間」または「長さ」と呼ばれます)は、応答性を制御します。
- ( )^4 は 4 乗を意味します。
この定義は、取引結果を保証するものではなく、決定論的な数学的更新(メカニズム)です。
メカニズムまたは定義:数式が何をしているか
標準的な移動平均(単純移動平均など)は、固定の平滑化係数で更新されます。McGinley Dynamic は代わりに、価格が前の平均からどれだけ離れているかに応じて、適応する平滑化ステップを使います。
上の更新ルールでは:
- (P(i) − McGinley(i−1)) は、現在の価格と前の McGinley 値の距離を表します。
- 分母 N · (P(i)/McGinley(i−1))^4 は、その距離の調整量をスケーリングします。
したがって、P(i) が McGinley(i−1) に比較的近いとき、比率 P(i)/McGinley(i−1) は 1 により近くなり、適応の効果は小さくなります。逆に P(i) がより離れていると、比率は 1 から外れ、4 乗がその効果を増幅します。これにより、更新は「現在の価格が現在の平均に対してどれだけ伸びているか」に応じて、その「スピード」が変わる平均のように振る舞います。
あなたが選ぶ必要のあるパラメータと入力
自分で計算するには、次の 4 つを定義する必要があります:
- 時系列と時間ステップ:1分足、1時間足、日足など、どの粒度で計算しますか? シーケンスは一貫している必要があります。
- 入力価格系列 P(i):1つの価格フィールドを選びます(例:終値から終値)。あなたの選択は、すべての i に対して一貫していなければなりません。
- N(長さ/期間):数値を選びます。N の値が異なると、応答性が変わります。
- 初期値 McGinley(0):この式は前の McGinley 値を使うため、開始点が必要です。多くの実装では、最初の McGinley 値を最初に利用可能な価格、または初期の移動平均推定値に設定します。あなたが再現しようとしているものと同じ方法を反映させる必要があります。
証拠または例:明示的な前提によるステップごとの計算
McGinley Dynamic は、入力が同じなら決定論的なので、手計算で 1 回以上の更新を行うことで理解を検証できます。
次の前提を置きます(以下はデモのための例で、市場の主張ではありません):
- 離散的な時系列 i = 1, 2, 3, … で計算します。
- P(i) を選択した価格(たとえば「close」)として使います。各ステップで同じ単位で測定します。
- N = 10 とします。
- 初期値 McGinley(0) = P(0) とします。
では次のステップ、i = 1 を計算します:
- P(1) を読み取ります。
- 開始ルールから McGinley(0) を取ります。
- 比 R = P(1) / McGinley(0) を計算します。
- 分母 D = N · R^4 を計算します。
- 更新を計算します:
- McGinley(1) = McGinley(0) + (P(1) − McGinley(0)) / D。
i = 2 では、新しく計算した McGinley(1) を使って同様に繰り返します。
独立検証で重要になる注記
- 単位を一致させる必要があります:P(i) を McGinley(i−1) で割るため、両方が同じ種類の価格計測を表していなければなりません。
- ゼロを避ける:もし McGinley(i−1) がゼロなら、比率と 4 乗が未定義になります。実務上の実装は通常、ゼロになりにくい価格データに依存しますが、それでもこの数学的な失敗モードには注意しておくべきです。
- 実装の違いが存在します:2つのプラットフォームは「McGinley Dynamic」を表示していても、最初の値の初期化方法や、上の式どおりに厳密に適用するかどうかなど、異なる慣習を使うことがあります。あなたの独立チェックでは、初期化と N の扱いが一致していることを確認してください。
限界とリスク:計算が誤解を招いたり、予期せず振る舞うとき
McGinley Dynamic の計算は、品質の保証ではありません。更新ルールは正確でも、その使い方はモデリング上の前提によって制限され得ます。
1) 選択への感度(入力と初期化)
この式は P(i) と McGinley(i−1) の両方を使うため、次のようにすると指標の経路が変わり得ます:
- 別の入力価格を選ぶ(終値 vs. 典型価格)、
- 別の N を選ぶ、または
- 別の McGinley(0) から開始する。
これはエラーではありません。適応型の数式の結果です。
2) 急な値動きでの挙動
適応係数は (P(i)/McGinley(i−1))^4 に依存します。P(i) が McGinley(i−1) に対して急に動くような突然のレジーム変化では、4 乗によって分母が素早く変化し、更新が次のようになる可能性があります:
- 新しい水準に遅れて追随する(まだ「追いついている」状態)、または
- 固定の平滑化平均と比べて非線形に感じられる形で反応する。
検証のためには、大きなジャンプの前後で再計算し、分母がどれだけシフトするかを確認できます。
3) 数学的な端のケース
起こり得る失敗モードには次が含まれます:
- McGinley(i−1) がゼロの場合の 未定義な比率。
- 実装が低い精度を使う、または値が極端に大きい/小さい場合の 数値的不安定性。
典型的なデータでは遭遇しないとしても、それらを理解しておくと、実装を忠実に評価するのに役立ちます。
4) 解釈リスク
指標の値(またはその傾き)は、市場の挙動を完全に説明するものではありません。McGinley Dynamic は、選んだ価格系列を平滑化された適応線へ変換するものです。単独では、それ自体が因果関係、将来の価格の方向、または最適な行動を特定するものではありません。
検証と次の質問:正しく計算できているか確認する方法
自分の計算を検証するには、シンプルで再現可能なワークフローを使います:
- あなたの正確な数式を書き出し、それがあなたが使っている定義と一致していることを確認します(特に分母と指数)。
- 選んだ N、選択した P(i)、そして McGinley(0) の初期化ルールを記録します。
- 最初の数ステップ i = 1, 2, 3 を手計算(またはスプレッドシート)で計算し、再現したい実装との整合性を確認します。
- 結果が異なる場合は、まず実装の詳細を比較します:初期化、インデックス、そして同じ価格フィールドで同じように式が適用されているかどうかです。
DOCUMENT END