Donchian channelのダウンロードと解説|MT4インジケーター
ドンチャンチャネルのインジケーターがMT4に欲しいです。
FXの不労所得だけで年収2000万を達成しました。
このお悩みに誠意をもって回答します。
この無料EAで不労所得が稼げます
累計テスト120年以上・リアル取引公開2020年~
このページでわかること・できること
〇Donchian channelインジケーターのダウンロード
〇Donchian channelとはどんなインジケーターなのか?
Donchian channelのダウンロード
インジケーターのファイルはここからダウンロードできる。
ダウンロードするファイルは.ex4ファイルとなっているため、MT4のインジケーターフォルダへ移動すれば使用可能となる。
Donchian channelインジケーターのインストール
ダウンロードしたDonchian channelインジケーターはMT4のデータフォルダからindicatorsフォルダを探しファイルを移動する。
indicatorsフォルダにファイルを移動し、MT4を再起動するとインストールが完了する。
Donchian channelインジケーターとは?
Donchian Channelは、Richard Donchianによって開発されたトレンドフォローのインジケーターだ。特定の期間における最高値と最安値をチャート上に表示し、トレンドの方向性やボラティリティを視覚的に捉えることができる。Donchian Channelは、価格が一定期間の範囲内でどの位置にあるのかを示し、トレンドの発見やブレイクアウトの予測に役立つ。
Donchian Channelの構成
Donchian Channelは、3つのラインで構成されている。
- 上限ライン(Upper Line):
- 指定された期間内の最高値をプロットする。
- 下限ライン(Lower Line):
- 指定された期間内の最安値をプロットする。
- 中央ライン(Middle Line):
- 上限ラインと下限ラインの中間値をプロットする。
計算方法
Donchian Channelの計算手順は以下。
データの準備
- 期間(Period):計算に使用する過去のデータの期間数。例えば、20期間と設定した場合、過去20バーのデータを使用する。
- 価格データ:高値(High)、安値(Low)、終値(Close)などの価格データ。
2. 上限ラインの計算
指定した期間内の最高値を計算する。例えば、期間が20の場合、過去20期間の中で最も高い高値を見つける。
[math]{Upper Line}_t = \max(\text{High}_{t-19}, \text{High}_{t-18}, \ldots, \text{High}_t)[/math]
3. 下限ラインの計算
指定した期間内の最安値を計算する。例えば期間が20の場合、過去20期間の中で最も低い安値を見つける。
[math]{Lower Line}_t = \min(\text{Low}_{t-19}, \text{Low}_{t-18}, \ldots, \text{Low}_t)[/math]
4. 中央ラインの計算
上限ラインと下限ラインの中間値を計算する。
[math]{Middle Line}_t = \frac{\text{Upper Line}_t + \text{Lower Line}_t}{2}[/math]
使用方法
- トレンドの識別:
- 上限ラインと下限ラインが広がっている場合、ボラティリティが高いことを示す。
- ラインが狭まっている場合、ボラティリティが低いことを示す。
- ブレイクアウトの検出:
- 価格が上限ラインを超えると、上昇トレンドの可能性がある。
- 価格が下限ラインを下回ると、下降トレンドの可能性がある。
- トレードのエントリーとエグジット:
- トレーダーは、価格が上限ラインを超えた時に買いポジションを取り、下限ラインを下回った時に売りポジションを取ることができる。
- 利益確定や損切りのポイントとしても使用できる。
パラメータ
- 計算期間(Period):
- Donchian Channelの計算に使用する期間を設定する。一般的には20期間が使用されるが、トレーダーの戦略に応じて調整が可能。
- 価格タイプ(Price Type):
- どの価格を使用するか設定する(例:高値、安値、終値など)。
- ラインのスタイルと色(Line Style and Color):
- 各ラインの表示スタイルや色を設定できる。これにより、チャート上での視認性が向上する。
- シフト(Shift):
- ラインを現在の価格から何バー後ろにシフトするかを設定できる。
- アラート機能(Alerts):
- チャネルの上限または下限を突破したときにアラートを発する機能を追加できる。これにより、トレーダーは重要な価格変動を見逃さないようにできる。
チャートにインジケーターが適用される期間
Donchian Channelは指定された期間の最高値と最安値を基に計算されるため、計算には過去のデータが必要となる。したがって、指定された期間(デフォルトは20期間)の足にインジケーターは表示されない。
Donchian Channelのプログラム
//+------------------------------------------------------------------+
//| DnchianChannel.mq4 |
//| Copyright 2024, FX-Bonus.net |
//| https://fx-bonus.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, FX-Bonus.net"
#property link "https://fx-bonus.net/"
#property version "1.00"
#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);
}
//+------------------------------------------------------------------+
ソースコードを詳しく解説
このコードは、MetaTrader 4 (MT4) プラットフォーム上で動作するカスタムインジケーター「Donchian Channel」をMQL4言語で実装したものだ。このインジケーターは、特定の期間内の最高値と最安値を基に上限ライン、下限ライン、中央ラインを描画する。
コードの詳細解説
1. プロパティの設定
#property strict
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Green
#property strict
:- コードの厳密なエラーチェックを有効する。
#property indicator_chart_window
:- インジケーターをメインチャートウィンドウに描画する。
#property indicator_buffers 3
:- 3つのバッファ(上限ライン、下限ライン、中央ライン)を使用することを示す。
#property indicator_color1 Blue
、#property indicator_color2 Red
、#property indicator_color3 Green
:- 各バッファのデフォルトの色を設定する。
2. 入力パラメータ
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; // ブレイクアウトアラート
period
:- Donchian Channelの計算期間を指定。
priceType
:- 使用する価格タイプ(終値、始値、高値、安値など)を指定。
upperColor
,lowerColor
,middleColor
:- 各ラインの色を指定。
lineWidth
:- ラインの太さを指定。
shift
:- ラインのシフトを指定。
alertsOnBreakout
:- ブレイクアウト時にアラートを表示するかどうかを指定。
3. インジケーターバッファの定義
double UpperBuffer[]; double LowerBuffer[]; double MiddleBuffer[];
UpperBuffer
:- 上限ラインの値を保持するバッファ。
LowerBuffer
:- 下限ラインの値を保持するバッファ。
MiddleBuffer
:- 中央ラインの値を保持するバッファ。
4. OnInit
関数
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);
}
SetIndexBuffer
:- 各バッファをインジケーターのインデックスにマッピングする。
SetIndexLabel
:- 各バッファにラベルを設定。
SetIndexStyle
:- 各バッファの描画スタイルを設定。
IndicatorShortName
:- インジケーターの短い名前を設定。
5. OnCalculate
関数
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);
}
OnCalculate
:- インジケーターのメイン計算関数。
if (rates_total < period) return 0;
:- 必要なバー数が不足している場合、計算をスキップする。
int start = (prev_calculated == 0) ? period : prev_calculated - 1;
:- 計算の開始位置を決定します。初回計算時は
period
から開始し、それ以降は前回の計算位置から再開する。
- 計算の開始位置を決定します。初回計算時は
- 指定期間内の高値と安値を計算:
- 内部ループで指定期間内の最高値と最安値を計算する。
UpperBuffer[i + shift] = highestHigh;
:- 上限ラインの値を設定。
LowerBuffer[i + shift] = lowestLow;
:- 下限ラインの値を設定。
MiddleBuffer[i + shift] = (highestHigh + lowestLow) / 2;
:- 中央ラインの値を設定。
- ブレイクアウトのアラート:
alertsOnBreakout
がtrue
の場合、価格が上限ラインを上抜けた場合や下限ラインを下抜けた場合にアラートを表示する。
まとめ
このDonchian Channelインジケーターは、特定の期間内の最高値と最安値を基にトレンドを視覚的に示し、ブレイクアウトのシグナルを提供する。これにより、トレーダーはトレンドの方向性を把握し、適切なトレードのエントリーポイントを見つけることができる。
MT4インジケーターまとめ
-
海外FXのEA_MT4PivotPointsピボットポイントのダウンロードと解説|MT4インジケーター
-
海外FXのEA_MT4【MT4】スキャルピングで使えるオシレーター解説【無料インジケーター】
-
海外FXのEA_MT4TTFのダウンロードと解説|MT4インジケーター
-
海外FXのEA_MT4BSIのダウンロードと解説|MT4インジケーター
-
海外FXのEA_MT4MT4からインジケーターを無料でダウンロード|1350種類から検索
-
海外FXのEA_MT4SuperTrendスーパートレンドのダウンロードと解説|MT4インジケーター
-
海外FXのEA_MT4【MT4】高値と安値がわかる無料インジケーター特集|High Low【海外FX】
-
海外FXのEA_MT4エントリーサインをだすMT4インジケーター特集
-
海外FXのEA_MT4ローソク足の残り時間をカウントダウン表示するMT4インジケーター
-
海外FXのEA_MT4RCIインジケーターのダウンロードと解説|MT4
-
海外FXのEA_MT4GMMA・グッピーのダウンロードと解説|MT4インジケーター
-
海外FXのEA_MT4【無料】マルチタイムフレームのMT4インジケーター特集【最新版】
-
海外FXのEA_MT4Schaff Trend Cycleのダウンロードと解説|MT4インジケーター
-
海外FXのEA_MT4【MT4】ピボットのインジケーター特集【無料】
-
海外FXのEA_MT4T3のダウンロードと解説|MT4インジケーター
-
海外FXのEA_MT4Donchian channelのダウンロードと解説|MT4インジケーター
-
海外FXのEA_MT4平均足をサブウィンドウに表示するMT4インジケーター
-
海外FXのEA_MT4TEMAのダウンロードと解説|MT4インジケーター
-
海外FXのEA_MT4【海外FX】ボリンジャーバンドを使ったMT4のインジケーター特集【無料】
-
海外FXのEA_MT4平均足Smoothdのダウンロードと解説|MT4インジケーター
-
海外FXのEA_MT4Aroonのダウンロードと解説|MT4インジケーター
-
海外FXのEA_MT4市場の時間をチャートに表示するMT4インジケーター|MarketCrock
-
海外FXのEA_MT41日の区切りに垂直ラインを引くMT4インジケーター|OneDayLine
-
海外FXのEA_MT4TMAのダウンロードと解説|MT4インジケーター