概述
Donchian 通道是 20 世纪 70 年代初期开发的技术指标。首先将之称为移动通道, 后来以其创始人 Richard Donchian 之名命名。指标基于给定的价格范围, 根据最近的最低价和最高价来衡量市场波动程度。Donchian 通道绘制为两行, 价格在其间波动。当价格分别突破底线或上边界时, 形成买入或买入信号。笔者建议使用价格范围等于 20 (一个月的平均工作天数) 和 D1 时间帧来绘制通道。
Donchian 通道的操作原理与应用
我不会重新发明车轮, 也不会再创建此指标的另一个程序。我决定使用其 Donchian 通道系统 改编版, 它完美地体现了基于此系统的交易风格。在图例.1 中, 粉红色和蓝色的蜡烛条显示了通道边界被突破的区域, 在此位置预计入场。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
图例1. 基于 Donchian 通道的操作原理和入场点。 注意图表上标记的红色区域。它们揭示了 Donchian 通道的主要缺点 — 所谓的假突破, 之后价格回落到其范围之内。所以, 仅使用 Donchian 通道而无额外确认的情况下入场将是鲁莽的。为了更清晰地了解指标思想, 赫兹量化来分析这个改编版的参数和实现: //+----------------------------------------------+ //| 指标输入参数 | //+----------------------------------------------+ input uint DonchianPeriod=20; // 均化周期 input Applied_Extrem Extremes=HIGH_LOW; // 极值类型 input uint Shift=2; // 水平位移柱线数 //+----------------------------------------------+
-
均化周期 用于价格范围。
-
极值类型 意即用于计算的价格类型。省缺使用经典设置, 这意味着使用蜡烛条最高价和最低价数值。
-
水平位移柱线数 意即通道位移。
赫兹量化来讨论极值类型, 因为在这个改编版中, 不只可以使用最高价和最低价。以下是可能的选项和软件实现: //+----------------------------------------------+ //| 枚举声明 | //+----------------------------------------------+ enum Applied_Extrem //极值类型 { HIGH_LOW, HIGH_LOW_OPEN, HIGH_LOW_CLOSE, OPEN_HIGH_LOW, CLOSE_HIGH_LOW };
-
HIGH_LOW 是蜡烛条最高价和最低价的经典应用。
-
HIGH_LOW_OPEN — 在本解释中, 通道上边界是基于所选价格范围内的 开盘价 和 蜡烛条最高价 之间的平均值来绘制的。蜡烛条最低价用于下边界。
-
HIGH_LOW_CLOSE — 通道上边界是基于所选价格范围内的 收盘价 和 蜡烛条最高价 之间的平均值来绘制的。蜡烛条最低价用于下边界。
-
OPEN_HIGH_LOW — 通道上边界是基于所选价格范围内的最高 开盘价, 最低的那个用于下边界。
-
CLOSE_HIGH_LOW — 通道上边界是基于所选价格范围内的最高 收盘价, 最低的那个用于下边界。
下面提供了不同极值类型的实现列表: for(bar=first; bar<rates_total && !IsStopped(); bar++) { switch(Extremes) { case HIGH_LOW: SsMax=high[ArrayMaximum(high,bar,DonchianPeriod)]; SsMin=low[ArrayMinimum(low,bar,DonchianPeriod)]; break; case HIGH_LOW_OPEN: SsMax=(open[ArrayMaximum(open,bar,DonchianPeriod)]+high[ArrayMaximum(high,bar,DonchianPeriod)])/2; SsMin=(open[ArrayMinimum(open,bar,DonchianPeriod)]+low[ArrayMinimum(low,bar,DonchianPeriod)])/2; break; case HIGH_LOW_CLOSE: SsMax=(close[ArrayMaximum(close,bar,DonchianPeriod)]+high[ArrayMaximum(high,bar,DonchianPeriod)])/2; SsMin=(close[ArrayMinimum(close,bar,DonchianPeriod)]+low[ArrayMinimum(low,bar,DonchianPeriod)])/2; break; case OPEN_HIGH_LOW: SsMax=open[ArrayMaximum(open,bar,DonchianPeriod)]; SsMin=open[ArrayMinimum(open,bar,DonchianPeriod)]; break; case CLOSE_HIGH_LOW: SsMax=close[ArrayMaximum(close,bar,DonchianPeriod)]; SsMin=close[ArrayMinimum(close,bar,DonchianPeriod)]; break; } 开发交易系统 当开发策略时, 赫兹量化不仅要考虑到假突破, 还要考虑到 Donchian 通道经常用于趋势策略。入场信号由通道突破形成, 因此, 为了消除通道边界外的假离场, 我们至少需要使用一个趋势指标进行信号确认。我们还需要判断入场、开仓管理、离场和资金管理的精确条件。我们来制定上述条件。 1. 确认信号 本文的目的不仅是展示基于 Donchian 通道的交易示例, 而且还要分析它们在现代市场的 "生存能力"。因此, 我们来选择一些确认指标。这些指标中的每一个将与 Donchian 通道组合。因此, 赫兹量化基于所分析的基础策略获得了几种交易策略。为了建立串联, 我从以下指标中选出了三个确认信号:
-
平均方向走势指数 (ADX)。与这个信号的结合将使我们能够评估当前趋势的状态和强度, 然后在通道边界突破时入场。
-
移动平均收敛/发散 (MACD)。MACD 将监控当前的趋势。当价格突破通道边界时, 我们会检查这个突破是顺应市场方向还是意外的价格尖峰 (一个假突破)。
-
第三个确认将由两个指标产生: 平均速度 (以每分钟点数为单位的平均价格变化速度) 和 X4Period_RSI_Arrows (由具有不同周期的四个 RSI 组成的信号量指标)。
2. 正式化交易系统 赫兹量化需要找到这三个策略的共同参数: 我们选择它们, 以便提供可能的最大测试周期。因此, 我们定义测试期间将要控制的参数:
-
时间帧。时间帧选项将使赫兹量化能够对不同时期的策略进行测试, 这些策略可以体现具体的行情阶段, 包括弱走势和调整, 以及长期趋势, 这在较高的时间帧上也许是明显的。
-
资金管理。依据交易结果的若干种仓量选择方案将使我们能够揭示复利投资是否有效, 或固定手数交易更方便。
-
开仓管理。若干开仓管理选项将有助于我们判断当前有利走势的盈利百分比。
-
指标参数。在不同模式下测试所选择的策略将有助于我们找到最佳参数, 它会令我们的系统更有效, 并且也能检测出令我们的系统无法盈利的参数。
接下来, 我们需要为我们的交易策略制定入场条件: #1. Donchian 通道 + ADX。 系统条件:
-
价格突破 Donchian 通道的上下边界。
-
ADX 趋势强度的主线必须高于预设的 ADX 级别。
-
如果价格突破通道边界向上, DI+ 线必须高于 DI-。如果向下, DI- 必须高于 DI+。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
图例.2. 策略 Donchian 通道+ADX 的入场条件 #2. Donchian 通道 + MACD。 系统条件:
-
价格突破 Donchian 通道的上下边界。
-
以及, 直方图的数值高于零轴, 且高于信号线则买入。
-
直方图的数值低于零轴, 且低于信号线则卖出。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
图例.3. 策略 Donchian 通道+MACD 的入场条件 #3. Donchian 通道 + (平均速度和 X4Period_RSI_Arrows)。