テマはどのように計算されるか(計算式・パラメータ・必要データ)
直接の答え:TEMAの計算
TEMAはTriple Exponential Moving Average(トリプル指数平滑移動平均)です。同じ入力価格系列から計算した3つの指数平滑移動平均(EMA)を組み合わせることで、1つの平滑化された値を生成します。
よく使われるTEMAの形は次のとおりです。
- EMA1 = 期間 n の価格系列のEMA
- EMA2 = EMA1のEMA(同じ期間 n)
- EMA3 = EMA2のEMA(同じ期間 n)
そして、
TEMA = 3·EMA1 − 3·EMA2 + EMA3
したがって、3つのEMAを一貫して計算できれば、TEMAも計算できます。
メカニズムまたは定義:どんな入力とパラメータが重要か
1) 入力データ系列
TEMAは、時系列順に並んだ値の系列(しばしばテクニカル分析における「価格」系列)から計算されます。どの系列を使うかを決める必要があります(たとえば終値など)そして、それを一貫して使用してください。
重要な要件:TEMAは、正確な数値入力系列に依存します。2つのソースが異なる価格定義(または異なるリサンプリング規則)を使っている場合、同じ期間でもTEMA値は異なり得ます。
2) 平滑化期間 n
上の式で明示的に指定されている唯一のパラメータは、期間長 n です。
- n はEMAがどれくらい素早く反応するかを制御します。
- n が大きいほど、一般により強く平滑化され(反応は遅くなる)。
- n が小さいほど、一般により速く反応し、しばしば短期の変動が大きくなります。
3) EMAステップ(構成要素)
TEMAを計算する前に、まずEMAを計算します。標準的なEMAの更新では、平滑化係数を使います。
α = 2 / (n + 1)
よくある再帰的な定義は次のとおりです。
EMA_t = α·Price_t + (1 − α)·EMA_(t−1)
再帰を開始するには、最初のEMA値に対する初期化ルールを選ぶ必要があります(たとえば、EMA_(first) を最初のPrice値に設定する、または最初の n 個の値の平均を使う—ソフトウェアによって異なる場合があります)。この初期化の選択は、初期のEMA、ひいては初期のTEMA値に直接影響します。
4) 3つのEMAを構築する
上のEMA定義を使うと:
- EMA1 は、選んだ入力系列から直接計算されます。
- EMA2 は、EMA1系列に同じEMA手順を適用して計算されます。
- EMA3 は、EMA2系列に同じEMA手順を適用して計算されます。
3つとも同じ平滑化期間 n を使うため、同じ α になります。
証拠または例:自己検証できる計算ワークフロー
以下は、あなたのデータでまったく同じように再現できる計算ワークフローです。
この例の前提:
- 数値系列 Price[1…T] を持っている。
- 期間 n を選ぶ。
- α = 2/(n+1) を使う。
- 期間全体を通して、1つの一貫したEMA初期化方法を使う。
手順:
- 次の式で Price[t] から EMA1[t] を計算する:
- EMA1[t] = α·Price[t] + (1−α)·EMA1[t−1]
- 同じEMA更新をEMA1に適用して EMA2[t] を計算する:
- EMA2[t] = α·EMA1[t] + (1−α)·EMA2[t−1]
- 同じEMA更新をEMA2に適用して EMA3[t] を計算する:
- EMA3[t] = α·EMA2[t] + (1−α)·EMA3[t−1]
- それらを組み合わせる:
- TEMA[t] = 3·EMA1[t] − 3·EMA2[t] + EMA3[t]
独立検証のアイデア:
- これらの手順を2回実装する(たとえばスプレッドシートとコードで)場合、同じ α と初期化ルールを使えば、少なくとも最初の「ウォームアップ」部分以降は、両方のTEMA系列はかなり一致するはずです。
制限とリスク:TEMAが誤解を招く、または破綻する場所
1) 初期値は初期化に依存する
EMAは再帰的な定義を使うため、EMA1の開始値が、その後のEMA1の値を決め、さらにEMA2、EMA3へと影響します。つまり、初期のTEMAポイントは実装間で目立って変わる可能性があります。
重要な制限:初期化の正確な使われ方がデータソースで分からない限り、EMAベースの指標の最初の数点は「ウォームアップ」値として扱うべきです。
2) TEMAは依然としてノイズ入力に敏感
TEMAは単純なEMAと比べて遅れを減らすように構成されていますが、基となる価格系列のランダム性を取り除くわけではありません。入力系列に頻繁な小さな反転やノイズがあると、TEMAはより遅い平均よりも大きく振動することがあります。
失敗パターン:不安定、または低品質な系列(たとえば欠損データの影響を受けている、またはサンプリングが一貫していない系列)に対してTEMAを計算すると、出力が信頼できなくなる可能性があります。
3) 現場には異なる定義が存在する
式 TEMA = 3·EMA1 − 3·EMA2 + EMA3 は広く使われていますが、プラットフォームによってはEMAの初期化の扱いが異なったり、実務上わずかに異なる慣習を使ったりすることがあります。その結果、異なるプロバイダーの「TEMA」ラインは完全には一致しないかもしれません。
検証リスク:「TEMA」という名前が計算詳細の完全一致を保証するとは考えられません。プロバイダーの正確なパラメータ設定と初期化を確認する必要があります。
4) 時間軸とデータ前処理が重要
- n* を変えなくても、前処理—たとえばバーのリサンプリング、取引セッションの違い、欠損タイムスタンプの扱い—は入力系列を変え、その結果EMAチェーンも変わります。
重要な制限:TEMA値は、再計算なしでは、時間軸や異なる前処理を施したデータ間で転用できません。
検証または次の質問:TEMAを確認するために何と比較するか
TEMA計算を独立して確認するには:
- 使っている入力系列を確認する(たとえば終値)。
- 期間 n を確認し、それにより α = 2/(n+1) を確認する。
- EMA1のEMA初期化ルールを確認する(そしてEMA2とEMA3が同じ慣習を使っているかどうか)。
- EMA1、EMA2、EMA3を再計算し、次に 3·EMA1 − 3·EMA2 + EMA3 を適用する。
有用な次のステップは、同じデータセットで、同じ初期化を使った2つ目の独立実装で計算したTEMAと比較することです。ウォームアップ領域の後に一致するなら、あなたの仕組みはおそらく正しいです。
さらに進めたい場合は、同じ入力系列におけるTEMAが他の移動平均とどのように関係しているか、また n を変えると平滑さと反応性がどう変わるかも確認できます。