変化率(Rate Of Change)に関する情報はどのように検証できますか?
直接の回答
変化率(Rate Of Change, ROC)に関する情報は、安定した仕組み(定義と計算)を、変動する条件(データソース、時間間隔、そしてデータ前処理)から切り分けることで検証できます。情報の階層を使いましょう。まず指標の定義を検証し、次に明示的に示された前提を用いて自分のスプレッドシートまたはスクリプトで計算を検証し、最後に異なる提供元が同等の入力とフォーマットを使っているかを検証します。
仕組みと定義
変化率(Rate Of Change)は、選んだロークリック期間(lookback period)の間で、ある値がどれだけ変化したかを表す方法です。「Rate(変化率)」は通常、時間ステップあたりの変化を指しますが、多くのテクニカル指標の文脈では、より前の値に対する変化(たとえば、2点間のパーセンテージ変化)として実装されます。
ROCの情報を検証するには、暗黙に仮定してはいけない3つの要素が必要です:
- どの系列が使われるか(たとえば、終値の系列、または別に定義された入力)
- どの時間間隔とロークリックが使われるか(バー数、または時間差)
- どの正確な式のバリアントが主張されているか(差分かパーセンテージ差分か、バーのクローズで整列されるか等)
記事や提供元が「ROC(14)」と言っている場合、「14」は重要な前提として扱うべきです。これは計算が参照する、より前のデータ点を定義します。あるソースがROCを「percent(パーセント)」だと言っているが式を示していない場合、検証には式を見つける必要があります。あるいは、結果を再現してテストする必要があります。
証拠と再現可能な例(ライブデータなし)
計算を段階的に再現できるように、小さな仮想の系列を使います。
この例の前提:
- バークローズごとの時系列の値がある:V[0], V[1], V[2], …
- ロークリックは N = 3 バーを使う。
- よくあるパーセンテージ変化の形をテストする:ROC = (V[t] − V[t−N]) / V[t−N] × 100。
検証手順:
- サンプル内で、V[t] と V[t−N] の両方が存在する固定の t を選ぶ。
- 分子を計算する:V[t] − V[t−N]。
- 分母を計算する:V[t−N]。
- 「percent(パーセント)」の主張に合わせるため、100で割らずに掛ける(×100)ことを確認する。
- 符号規約を確認する:現在値がロークリック値より高ければROCは正になるはずで、そうでなければ負になります。
独立したクロスチェック方法:
- 提供元のROC出力が環境で利用可能なら、同じ N と同じ入力定義を自分の計算に適用し、四捨五入の範囲で数値が一致することを確認します。一致しない場合、通常は次のいずれかを示します:異なる式のバリアント、異なるバー整列(たとえば、バーのクローズではなくインターバーの値を使っている)、または最初の N バーの扱いが異なる(ROCが未定義になる場合がある)ことです。
制約と失敗パターン
仕組みが正しくても、ROCは非自明な理由でソース間で異なることがあります:
- データの取り扱いと整列: 欠損バー、タイムゾーンの扱いの違い、またはバークローズとインターバー定義の違いによって、どの2つの値が使われるかが変わります。
- スケーリングと式のバリアント: あるソースはパーセンテージ変化ではなく絶対差を使うことがあり、また ×100 のスケーリングを省略している場合もあります。
- ノイズへの感度: ROCは固定のロークリックに基づく差分に依存するため、短期の変動を増幅します。
- エッジケース: V[t−N] がゼロ(またはゼロに近い)場合、パーセンテージROCは未定義になったり、ソースがゼロ除算をどう扱うかによって極端に大きくなったりします。
最後に、過去の関係は将来の挙動を確立しません。たとえROCの出力がある期間で「うまく機能している」ように見えても、将来に対して信頼できる予測として扱うには、成立しない可能性のある安定条件を仮定せずに済ませることはできません。
検証、または次の質問
より強い検証をしたいなら、2つの具体的な質問をしてください:
(1) 「どの正確なROCの式のバリアントと、どの入力系列定義を使っていますか?」
(2) 「時間間隔、バーの整列、欠損データのルールはどのように扱われていますか?」
その後、明示的な前提で自分で計算を再現し、結果を比較します。
式と入力を標準化しても2つのソースがまだ一致しない場合、その不一致は、ROCが本質的に一貫しないという証明ではなく、(たとえば時間整列や前処理など)それらの変動する条件が異なるという証拠として扱ってください。