Donchian Channel(ドンチャンチャネル)は、相場のブレイクアウトを捉えるのに適したトレンド系インジケーターです。MT4に導入することで、一定期間の価格レンジを視覚的に把握でき、順張り・逆張りの判断材料として活用できます。
本記事では、Donchian Channelの特徴・使い方・設定項目をわかりやすく解説し、MQL4ソースコードの構造まで公開しています。
✅ Donchian Channelインジケーター(無料)を今すぐダウンロードする
👇以下のボタンから .ex4
ファイルをダウンロードし、MT4にインストールしてご利用ください。
※ダウンロード後はMT4の「データフォルダ」>「MQL4」>「Indicators」に保存してください。
Donchian Channelとは?|価格帯のブレイクアウトを視覚化するMT4インジケーター

Donchian Channel(ドンチャンチャネル)は、相場の高値・安値をもとに価格帯を視覚化するインジケーターです。一定期間の最高値・最安値を基準にチャネル(帯域)を形成し、その範囲内での価格の推移を把握することで、トレンドの発生やブレイクアウトの兆候を分析できます。
MT4に対応したDonchian Channelインジケーターを活用すれば、順張りエントリーや損切りの目安を視覚的に把握できるため、トレード判断の補助ツールとして非常に有効です。
開発者リチャード・ドンチアンとインジケーターの背景
Donchian Channelは、アメリカの著名トレーダー リチャード・ドンチアン(Richard Donchian) によって考案されました。彼は「トレンドフォロー戦略の先駆者」とも呼ばれ、システマティックな取引手法の普及に大きく貢献した人物です。
Donchian Channelは、過去の高値・安値から相場のレンジやブレイクポイントを明確に可視化することを目的に開発され、現在でも多くのプロトレーダーに活用されています。
Donchian Channelの基本構造|3つのラインの意味
Donchian Channelは、以下の3本のラインで構成されます:
- 上限ライン(Upper Line)
過去○期間における最高値を表示。価格がこれを超えると「ブレイクアウト」と判断されやすい。 - 下限ライン(Lower Line)
過去○期間における最安値を表示。価格がこれを下回ると「下方ブレイク」と判断されやすい。 - 中央ライン(Middle Line)
上限と下限の中間値を表示。トレンド方向の確認やレンジ相場の中心として使われます。
この構成により、トレンドフォロー型・ブレイクアウト型・逆張り型のいずれの戦略にも応用可能です。
計算方法とその仕組み(上限・下限・中央ライン)
Donchian Channelの各ラインは、指定された「期間(Period)」に基づいて以下のように計算されます:
- 上限ライン(Upper Line)
過去◯本のローソク足の中での最高値
例:Periodが20の場合 → 過去20本の高値の中で最大の値をプロット - 下限ライン(Lower Line)
過去◯本のローソク足の中での最安値
例:Periodが20の場合 → 過去20本の安値の中で最小の値をプロット - 中央ライン(Middle Line)
(上限 + 下限) ÷ 2
中間価格として、ブレイクの方向性やエントリーポイントの判断に役立ちます。
このシンプルなロジックにより、Donchian Channelは相場の転換点や方向感を直感的に掴みやすく、視認性の高いインジケーターとして重宝されています。
Donchian Channelの活用方法|トレンド分析とエントリーの精度向上
Donchian Channelは、相場のトレンド判定やエントリーポイントの精度向上に役立つインジケーターです。上限・下限のラインを突破したときにブレイクアウトとして捉えたり、チャネルの幅を使ってボラティリティを判断したりと、使い方は多岐にわたります。
ここでは、Donchian Channelを活用する3つの代表的な方法をご紹介します。
トレンド判断への活用
Donchian Channelの最も基本的な用途がトレンドの方向性を見極めることです。
- チャネルの幅が拡大しているとき
→ 市場に勢いがあり、トレンドが強く進行中である可能性が高いです。 - チャネルの幅が収縮しているとき
→ ボラティリティの低下を示し、レンジ相場やトレンド転換の兆候であることも。
また、**価格がチャネルの上半分で推移していれば上昇トレンド、下半分なら下降トレンドと判断されることもあります。**シンプルな構造ながら、トレンド分析の基礎として有効です。
ブレイクアウトの検出とエントリー戦略
Donchian Channelは、ブレイクアウト手法と非常に相性が良いインジケーターです。
- 価格が上限ラインを上抜けた場合
→ 新たな上昇トレンドの開始と判断し、「買いエントリー」のシグナルになります。 - 価格が下限ラインを下抜けた場合
→ 新たな下降トレンドの開始と判断し、「売りエントリー」のシグナルとなります。
このように、価格が過去一定期間のレンジを突破するタイミングでトレードを仕掛けることで、初動に乗るチャンスが得られます。
特に、ボラティリティが縮小した後のブレイクアウトは、勢いがつきやすく、高い勝率を期待できる戦略です。
損切り・利確ポイントとしての応用
Donchian Channelは、損切り(ストップロス)や利確(テイクプロフィット)の目安としても有効です。
- 買いポジション時
→ 下限ラインを損切りラインとして設定することで、トレンド崩壊時のリスクを抑制できます。 - 売りポジション時
→ 上限ラインを損切りラインにすることで、急騰による損失を制限できます。
また、中央ライン(Middle Line)を中間目標値や部分利確の基準にすることも可能です。
このように、Donchian Channelはエントリーだけでなく、出口戦略にも活用できる点が大きな強みです。あらかじめラインを基準に戦略を立てておくことで、感情に流されない機械的なトレードが可能になります。
Donchian Channelインジケーターの設定方法|パラメーター解説付き
Donchian Channelインジケーターは、トレーダーの戦略や好みに合わせて柔軟にカスタマイズ可能です。表示するラインの色や太さはもちろん、チャネルを計算する期間や価格の種類なども細かく設定できます。
ここでは、設定できる主なパラメーターとその意味、実践的なカスタマイズ例、さらに便利なアラート機能の活用方法について解説します。
設定できる主要パラメーター一覧

MT4版Donchian Channelで設定できるパラメーターは以下のとおりです:
パラメーター名 | 説明 |
---|---|
period (計算期間) | 過去何本のローソク足を対象にするかを設定。例:20なら過去20本の高値・安値でチャネルを描画。 |
priceType (価格の種類) | 高値・安値・終値など、どの価格を基準にするか。通常は終値(Close)が使われます。 |
upperColor lowerColor middleColor | 各ラインの色。視認性を考えて明確な色を設定しましょう。 |
lineWidth (ラインの太さ) | チャネルラインの太さを設定。見やすい太さに調整可能。 |
shift (シフト) | チャネルを何本分右(または左)にずらすかを指定。0のままでOKなケースがほとんど。 |
alertsOnBreakout (ブレイクアウトアラート) | チャネルの上下限を価格が突破したときにアラート通知を行うかを指定。trueで有効化されます。 |
おすすめの設定値とカスタマイズ例
✅ 期間(period
)のおすすめ値
- 20期間:最も一般的な設定。デイトレードやスイングトレードに適しています。
- 10期間:短期トレード向け。ブレイク頻度は上がりますがノイズも増加。
- 50期間以上:長期トレンドを狙うスイング〜ポジショントレードに。
✅ ライン色のおすすめ
- 上限ライン:ブルー系(上昇イメージ)
- 下限ライン:レッド系(下降イメージ)
- 中央ライン:グリーンやグレーなど中間色が無難です。
✅ シフト設定は基本「0」でOK
Shiftは特殊なケースを除き、**0(ずらさない)**設定が最も使いやすいです。
アラート機能の活用でチャンスを逃さない
Donchian Channelには、ブレイクアウトを検出したときにアラートを発する機能が搭載されています。
🔔 有効化方法
パラメーターの alertsOnBreakout
を true
に設定するだけでOKです。
📈 通知される条件
- 価格が上限ラインを上抜けた場合
- 価格が下限ラインを下抜けた場合
これにより、相場に張り付いていなくてもブレイクアウトのチャンスを逃さず把握できます。
スキャルピングや忙しいトレーダーには特に便利な機能です。
Donchian ChannelインジケーターのダウンロードとMT4への導入手順
Donchian Channelインジケーターは、以下の手順でMT4に簡単に導入できます。ここでは、ファイルの入手方法からMT4へのインストール手順、表示されない場合の対処法までを画像付きで解説します。
ダウンロード方法とファイル形式
Donchian Channelは、当サイトで無料配布している**「.ex4」形式のMT4用インジケーターファイル**を使用します。
✅ 以下のリンクから、インジケーターファイルをダウンロードしてください。
MT4でのインストール手順
- MT4を起動し、[ファイル] → [データフォルダを開く] をクリック
MT4のルートフォルダが開きます。 - 「MQL4」→「Indicators」フォルダを開く
ダウンロードした「DonchianChannel.ex4」ファイルをこのフォルダにドラッグ&ドロップします。 - MT4を一度再起動
再起動後、ナビゲーターウィンドウに新しいインジケーターが表示されるようになります。 - ナビゲーターからチャートへドラッグして適用
左メニュー「ナビゲーター」内の「DonchianChannel」をダブルクリック、またはチャートにドラッグすれば適用完了です。
🖼️ ※手順に合わせたスクリーンショットを挿入すると、初心者にも分かりやすくなります。
インジケーターが表示されない場合の対処法
インジケーターを導入したのにチャートに表示されない場合、以下の点を確認してください:
✅ 1. MT4を再起動していない
→ インジケーターを追加したあとは必ずMT4を再起動する必要があります。
✅ 2. ファイル形式が「.ex4」になっていない
→ .mq4
のままでは動作しないケースもあります。必ず「コンパイル済みの.ex4ファイル」を使用してください。
✅ 3. 表示期間が不足している
→ Donchian Channelは、指定された「計算期間」分のデータがないと表示されません。
→ たとえば20期間の場合、最低20本のローソク足が必要です。
✅ 4. MT4の「エキスパートログ」にエラーが出ていないか確認
→ メニューの「ツール」→「ターミナル」→「エキスパート」タブを開くことで確認できます。
Donchian ChannelのMQL4ソースコードと技術解説(学習者向け)
Donchian Channelインジケーターのソースコードは、シンプルな構造ながら、MT4でのライン描画やアラート設定の基本を学べる教材としても優れています。
ここでは、コードの全体構成や主要関数の役割をわかりやすく解説します。
コード全文はこちらをクリック
#property strict
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Green
//--- input parameters
input int period = 20; // 計算期間
input ENUM_APPLIED_PRICE priceType = PRICE_CLOSE; // 使用する価格タイプ
input color upperColor = Blue; // 上限ラインの色
input color lowerColor = Red; // 下限ラインの色
input color middleColor = Green; // 中央ラインの色
input int lineWidth = 1; // ラインの太さ
input int shift = 0; // ラインのシフト
input bool alertsOnBreakout = false; // ブレイクアウトアラート
//--- indicator buffers
double UpperBuffer[];
double LowerBuffer[];
double MiddleBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
// Indicator buffers mapping
SetIndexBuffer(0, UpperBuffer);
SetIndexBuffer(1, LowerBuffer);
SetIndexBuffer(2, MiddleBuffer);
// Indicator lines descriptions
SetIndexLabel(0, "Upper Line");
SetIndexLabel(1, "Lower Line");
SetIndexLabel(2, "Middle Line");
// Indicator styles
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, lineWidth, upperColor);
SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, lineWidth, lowerColor);
SetIndexStyle(2, DRAW_LINE, STYLE_SOLID, lineWidth, middleColor);
// Indicator parameters
IndicatorShortName("Donchian Channel (" + IntegerToString(period) + ")");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
// 必要なバー数が不足している場合は計算しない
if (rates_total < period) return 0;
// 初期化の範囲を決定
int start = (prev_calculated == 0) ? period : prev_calculated - 1;
// 指定期間の高値と安値を計算
for(int i = start; i < rates_total; i++)
{
double highestHigh = high[i];
double lowestLow = low[i];
for(int j = 1; j < period; j++)
{
if(i - j < 0) break;
if(high[i - j] > highestHigh) highestHigh = high[i - j];
if(low[i - j] < lowestLow) lowestLow = low[i - j];
}
UpperBuffer[i + shift] = highestHigh;
LowerBuffer[i + shift] = lowestLow;
MiddleBuffer[i + shift] = (highestHigh + lowestLow) / 2;
// ブレイクアウトのアラート
if(alertsOnBreakout && i > start)
{
if(close[i - 1] <= UpperBuffer[i - 1] && close[i] > UpperBuffer[i])
Alert("価格が上限Donchian Channelを上抜けました: ", TimeToString(time[i], TIME_DATE|TIME_MINUTES));
if(close[i - 1] >= LowerBuffer[i - 1] && close[i] < LowerBuffer[i])
Alert("価格が下限Donchian Channelを下抜けました: ", TimeToString(time[i], TIME_DATE|TIME_MINUTES));
}
}
return(rates_total);
}
//+------------------------------------------------------------------+
コード全体構成と初期設定のポイント
このインジケーターは、以下の構成で成り立っています。
✅ 基本のプロパティ設定
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Green
indicator_chart_window
:チャート本体に描画(サブウィンドウではない)
indicator_buffers
:3本のライン用にバッファを3つ使用
indicator_color1~3
:各ラインの初期色を定義
✅ ユーザー設定の入力パラメータ
input int period = 20;
input ENUM_APPLIED_PRICE priceType = PRICE_CLOSE;
input color upperColor = Blue;
input bool alertsOnBreakout = false;
トレーダーが変更可能な設定を柔軟に定義しています。
ブレイクアウト検知の有無までパラメータ化されているのが実用的です。
描画処理とバッファの使い方
チャネルの描画には、3つのバッファ(配列)を使用しています:
double UpperBuffer[];
double LowerBuffer[];
double MiddleBuffer[];
それぞれ以下のように役割が決まっています:
バッファ名 | 役割 |
---|---|
UpperBuffer | 上限ライン(最高値) |
LowerBuffer | 下限ライン(最安値) |
MiddleBuffer | 中央ライン(中間値) |
SetIndexBuffer()
関数を使って、各バッファをインジケーターとして描画対象に登録します:
SetIndexBuffer(0, UpperBuffer);
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, lineWidth, upperColor);
バッファには、OnCalculate()
内でループ処理によってデータが格納されます:
UpperBuffer[i] = 最高値;
LowerBuffer[i] = 最安値;
MiddleBuffer[i] = (最高値 + 最安値) / 2;
この形式は、多くのライン系インジケーターで共通なので、MQL4のバッファ操作に慣れるための基礎として最適です。
ブレイクアウト検知とアラート実装の仕組み
Donchian Channelには、チャネルの上限または下限を価格が突破した際にアラートを出す機能が搭載されています。
if(alertsOnBreakout && i > start) {
if(close[i - 1] <= UpperBuffer[i - 1] && close[i] > UpperBuffer[i]) {
Alert("価格が上限Donchian Channelを上抜けました");
}
if(close[i - 1] >= LowerBuffer[i - 1] && close[i] < LowerBuffer[i]) {
Alert("価格が下限Donchian Channelを下抜けました");
}
}
alertsOnBreakout
がtrueのときだけ通知が有効化されます。- 直近の終値と前の終値を比較することでブレイクの瞬間を捉えるロジックです。
このようなブレイク判定ロジックは、EAや他インジケーターの開発にも応用可能であり、初級者にも学習効果が高いポイントです。
Donchian Channelと相性の良いインジケーター・手法
Donchian Channelは単体でもトレンドの視認やブレイクアウト戦略に役立つインジケーターですが、他のテクニカルツールと組み合わせることで、より精度の高い判断が可能になります。
ここでは、特に相性の良いインジケーターと活用例を紹介します。
ボリンジャーバンドとの併用でトレンド検出精度UP
Donchian Channelとボリンジャーバンドを重ねて表示することで、価格の勢いとボラティリティのバランスを視覚的に捉えることができます。
✅ 組み合わせるメリット
- Donchian Channelは高値・安値の水準を示すレンジ型指標
- ボリンジャーバンドは標準偏差による価格の分布を示す統計型指標
このため、
- 両方の上限をブレイクした場合は、トレンド発生の信頼性が高い
- 逆に、Donchianがブレイクしてもボリンジャーが収束している場合は「ダマシ」の可能性がある
といった形でフィルタリングが可能です。
平均足との組み合わせでノイズを減らす
Donchian Channelは、値動きの振幅が大きい相場ではだましブレイクも発生しやすくなります。そこで有効なのが平均足(Heikin Ashi)との併用です。
✅ 活用方法
- 平均足の色が連続して同じ方向に伸びているときにDonchianがブレイク
→ トレンドの本格化としてエントリー判断をサポート - 平均足が短期で反転しやすい状況では、Donchianのブレイクも見送りやすい
ノイズを平滑化した平均足を参照することで、Donchianのシグナルの信頼性を補強することができます。
エントリー・エグジットロジックの具体例
以下に、Donchian Channelを軸にしたシンプルなエントリーロジックの例を紹介します。
✅ 買いエントリー戦略(順張り型)
- 現在価格が上限ラインをブレイク
- 平均足が陽線で、直前の2本も陽線
- ボリンジャーバンドも拡大中
→ 上昇トレンドと判断し、買いポジションをエントリー
- 利確目安:中央ライン or 指定pipsで固定
- 損切りライン:直近の下限ラインを下回った場合
✅ 売りエントリー戦略(逆張り応用型)
- Donchianの上限ライン付近でローソク足の反転パターン出現
- RSIやストキャスが買われ過ぎ領域
- 平均足が陰線に転じた
→ 上限付近での戻り売りを狙う戦略
このように、Donchian Channelは複数のテクニカルと組み合わせることで、トレードの精度や再現性を高められる汎用性の高いインジケーターです。
よくある質問(FAQ)
- Donchian Channelの「おすすめの期間設定」はありますか?
-
一般的には20期間が標準として使用されます。
短期トレードには10期間前後、長期トレードでは50期間以上に調整することで、戦略に応じた使い方が可能です。
自分の取引スタイルに合った期間にカスタマイズしてみましょう。 - インジケーターがチャートに表示されないのですが?
-
以下の点を確認してください:
- MT4を再起動しましたか?
.ex4
ファイルが「MQL4 > Indicators」フォルダに正しく保存されていますか?- 設定した「期間」よりもローソク足本数が少ないチャートを見ていませんか?
表示されない場合は、一度MT4を再起動し、ナビゲーターから手動で適用してみてください。
- ブレイクアウトアラートを有効にするにはどうすればいいですか?
-
インジケーターのパラメーター設定画面で、
alertsOnBreakout
をtrue
に変更してください。
これにより、価格がチャネルの上下限を突破した際にアラートが発生します。
相場に張り付かなくてもブレイクのチャンスを把握できる便利な機能です。 - 自動売買(EA)でもDonchian Channelは使えますか?
-
はい、可能です。
MQL4ではiCustom()
関数を使って、EAからDonchian Channelの値(上限・下限など)を参照できます。
たとえば「上限ラインを超えたら買いエントリー」など、ブレイクアウト戦略に組み込むロジックとして非常に有効です。 - 他のインジケーターと一緒に使うときの注意点は?
-
Donchian Channelはトレンド指標のため、オシレーター系や価格平均系と組み合わせるのが効果的です。
ただし、インジケーターのシグナルが矛盾している場合は様子を見る判断も重要です。相関のあるロジックに限定して併用するのがベストです。
まとめ|Donchian Channelでブレイクアウト戦略を強化しよう
Donchian Channelは、シンプルながら高機能なトレンド系インジケーターです。過去の高値・安値をもとに価格帯を可視化し、相場の方向性やブレイクアウトのタイミングを明確に捉えることができます。
MT4に導入すれば、チャート上に視覚的なガイドラインが引かれ、初心者でもトレンドフォローや逆張り戦略の判断がしやすくなります。さらに、ボリンジャーバンドや平均足と併用することで、ノイズの除去やシグナルの精度向上にもつながります。
特に、アラート機能付きのDonchian Channelは、エントリータイミングの見逃しを減らし、日々のトレード効率を高める大きな味方となるでしょう。
この記事で紹介したインジケーターのように、取引効率を上げる無料ツールをお探しの方へ。
当サイトの無料EA一覧ページでは、実用性の高い自動売買ツールを多数紹介しています。
👉 無料EAを探す