ドンチャン・チャネルはどのように計算されるか

ドンチャン・チャネルの計算式の入力と制限。

ドンチャン・チャネルはどのように計算されるか

直接の答え

ドンチャン・チャネルは、一定の参照期間(lookback window)における最高価格と最安価格を取り、その2つのローリング極値をチャネル境界としてプロットすることで計算されます。よく使われる3本目の線は、通常、上限と下限の平均(ミッドポイント)です。

重要な検証ポイントは、あなたのデータセットにおける「価格」が何を意味するか(たとえばローソク足の高値/安値)と、参照期間の長さ(しばしば period と呼ばれる)を正確に理解することです。これらの入力を一貫して再現できれば、インジケーター値を独立して確認できます。

メカニズム:定義と入力

基本的な考え方

時点ごと(多くの場合、各ローソク足/バーごと)に、ドンチャン・チャネルは直近の N 本のバーに対して2つのローリング関数を使います。

  • 上限バンド = 過去 N 本のバーにおける 最大値(high の最大)。
  • 下限バンド = 過去 N 本のバーにおける 最小値(low の最小)。

任意で、多くの実装では次も描画します。

  • 中間バンド = (上限バンド + 下限バンド) / 2。

あなたが決める必要がある入力

ドンチャン・チャネルを計算するには、次が必要です。

  1. ローソク足またはバーの時系列(一定間隔)または同等のタイムスタンプ付きデータセット。
  2. 各バーの 高値と安値。高値と安値を使うのが最も標準的な方法です。終値(close)を使うと、それは別のインジケーターになります。たとえ人々が雑に「ドンチャン」と呼んでいても同様です。
  3. 参照期間 N(例:多くの文脈で 20 本がよく使われますが、任意の整数 N を使えます)。
  4. 整合(アラインメント)のルール:時点 t の値は、t で終わるウィンドウ内のバーから計算されます(あるいは、実装によっては前のバーで終わる場合もあります)。検証時は、実装の慣習に合わせてください。

自己チェックのための前提

自分のデータで数学を検証するときは、次を前提にします。

  • バーは時系列順に並んでいる。
  • 各バーには高値と安値がある。
  • 参照ウィンドウは、あなたが選んだ 直近 N 本のバーである。
  • 先読みはない:時点 t の上限・下限の値は、t までに利用可能な情報だけを使わなければならない。

式:バンドがどのように計算されるか

次のとおりとします。

  • t は現在のバーのインデックス。
  • N は参照期間。
  • High[i] はバー i の高値。
  • Low[i] はバー i の安値。

すると、ドンチャン・チャネルは通常次のように定義されます。

  • Upper(t) = max(High[t−N+1], … , High[t])
  • Lower(t) = min(Low[t−N+1], … , Low[t])
  • Mid(t) = (Upper(t) + Lower(t)) / 2(任意だが一般的)

「ローリング」とは何か

「ローリング」とは、新しいバーが来るたびに最大値と最小値が再計算されることです。

  • t から t+1 に進むと、ウィンドウは1本分前にずれます。
  • 以前の最も遠いバーはウィンドウから外れ、新しいバーが入ります。

そのため、バンドは飛び跳ねることがあります。極値がウィンドウに入ったり外れたりすると、最大の高値や最小の安値が突然変わり得るからです。

証拠または例:1ステップを手計算する

参照期間が N = 3 の簡略化したデータセットを仮定します。あるバー t について、直近3本のバーが次のようになっているとします。

  • High[t−2] = 1.1000, High[t−1] = 1.1030, High[t] = 1.1010
  • Low[t−2] = 1.0950, Low[t−1] = 1.0960, Low[t] = 1.0970

このとき、

  • Upper(t) = max(1.1000, 1.1030, 1.1010) = 1.1030
  • Lower(t) = min(1.0950, 1.0960, 1.0970) = 1.0950
  • Mid(t) = (1.1030 + 1.0950) / 2 = 1.0990

次のバー t+1 でも同様に繰り返すと、ウィンドウから最も古いバーを落として、新しいバーの高値と安値を含めます。もしあなたの数値が実装と異なる場合、その違いは通常、入力の不一致(high/low と close の取り違え)またはウィンドウの整合の不一致(現在のバーを含める/含めない)によって生じます。

制限とよくある失敗パターン

1) データ定義の不一致

エラーの頻出原因は、データ提供者間で定義が一貫していないことです。

  • 一部のソースでは価格を調整している場合があります(長い過去データや特定の市場でより関係が深い)。
  • ローソク足の構築は、フィード、タイムゾーンの扱い、プラットフォームがティックをバーに集約する方法に依存します。
  • 欠損や流動性の低い期間は、異常な高値/安値を生み得ます。

式が正しくても、2つのデータセットで異なるチャネルになることがあります。

2) 「先読み(look-ahead)」と整合の混乱

実装が次のバーで終わるウィンドウを使う場合(意図的または偶発的に)、実質的に時点 t では利用できない情報を使っていることになります。検証時は次を確認してください。

  • 時点 t の max/min は t までのバーだけを使っている。
  • 同じインデックス規約を適用している(t で終わる/t−1 で終わる)。

3) ウィンドウ端の挙動

最も初期のバーでは、N 本のバーが揃うまでバンドを計算できません。いくつかのプラットフォームでは空欄や途中結果が出力されます。これは序盤の区間や、開始が早すぎるバックテストに影響します。

4) ローリング極値はスパイクに敏感になり得る

上限バンドはローリング最大値であり、下限バンドはローリング最小値です。そのため、高値または安値の一時的なスパイクが、最大で N 本分、境界を外側に引っ張る可能性があります。実務上は、チャネルが継続的な値動きではなく外れ値を反映してしまうことを意味します。

5) 「含意(implications)」との関係は自動ではない

計算が正しくても、バンドは過去の高値と安値の記述的な関数にすぎません。解釈の仕方は文脈や追加ルールに依存します。インジケーター自体は、本質的に単独のシグナルを提供するわけではありません。

検証と次の質問

ドンチャン・チャネルを独立して検証するには:

  1. 参照期間 N を選ぶ。
  2. 各バーに 高値と安値がある、単一で一貫した価格データセットを使う。
  3. 選んだいくつかのタイムスタンプについて、Upper(t) を高値のローリング最大値として、Lower(t) を安値のローリング最小値として計算する。
  4. 中間線が含まれている場合、ミッドポイントが (Upper + Lower)/2 と一致するか確認する。
  5. 整合を確認する:ウィンドウが現在のバーを含むかどうかを検証する。

また、ドンチャン・チャネルが他のボラティリティ指標やレンジ系ツールと異なる挙動をするのがいつかを理解したいなら、次の有用な質問は、関連する概念の定義がどのように変わるか、特にそれらが高値/安値、終値、平均レンジのどれを使うのか、という点です。

DOCUMENT END

外国為替およびCFD取引には大きなリスクがあります。FoxiForexの情報は教育目的であり、個別の金融助言ではありません。スポンサー掲載は明確に表示されます。