TSI(True Strength Index)の計算方法
直接の答え
TSI(True Strength Index)は、まずモメンタム系列を作り、モメンタムとその絶対値の両方に対して2段階の指数平滑化を適用し、その後比率を形成することで計算されます。結果は選択した平滑化期間と、正確な価格入力系列に依存するため、TSIの値を検証できるのは、同じ計算式・パラメータ・データ系列を使って再現した場合のみです。
メカニズム:定義、入力、コアとなる計算式
TSIは、価格変動を「直近のモメンタムがどれくらい大きいか」に対してスケールされた指数へ変換します。計算は通常、次の構成要素を使います。
-
価格系列を選ぶ 指標が使用する入力系列を選びます(一般的には終値の系列)。1つの一貫した頻度を使います(たとえば日足のバー、または時間足のバー)。計算する指標値は、基となるデータ頻度や価格フィールドを変えると異なります。
-
モメンタムを計算する TSIの一般的なモメンタム定義は、1期間の価格変化から始まります。
- (P_t) を時刻 (t) における選択した価格とします。
- モメンタム (m_t = P_t - P_{t-1}) を定義します。
- ダブル指数平滑化 TSIは指数移動平均(EMA)を2回適用します。
- まず、モメンタム系列を ファストEMA の長さ (N_1) で平滑化します。
- 次に、その結果を スローEMA の長さ (N_2) でさらに平滑化します。 符号付きのモメンタムを、その大きさ(絶対値)でスケールするため、絶対モメンタム (|m_t|) に対しても同じ2段階の平滑化を行います。
構成要素を表す標準的な方法は次のとおりです。
- (s_t = EMA_{N_1}(m_t))
- (s’t = EMA{N_2}(s_t))
- (a_t = EMA_{N_1}(|m_t|))
- (a’t = EMA{N_2}(a_t))
- 指数をスケールされた比率として形成する 最後に、TSIは通常、ダブル平滑化されたモメンタムを、ダブル平滑化された絶対モメンタムで割ったものをパーセンテージとして定義します。
- (TSI_t = 100 \times \frac{s’_t}{a’_t})
比率の意味
- 分子は方向を追跡します((m_t) は正にも負にもなり得るため)。
- 分母は直近のモメンタムの大きさでスケールします((|m_t|) を使うためで、これは非負です)。
- 100を掛けるのはスケーリングの選択です。実装によってはそのスケール付近の値を出力する場合もあれば、そうでない場合もあります。
指定しなければならないパラメータ
TSIを計算するには少なくとも次が必要です。
- (N_1):モメンタムと絶対モメンタムの両方に対するファストEMA期間
- (N_2):2回目の平滑化に使うスローEMA期間
証拠または例:TSIの1つの値を独立に再現する方法
自分で検証するには、小さな時間範囲を選び、使う予定の同じ入力とパラメータで、手順を1つずつ計算します。
具体的な検証ワークフロー:
- データを固定する:定義した日付範囲の (P_t) の値を、ある頻度で選びます。
- (N_1) と (N_2) を選びます。
- モメンタム (m_t = P_t - P_{t-1}) を計算します。
- (|m_t|) を計算します。
- (EMA_{N_1}(m_t)) と (EMA_{N_1}(|m_t|)) を計算します。
- それらの中間系列それぞれに対して (EMA_{N_2}) を計算します。
- 確認したい特定の時点のインデックスで (TSI_t = 100 \times s’_t / a’_t) を計算します。
再現性のための重要な前提
異なるチャートソフトでは実装の細部が異なる可能性があるため、結果を再現するときは次の前提を含めてください。
- EMAの初期化:EMAには開始値が必要です。実装によっては最初のデータ点から始める場合、SMAのシードを使う場合、または他の慣例を使う場合があります。
- 初期期間の扱い:十分なデータ点が存在しない期間では、一部の出力が未定義になったり、遅れて計算されたり、初期化が信頼しにくい形で計算されたりすることがあります。
- モメンタム定義の厳密さ:一部の定義では価格変化を直接使います。別の定義では変形を使いますが、ダブル平滑化されたモメンタム/絶対モメンタムの構造が重要な考え方です。
限界と失敗パターン:何がうまくいかない可能性があるか
-
小さな分母による割り算 TSIは (|m_t|) のEMAに基づく分母を使う比率なので、ある期間でモメンタムがゼロ付近になると分母が非常に小さくなることがあります。その結果、指数が不安定になったり、わずかな変化に対して強く反応する値が出たりする可能性があります。
-
パラメータ感度 (N_1) と (N_2) を変えると、実効的な応答性が変わります。より遅い(大きい) (N_2) は通常、指標をより滑らかにし、反応を遅くします。これは、異なる設定で計算したTSI値同士の比較に影響します。
-
データフィールドと頻度の不一致 ある価格フィールド(たとえば終値と別の利用可能なフィールド)や、ある時間頻度から計算したTSIは、別のフィールドや頻度から計算したTSIと一致しません。
-
EMA初期化の違い 式が同じに見えても、EMAを初期化する方法が異なると、系列の初期部分の値が変わります。計算したTSIをプラットフォームの値と比較する場合は、初期化の挙動を揃えるか、十分な期間が経過した後にのみ比較してください。
-
変換の非予測的な性質 TSIはモメンタムの変換表現です。計算された指数値は、将来のリターンとの関係を保証するものではありません。過去の関係は、市場のレジーム、コスト、執行、データ条件によって変わり得ます。
検証:次に確認すべきこと
TSIの計算を正確に説明し、独立に検証することが目的なら、あなたのセットアップで次を確認してください。
- どの価格系列 (P_t) を使うか(そしてどの頻度か)。
- (m_t) を作るために使うモメンタム定義の厳密な内容。
- EMAの長さ (N_1) と (N_2)。
- EMAの初期化規約(初期値がどのようにシードされるか)。
- 指標が初期期間、または分母が非常に小さいケースをどう扱うか。
特定のパラメータ値と、使用しているデータソース(たとえば価格フィールドとタイムフレーム)を共有できれば、手順を正確に再現し、計算した値を参照出力と比較できます。
DOCUMENT END