シェーフ・トレンド・サイクル(STC)の計算方法:数式、入力、限界
直接の答え
シェーフ・トレンド・サイクル(STC)は一般に、MACDに似たモメンタムラインを取り、その後2段階のStochasticスタイルの正規化によって有界なオシレーターへ変換することで計算されます。実務では、中間のMACDを計算して平滑化し、次にローリングの最小/最大正規化を適用して結果を0〜100のスケールにマッピングします。多くの実装では、Stochastic正規化を複数回(しばしば「ダブル・ストキャスティック」アプローチとして説明されます)適用します。そのためSTCは、選択したルックバック期間や平滑化に敏感になります。
メカニズムと定義(STCが行っていること)
STCは、トレンド・サイクルの挙動を表現するためのオシレーターです。ここでいう「オシレーター」とは、出力が固定範囲(一般に0〜100)にマッピングされ、原価格の単位では報告されないことを意味します。このマッピングにより、価格水準が変わっても、時間を通じた転換点を比較できます。
よく使われる概念的な処理フローは次のとおりです:
- 選択した価格入力から、MACDに似た系列を計算する。
- MACDに似たラインは、異なる長さの2つの移動平均から形成されます。
- 2つ目の移動平均(しばしばシグナルと呼ばれます)をMACDラインに適用し、平滑化されたモメンタム指標を作ります。
- STCの計算では、通常、平滑化されたMACD、またはそれに近いラインをStochastic正規化への入力として使います。
- そのモメンタム系列を、ローリングの最小/最大ウィンドウで正規化する。
- 各時点で、ルックバックウィンドウ内におけるモメンタム系列の最小と最大を求めます。
- 現在値がその最小と最大の間のどこに位置するかを表す分数を計算します。
- それに100を掛けて、0〜100のスケールにします。
- 必要に応じて、正規化をもう一度適用する(ダブル・ストキャスティック挙動)。
- STCの多くの説明には、追加のStochasticマッピング手順が含まれており、これによりオシレーターがさらに平滑化され、形が整えられます。
実装は(たとえば、ストキャスティックのパス数、平滑化のかけ方、正規化に入力される正確なモメンタムラインなど)異なり得るため、どのプラットフォームでもSTCを最も確実に検証する方法は、そのプラットフォームの正確な定義を確認し、同じ中間ステップを再現することです。
数式、パラメータ、データ要件(独立検証の方法)
データ要件
STCを計算するには、次が必要です:
- 時間順に並んだ価格系列(例:終値の系列)。どの価格フィールドを使うかが重要です。
- 一貫した時間ステップ(例:1期間につき1本のバー)。
- 移動平均の長さと、正規化のルックバックに対して選択したパラメータ。
STCの計算を独立に検証したい場合は、テストしている実装と同じ入力系列と、同じパラメータ値を使う必要があります。
よくあるパラメータセット
多くのSTCの説明では、次のようなパラメータが使われます:
- ファスト移動平均の長さ
- スロー移動平均の長さ
- MACDに似たコンポーネントのシグナル平滑化長
- Stochasticの最小/最大正規化に使うサイクルのルックバックウィンドウ
- 中間ステップで使う平滑化手法を定義する任意の設定
すべてのベンダーで完全に同一の数式が1つ存在するわけではないため、これらは「保証された名称」ではなく、パラメータの典型的な役割として扱ってください。
中核となる正規化ステップ(stochasticスタイル)
正規化ステップはローリングウィンドウを使います。入力系列 (x_t) とルックバック長 (L) に対して:
[ \text{Osc}t = 100\times \frac{x_t - \min(x{t-L+1\ldots t})}{\max(x_{t-L+1\ldots t}) - \min(x_{t-L+1\ldots t})} ]
ここで重要なエッジケースが2つあります:
- ルックバックウィンドウにおいて (\max = \min) となる場合(変化がない場合)、分母が0になります。多くの実装では、オシレーターを0、100、または「前の値を引き継ぐ(carry forward)」として定義します。プラットフォームの具体的なルールに合わせる必要があります。
- ローリングの最小/最大によりSTCは経路依存になります:(L) を変えると正規化の履歴が変わります。
STCにステップを組み合わせる
典型的なSTCの実装は、この考え方に従います:
- (m_t) を、選択した移動平均と任意のシグナル平滑化を適用した後のMACDに似たモメンタム系列とします。
- サイクルのルックバックを使って (m_t) に対してStochastic正規化を適用し、中間オシレーターを作ります。
- 実装が「ダブル・ストキャスティック」アプローチを使う場合、中間オシレーターに対して、同じ0〜100マッピング(および同じまたは関連するルックバック)でStochastic正規化をもう一度適用します。
プラットフォーム間で結果が異なる場合、その差は通常、次の「仕組み」のどれかに由来します:
- (x_t) として使われる正確なライン(生のMACD、シグナル、差分のどれか)
- Stochasticステップが1回か2回か
- MACDに似たコンポーネントで使われる平滑化手法
- ゼロレンジのウィンドウの扱い ((\max=\min))
限界とリスク(STCが破綻し得る場面)
-
パラメータ感度。 STCは複数のルックバックと平滑化長に依存します。わずかな変更でも転換点がずれる可能性があり、設定次第で同じ市場が「トレンド的」にも「サイクル的」にも見えるようになります。
-
低レンジ条件での正規化の不安定さ。 入力系列がルックバックウィンドウ内でほとんど変化しない場合、最小/最大のレンジが非常に小さくなり、オシレーターがガタついたり、実装のゼロ分母ルールに支配されたりします。
-
レジームとノイズの影響。 STCは、モメンタムとローリングの極値から導かれるオシレーターです。ノイズの多い横ばい局面や、急速に変化するレジームでは、オシレーターが頻繁にスイングし、基となる価格における持続的な方向性の動きと一致しないことがあります。
-
誤解のリスク。 有界なオシレーターは、それだけで独立した「買い」または「売り」シグナルになるわけではありません。STCのクロスや水準の解釈には文脈と一貫したルールセットが必要です。そうしないと、同じオシレーター挙動でも、市場状況によって意味が変わり得ます。
検証と次の質問(計算を確認する方法)
STCを独立に検証するには:
- 同じ入力価格系列と同一のパラメータを使って、計算を手順ごとに再現します。
- 中間結果を記録します:MACDに似たコンポーネント、最初の正規化出力、(使用している場合)2回目の正規化出力。
- (\max=\min) のケースに対するプラットフォーム固有の扱いを確認し、各変換の前後で平滑化が適用されるかどうかを確かめます。
必要なら、合わせたいSTCのプラットフォームの説明と、正確なパラメータ名を共有してください(たとえば、MACDに似た部分のための長さや、サイクルのルックバック)。そうすれば、最終オシレーターの形だけに頼るのではなく、各中間ステップを比較できます。