ケルトナーチャネルの計算方法
直接の答え
ケルトナーチャネルは、価格の周りに3本の線を引くことで計算されます。すなわち、通常は移動平均となるミドルラインと、ミドルラインからAverage True Range(ATR)の倍率分だけオフセットした2つの外側バンドです。中核となる要件は、時系列の価格データです。これにより移動平均とATRの両方を計算し、固定パラメータ(期間と倍率)を使ってそれらを組み合わせます。
メカニズムと定義
構成要素
- ミドルライン(基準):通常、選択した価格系列の移動平均(たとえば終値)です。移動平均は、直近の N 個の観測値を平均することでデータを「平滑化」します。
- ボラティリティ指標:ATRは、参照期間(ルックバック)における平均的な価格変動を推定します。ATRは各期間の True Range(TR) を用います。TRは、前の終値に対してギャップがある場合も考慮し、どれだけ価格が動いたかを反映します。
- バンドの構築:上限・下限バンドは、ミドルラインからボラティリティに基づく距離を加減して作られます。
手順ごとの数式(一般形)
次のようにします:
- (P_t) は、時刻 (t) における選択した入力価格(一般に終値)です。
- (MA_t) は、(P_t) の (m) 期間にわたる移動平均(「基準」期間)です。
- (ATR_t) は、時刻 (t) における (n) 期間のATRです。
- (k) は、チャネルの幅をどれくらい広げるかを決めるバンド倍率です。
すると、ケルトナーチャネルの線は通常次のようになります:
- 上限バンド: (Upper_t = MA_t + k \cdot ATR_t)
- ミドルライン: (Middle_t = MA_t)
- 下限バンド: (Lower_t = MA_t - k \cdot ATR_t)
ATRの計算(必要なデータ)
ATRを計算するには、まず True Range (TR_t) を計算します。各期間 (t) で、True Range は次に基づきます:
- 現在の高値 (H_t)
- 現在の安値 (L_t)
- 前の終値 (C_{t-1})
一般的な定義は次のとおりです: [ TR_t = \max\big(H_t - L_t,\ |H_t - C_{t-1}|,\ |L_t - C_{t-1}|\big) ] その後、ATRは通常、(TR_t) を (n) 期間で平均したものです(たとえばWilder型の平滑化のような移動平均手法を使うことが多いですが、実装によって平均方法は異なり得ます)。つまり、平滑化の違いがあると、同じ (n) でも2つの提供元でATRの値が異なることがあります。
移動平均の選択が重要
「基準は移動平均」という考え方の中でも、選択肢はいくつかあります:
- どの価格系列を使うか(終値 vs. 典型価格 vs. その他の組み合わせ)
- 移動平均の種類(単純 vs. 指数など)
- データセットの開始時に移動平均をどのように初期化するか
これらの選択は (MA_t) を変え、結果としてチャネル全体を上下にシフトさせます。
再現できる証拠または例
以下は、再現可能な数値セットアップです。ライブ価格は使わず、依存関係を示します。
前提
- 時間ステップ:期間ごとに1本のバー(たとえば1本のローソク足)。
- 各期間 (t) の入力系列:(H_t, L_t, C_t)。
- ミドルラインは終値の移動平均を使用:(MA_t = SMA_m(C_t))((m) を選ぶ)。
- ATRは (TR_t) から計算し、(n) 期間で平均する。
- 倍率 (k) は固定。
計算フロー
- 各期間のTRを計算 (t\ge 2):
- (TR_t = \max(H_t-L_t, |H_t-C_{t-1}|, |L_t-C_{t-1}|))
- 十分なデータがある各期間でATRを計算:
- (ATR_t = \text{直近 } n \text{ 期間における } TR \text{ の平均})
- ミドルラインを計算:
- (MA_t = \text{ } C \text{ の } m \text{ 期間にわたる移動平均})
- バンドを計算:
- (Upper_t = MA_t + k\cdot ATR_t)
- (Lower_t = MA_t - k\cdot ATR_t)
結果を比較するときに確認すべきこと
これをスプレッドシートやスクリプトで実装し、チャートツールと比較する場合、よくある不一致は次から生じます:
- 基準に使う価格が異なる
- ATRの平均方法が異なる(単純平均 vs. Wilder型の平滑化)
- ATRのオフセットが異なるタイミングで適用されている(たとえば、(ATR_t) が現在のバーを使うのか、前のバーまでで終えるのか)
- 特別な欠損データの扱いを含む、True Rangeの定義の違い
限界と失敗パターン
1) 異なる慣習は異なるチャネルを生む
ケルトナーチャネルは、固定された1つのパラメータセットを持つ単一の普遍的な数式ではありません。構造は一貫しています(基準 ± スケールされたATR)が、実装は次のように異なり得ます:
- 基準価格(終値 vs. その他)
- 移動平均の種類
- ATRの平滑化方法
- バーの整列(アラインメント)と初期化
そのため、2つの情報源でバンドが異なる場合、それは「誤った値」ではなく計算の慣習の違いによる可能性があります。
2) 初期の期間は不安定、または未定義
データセットの開始時には、次を計算するのに十分なバーがないかもしれません:
- (m) 期間にわたる完全な移動平均
- (n) 期間にわたる完全なATR
多くのチャートツールは部分的な値を出力したり、出力を遅らせたり、平均を初期化する方法が異なったりします。比較は、(MA_t) と (ATR_t) の両方が完全に形成されている領域に焦点を当てるべきです。
3) チャネル幅は方向ではなくボラティリティを反映する
バンドはボラティリティに反応しますが、本質的に「結果を予測」するものではありません。バンドが広いということは、ボラティリティ指標が大きいことを意味します。しかし、それは価格がどちらの方向に動くかを示しません。
4) データの質とバーの構築がTRとATRに影響する
ATRは (H_t)、(L_t)、そして前の終値 (C_{t-1}) に依存します。入力データに次がある場合:
- 高値/安値の欠損または修正
- セッションの区切りが異なる
- タイムゾーンのずれ
すると (TR_t) が変わり、それによってATRが変化し、結果としてチャネル幅も変わります。
確認と次の質問
自分の計算を検証するには、1つのデータセットを選び、慣習を明示的に書き出してください:基準(どの移動平均か、どの価格系列か、そして (m))、ATRの方法(TRの定義と (n) 期間での平均方法)、そして倍率 (k)。次に、TRを計算し、ATRを計算し、基準を計算し、最後に (Upper_t) と (Lower_t) を計算します。
さらに進めるなら、(m)、(n)、または (k) を変えると、バンドの反応性と幅がどう変わるかが有用な次の質問です。同じデータを異なるパラメータ値で再実行し、時間の経過とともに (Upper_t) と (Lower_t) がどれくらい早く拡大または縮小するかを観察することで検証できます。