インディケータ: Donchianチャンネル

 

Donchianチャンネル:

ドンチャンチャンネルは最近の最高値と最安値を使用した現在の価格帯の計算に基づくボラティリティインディケータです。 .

Donchianチャンネル

作者: Nikolay Kositsin

 

以下の2行を修正する必要がある。

ケース HIGH_LOW_OPEN:

SsMax=(open[iHighest(open,DonchianPeriod,bar)]+high[iHighest(high,DonchianPeriod,bar)])/2;
SsMin=(open[iLowest(open,DonchianPeriod,bar)]+low[iLowest(
high,DonchianPeriod,bar)])/2;
break;

case HIGH_LOW_CLOSE:
SsMax=(close[iHighest(close,DonchianPeriod,bar)]+high[iHighest(high,DonchianPeriod,bar)])/2;
SsMin=(close[iLowest(close,DonchianPeriod,bar)]+low[iLowest(high,DonchianPeriod,bar)])/2;
break
 
Stonev:

そうだ!その方が理にかなっていると思う。
 

FXの基本的なブレイクアウト戦略

トーキングポイント:

  • 支持線と抵抗線を見つけるためのFXのヒント。
  • ドンチアンチャネルを使ったブレイクアウトのエントリー方法を学ぶ。
  • 逆指値注文でブレイクアウト取引計画を完成させる。

外国為替市場は強いトレンドで知られており、ブレイクアウト戦略の取引は市場への効果的なアプローチとなります。通常、ブレイクアウト戦略の最初のステップは、通貨ペアのサポートとレジスタンスの重要なレベルを特定することです。今日は、GBPUSDの取引設定を完了させながら、まさにその目的のためにドンチアンチャネルを使用することを検討します。

さっそく始めよう!


ドンチアンチャネル

ドンチアンチャネルは、どのようなチャートにも適用でき、現在のサポートとレジスタンスのレベルを推定することができます。ドンチ・チャネルは、選択した期間のグラフの高値と安値を明確に特定することで、これを実現します。上の図は、GBPUSDの4時間足チャートにドンチ ャネルを適用したものです。チャネルラインは、現在の20期間の高値と安値をハイライトしており、ブレイクアウトを取引する際のサポートとレジスタンスとして使用できます。下降トレンドのブレイクアウト・トレーダーは、トレンド方向に新規エントリーする前に、価格が下降チャネルの下にブレイクすることを確認します。上昇トレンドの場合も同様で、トレーダーは上限チャネルをエントリー可能なエリアと判断します。

GBPUSDの価格は、10月の月間で346ピップスも下落しているため、多くのトレーダーは、安値に向かうブレイクアウトでペアを売るための新しいエントリーを特定したいと考えるでしょう。現在の安値は1.5913であり、トレーダーはこの値より下へのブレイクアウトの準備を始めることができます。下の写真のように、ブレイクアウトのセットアップのサンプルがあります。GBPUSDの売りエントリー注文は、サポートより最低1ピップ下で発注することができるため、トレーダーは安値へのブレイクアウトで市場に参入することができます。


リスクの設定

どの戦略でもそうですが、ブレイクアウトトレーダーは取引にストップを組み込むべきです。ドンチ ャ ン ネ ル を 使 用 す れ ば 、こ の 手 順 は 非 常 に 簡 単 で す 。ドンチアンチャネルを使用する場合、このプロセスは非常に簡単です。下降トレンドでは、価格は安値を更新し、この値を下回ることが予想されます。新高値が更新され、上側のチャネルを突破した場合、トレーダーはポジションを手仕舞いたくなるでしょう。トレーダーはまた、トレンドが継続する中、利益を確定するために、手動でストップ注文をテールおよび移動させることもできます。ブレイクアウト・トレーダーが採用できる取引のヒントは、取引が有利に進むにつれて、このプリセット・ストップを価格決定チャネルの下降とともに移動させることである。

 

取引、自動取引システム、取引戦略のテストに関するフォーラム

インジケータードンチャンネル

ニューデジタル, 2014.01.18 07:34

ドンチアンチャネルの使い方 dailyfxの記事より 引用)

  • まずトレンドを見極める
  • ドンチアンチャネルを使ってFXブレイクアウトにエントリーする方法を学びましょう。
  • チャネルは、ストップをトレールし、利益を確定するために使用できます。

FX市場は強いトレンドで知られており、サポートとレジスタンスレベルのブレイクアウトを取引することは、市場に対する効果的なアプローチとなります。このような市場環境に対応するため、本日はドンチ ャネルを使った3ステップのブレイクアウト戦略を紹介します。

トレンドを見つける

トレンドトレードの最初のステップは、トレンドを見つけることです!下図のようなトレンドを見極める方法はたくさんありますが、最も簡単な方法の1つ は、200期間MVA(移動平均線)を使う方法です。まず、このインディケータをチャートに追加し、価格が平均を上回るか下回 るかを確認します。こうして、トレンドと取引のバイアスを判断します。

上 記 の 情 報 を 考 慮 す れ ば 、ト レ ー ダ ー は 、価 格 が 平 均 を 上 回 っ て い る 時 点 で 、上 昇 ト レ ン ド に あ る EURJPYを買う機会を探すべきでしょう。また、下の写真のAUDNZDは、200期間のMVAの下に価格があるため、売りのチャンスがあります。このような情報が得られれば、ブレイクアウトの可能性に対してエントリー場所を計画することができます。


ドンチアン・チャネルの取引

ドンチアン・チャネルは、あらゆるチャートに適用できるテクニカル・ツールです。選択した期間の高値と安値をグラフ上で特定することで、現在のサポートとレジスタンスのレベルをピンポイントで特定するために使用されます。今日の戦略では、20期間を使用します。つまり、チャネルは20日間の高値と安値を特定するために使用されます。

EURJPYの価格は200MVAの上で取引されているため、トレーダーは高値に向かうブレイクアウトでペアを購入するための新しいエントリーを特定したいと考えるでしょう。ドンチアンチャネルによって145.68で特定された現在の20日高値で、トレーダーはEURJPYをこの値より1ピップ上で買うエントリーを設定することができます。


下降トレンドで売りポジションを開始するプロセスは正反対です。もう一度、下の写真のAUD/NZD日足グラフを見てみましょう。価格が200MVAの下にあるため、トレーダーは価格が20日安値を更新した場合に売りポジションを持つことになります。現在、この安値は.8775であり、トレーダーはこの値の下で新規売りポジションを開始することができる。


リスクとトレーリング・ストップの設定

どのような戦略で取引する場合でも、ストップの設定とリスク管理を考慮する必要がある。ドンチ ャ ン ネ ル を 使 用 す れ ば 、こ の プ ロ セ ス を 簡 単 化 で き ま す 。ドンチアンチャネル(20日高値または安値)は、支持線または抵抗線として機能します。上昇トレンドでは、価格は高値を更新し、この値を上回ると予想されます。もし、価格がチャネル下限を通過し、20日間の安値を更新した場合、トレーダーはロ ングポジションを手仕舞うでしょう。逆に、下降トレンドの場合、トレーダーは現在の20日間の高値でストップ注文を出したいと考えるでしょう。こうすることで、トレーダーは新高値更新時にショートポジションから撤退することができます。

トレーダーは、ドンチアンチャネルをストップをトレールするメカニズムとして利用することもできる。トレンドが続くと、トレーダーは指定したチャネルに沿ってストップを移動させることができる。このようにストップをトレールすることで、ポジションとともにストップを更新し、トレンドの継続とともに利益を確定することができる。


 

取引、自動取引システム、取引戦略のテストに関するフォーラム

インジケータードンチャンネル

ニューデジタル, 2014.01.18 07:39

この記事(上記)を読んだ後、D1チャートを開き、Donchian Channelインジケータ(このスレッドの最初の投稿を参照)を添付し、期間200のMA/closeへのsimple.applyメソッド(このインジケータはメタトレーダー5のデフォルトのものです)を添付して、(マーケットが開いているときに)いくつかの練習をすることができます。この2つのインジケーターを付けたら、同じようなチャートができるはずです:



その後、メタトレーダーのチャートを使って、上記の記事を読み直してみてください。

以上


 

皆様へ

このDonchian channelsの コードをMT5で利用できるようにしていただきありがとうございます:

https://www.mql5.com/ja/code/402?utm_campaign=MetaTrader+5+Terminal&utm_medium=special&utm_source=mt5terminal+codebase

このコードはMT4でも利用可能でしょうか?

MT4で利用可能なDonchainチャンネルのコードは確かにありますが、私が興味があるのは「極端なポイントの種類」の設定なので、このコードと同じではありません:

enum Applied_Extrem//極点の種類
{
HIGH_LOW,
high_low_open,
high_low_close,
open_high_low,
close_high_low
};


ご回答ありがとうございました。

ルイ

Donchian Channels
Donchian Channels
  • 投票: 19
  • 2011.08.05
  • Nikolay Kositsin
  • www.mql5.com
Donchian Channels is a volatility indicator based on the calculation of the current price range with using the recent highest and lowest prices.
 

このインジケーターを使用してエキスパート・アドバイザーを作成すると、バックテストに 時間がかかるのはなぜですか?

"iCustom() "でこのインディケータを呼び出すと、エラーはなく、ロボットは意図した通りに動作するのですが、バックテスト時間が "本当に長い "のです。私が作ったどのロボットよりもずっと長いのですが、なぜでしょうか?

ありがとうございました!

 

ティックごとに 20本(通常)のローソク足を呼び戻すからだ。

それは時間がかかることは明らかでなければなりません。

 

このインジケーターは、マージンを0に設定した場合のみ正しく機能し、色は無効で、すべてが時代遅れです。


以下は、コードを削減した改訂版です。232行の代わりに86行です。

//+------------------------------------------------------------------+
//|DCCH.mq5
//|著作権 © 2018 Ing.オットー・パウザー
//| https://www.mql5.com/ja/users/kronenchakra
//+------------------------------------------------------------------+
#property copyright     "Copyright © 2019 イング・オットー・パウザー"
#property link          "https://www.mql5.com/ja/users/kronenchakra"
#property version       "1.0"
#property description   "DCCH - Donchian Channel corrected and simplified"

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_plots   3

//+------------------------------------------------------------------+
input int   inp_Period     =           20;   // 期間
input int   inp_Offset     =            0;   // オフセット(ポイント)
input int   inp_Shift      =            0;   // シフト
input int   inp_LineWidth  =            2;   // 線幅
input color inp_lineColor  = clrSteelBlue;   // ラインカラー
//+------------------------------------------------------------------+

double buUpper[];
double buMidle[];
double buLower[];

double upper,lower,offset;
int    first,bar;

//+------------------------------------------------------------------+
void OnInit()
{
   InitBuffer(buUpper,"Donchian Upper");
   InitBuffer(buMidle,"Donchian Center");
   InitBuffer(buLower,"Donchian Lower");
   IndicatorSetString(INDICATOR_SHORTNAME,"Donchian("+IntegerToString(inp_Period)+")");
   offset=inp_Offset*_Point;
}

//+------------------------------------------------------------------+
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<inp_Period+1) return(0);

   first=(prev_calculated==0)?inp_Period:prev_calculated-1;

   for(bar=first; bar<rates_total; bar++)
      {
         upper=high[ArrayMaximum(high,bar-inp_Period+1,inp_Period)];
         lower=low [ArrayMinimum(low ,bar-inp_Period+1,inp_Period)];
         buUpper[bar]=upper+offset;
         buLower[bar]=lower-offset;
         buMidle[bar]=(upper+lower)*0.5;
      }

   return(rates_total);
}

//+------------------------------------------------------------------+
//| .mqhにアウトソーシングすることもできる。mqh|
//+------------------------------------------------------------------+
void InitBuffer(double &buffer[], string plotlabel)
{
   static int bufferindex=0;
   SetIndexBuffer     (bufferindex,buffer,INDICATOR_DATA);

   PlotIndexSetInteger(bufferindex,PLOT_DRAW_TYPE ,DRAW_LINE);
   PlotIndexSetInteger(bufferindex,PLOT_LINE_STYLE,STYLE_SOLID);
   PlotIndexSetInteger(bufferindex,PLOT_LINE_WIDTH,inp_LineWidth);
   PlotIndexSetInteger(bufferindex,PLOT_LINE_COLOR,inp_lineColor);
   PlotIndexSetString (bufferindex,PLOT_LABEL     ,plotlabel);
   PlotIndexSetInteger(bufferindex,PLOT_SHIFT     ,inp_Shift);
   PlotIndexSetInteger(bufferindex,PLOT_DRAW_BEGIN,inp_Period-1);
   PlotIndexSetDouble (bufferindex,PLOT_EMPTY_VALUE,EMPTY_VALUE);

   bufferindex++;
}
ファイル:
DCCH.mq5  7 kb
 

インジケーターをエキスパートに持ち込むのは全くの初心者なのですが、アッパー、ミドル、ロアバンドを呼び出すための正しいコーディングをどなたか教えていただけませんか?


ありがとうございます。