指标: 唐契安通道

 

唐契安通道:

唐契安通道是一个使用最近的最高和最低价格计算当前价格范围的振荡指标。

唐契安通道

作者: Nikolay Kositsin

 

我们需要修改两行,用红色突出显示的行代替高行,改为低行

情况 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:

是的!我觉得这样更有意义。
 

外汇交易的基本突破策略

讨论要点:

  • 寻找支撑位和阻力位的外汇交易技巧。
  • 学习使用 Donchian Channels 进入外汇突破。
  • 完成带有止损单的突破交易计划。

外汇市场以其强劲的趋势而闻名,这使得突破策略交易成为一种有效的市场方法。通常,任何突破策略的第一步都是确定货币对的关键支撑位和阻力位。今天,我们就来回顾一下如何使用唐氏通道(Donchian Channels)来实现这一目的,同时完成英镑兑美元的交易设置。

让我们开始吧!


唐氏通道交易

唐氏通道可应用于任何图表,以推断当前的支撑位和阻力位。它们通过在所选周期内创建的图表上清晰地识别高点和低点来实现这一目的。在上图中,我们可以看到在英镑兑美元 4 小时图表中使用了 20 个周期设置的唐氏通道。通道线突出显示了当前 20 个周期的最高值和最低值,在进行突破交易时可将其用作支撑位和阻力位。在下降趋势中,突破交易者会寻找价格跌破通道下轨的机会,然后再顺着趋势方向建立新的入场点。在上升趋势中也是如此,交易者会将上行通道确定为潜在的入市区域。

由于英镑兑美元价格在 10 月份的跌幅高达 346 点,许多交易者都希望确定新的入场点,以便在货币对突破低点时卖出。唐氏通道已将当前低点确定为 1.5913,交易者可以开始准备突破该值。如下图所示,您可以找到一个突破设置示例。卖出英镑兑美元的入市订单可以放在支撑位下方至少一个点的位置,这样交易者就可以在突破低点时入市。


设置风险

与任何策略一样,突破交易者应在交易中设置止损。使用唐氏通道时,这一过程非常简单。还记得定价通道顶部(代表 20 个周期的高点)是如何充当阻力区的吗?在下跌趋势中,预计价格会创出更低的低点,并保持在该值以下。如果价格创出新高,并突破上行通道,交易者就会想要离场。随着趋势的继续,交易者可能还想手动追踪和移动止损单,以锁定利润。突破型交易者可以采用的一个交易技巧是,当交易朝着对自己有利的方向发展时,将这个预设止损点与不断下降的定价通道一起移动。

 

关于交易、自动交易系统和测试交易策略的论坛

指标:东契奇通道

newdigital, 2014.01.18 07:34

如何使用唐氏通道 (改编自dailyfx 文章)

  • 首先找到趋势,确定趋势
  • 学习使用Donchian通道进入外汇突破。
  • 通道可用于追踪止损点并锁定利润。

外汇市场以其强劲的趋势而闻名,这使得交易突破支撑位和阻力位成为一种有效的市场方法。为了针对这种市场情况制定计划,今天我们将回顾一下使用唐氏通道的三步突破策略。

找到趋势

趋势交易的第一步是找到趋势!有很多方法可以识别下面描述的趋势,但最简单的方法之一是使用 200 期移动平均线(MVA)。首先将该指标添加到图表中,然后查看价格是否高于或低于平均线。这就是我们判断趋势和交易倾向的方法。

鉴于上述信息,交易者应在欧元兑日元目前的上升趋势中寻找机会买入,因为价格高于平均线。同样,下图中的澳元兑新西兰元也提供了卖出机会,因为该货币对的价格低于 200 期 MVA。一旦我们掌握了这些信息,就可以为潜在的突破计划入场位置。


Donchian Channels 交易

Donchian Channels 是一种可应用于任何图表的技术工具。它通过在选定的时间段内识别图表上的最高价和最低价,来确定当前的支撑位和阻力位。在今天的策略中,我们将使用 20 个周期,这意味着通道将用于识别 20 天内的最高价和最低价。

由于欧元兑日元的价格在 200 MVA 上方交易,交易者将希望确定新的入场点,以便在货币对突破更高点时买入。唐氏通道(Donchian Channels)确定的当前 20 日高点为 145.68,交易者可在此价位上方一个点设置买入欧元兑日元的入场点。


在下跌趋势中启动卖出头寸的过程正好相反。我们再次回顾下图中的澳元/新西兰元日线图。由于价格低于 200 MVA,如果价格创出 20 日新低,交易者将寻求卖出该货币对。目前该低点位于 0.8775,交易者可在该价位下方建立新的卖出头寸。


设置风险和追踪止损点

在交易任何策略时,都应考虑设置止损点和管理风险。使用唐氏通道时,这一过程可以简化。还记得我们的定价通道(代表 20 天的高点或低点)是如何作为支撑或阻力区域的吗?在上升趋势中,预计价格会升至更高的高点,并保持在该值之上。如果价格跌穿代表 20 天新低的底部通道,交易者就会想退出任何多头头寸。反之,在下跌趋势中,交易者会希望在当前的 20 个交易日高点下止损单。这样,交易者就可以在创出新高时退出空头头寸。

交易者还可以使用唐氏通道作为追踪止损的机制。随着趋势的持续,交易者可将止损点随指定通道移动。以这种方式追踪止损点可以让您随着仓位更新止损点,并在趋势持续时锁定利润。


 

关于交易、自动交易系统和测试交易策略的论坛

指标:东契奇通道

newdigital, 2014.01.18 07:39

阅读本文(上文)后 - 您/我们可以打开 D1 图表,附加 Donchian Channel 指标(见本主题的第一篇帖子),附加周期为 200 的 MA/方法 simple.apply to close(该指标是 Metatrader 5 中的默认指标) - 然后我们可以进行一些练习(在市场开放时)。附加这两个指标后,您应该会看到类似的图表:



然后,使用 Metatrader 图表重新阅读上述文章。

新闻到此结束


 

亲爱的各位

感谢您为 MT5 提供Donchian 通道 代码:

https://www.mql5.com/zh/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/zh/users/kronenchakra |
//+------------------------------------------------------------------+
#property copyright     "版权所有 © 2019 奥托-保泽尔工程师"
#property link          "https://www.mql5.com/zh/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
 

我是在专家平台上调用指标的新手,有人能帮我正确调用上、中、下波段的编码吗?


谢谢你们,很抱歉我第一次提出这样的新手问题。