文章 "利用 Donchian 通道进行交易"

 

新文章 利用 Donchian 通道进行交易已发布:

在本文中, 我们开发并测试若干种基于 Donchian 通道和各种指标滤波器的策略。我们还对其操作进行了比较分析。

我不会重新发明车轮, 也不会再创建此指标的另一个程序。我决定使用其 Donchian 通道系统 改编版, 它完美地体现了基于此系统的交易风格。在图例.1 中, 粉红色和蓝色的蜡烛条显示了通道边界被突破的区域, 在此位置预计入场。


图例1. 基于 Donchian 通道的操作原理和入场点。

作者:Alexander Fedosov

 

Donchian 通道 == 标准之字形通道 - 因此信号会非常延迟。

Donchian通道适用于拖网,也适用于逆势获利

 
'DonchianExpert.mq5' DonchianExpert.mq5 1 1
'TradeFunctions.mqh' TradeFunctions.mqh 1 1
'PositionInfo.mqh' PositionInfo.mqh 1 1
'Object.mqh' Object.mqh 1 1
'StdLibErr.mqh' StdLibErr.mqh 1 1
'SymbolInfo.mqh' SymbolInfo.mqh 1 1
'Trailing.mqh' Trailing.mqh 1 1
'DonchianUI.mqh' DonchianUI.mqh 1 1
无法打开 "C:/Program Files\RoboForex - MetaTrader 5\MQL5\include\EasyAndFastGUI\WndEvents.mqh" include 文件 DonchianUI.mqh 6 11
'CWndEvents' - 声明没有类型 DonchianUI.mqh 10 28
'CWndEvents' - 语法错误 DonchianUI.mqh 10 28
'CDonchianUI' - 未定义成员函数 DonchianUI.mqh 51 14
'~CDonchianUI' - 未定义成员函数 DonchianUI.mqh 57 15
OnInitEvent' - 未定义成员函数 DonchianUI.mqh 63 19
OnDeinitEvent' - 未定义成员函数 DonchianUI.mqh 69 19
OnTimerEvent' - 未定义成员函数 DonchianUI.mqh 77 19
OnEvent' - 未定义成员函数 DonchianUI.mqh 97 19
CreateMainPanel' - 未定义成员函数 DonchianUI.mqh 113 19
CreateStatusBar' - 未定义成员函数 DonchianUI.mqh 141 19
CreateLabel1' - 未定义成员函数 DonchianUI.mqh 168 19
CreateLabel2' - 未定义成员函数 DonchianUI.mqh 187 19
CreateLabel3' - 未定义成员函数 DonchianUI.mqh 206 19
'CreateCanvasTable' - 未定义成员函数 DonchianUI.mqh 224 19
'CDonchianUI' - 结构未定义 DonchianExpert.mq5 19 1
'CWndEvents' - 未定义导入 DonchianUI.mqh 72 4
')'- 分号预期 DonchianUI.mqh 73 3
OnTimerEvent' - 函数已定义且有主体 DonchianUI.mqh 77 19
OnTimerEvent' - 当前作用域不允许声明 DonchianUI.mqh 77 19
OnEvent' - 函数已定义且有 body DonchianUI.mqh 97 19
OnEvent' - 当前作用域不允许声明 DonchianUI.mqh 97 19
'CreateMainPanel' - 函数已定义且有 body DonchianUI.mqh 113 19
'CreateMainPanel' - 当前作用域不允许声明 DonchianUI.mqh 113 19
'CreateStatusBar' - 函数已定义且有 body DonchianUI.mqh 141 19
'CreateStatusBar' - 当前作用域不允许声明 DonchianUI.mqh 141 19
'CreateLabel1' - 函数已定义且有 body DonchianUI.mqh 168 19
CreateLabel1' - 当前作用域不允许声明 DonchianUI.mqh 168 19
CreateLabel2'-函数已定义且有 body DonchianUI.mqh 187 19
CreateLabel2'-当前作用域不允许声明 DonchianUI.mqh 187 19
CreateLabel3'-函数已定义且有 body DonchianUI.mqh 206 19
'CreateLabel3' - 当前作用域不允许声明 DonchianUI.mqh 206 19
'CreateCanvasTable' - 函数已定义且有 body DonchianUI.mqh 224 19
CreateCanvasTable' - 当前作用域不允许声明 DonchianUI.mqh 224 19
Trade' 的声明隐藏了第 17 行的全局声明 DonchianExpert.mq5 17 13
参见之前的 "Trade "声明 DonchianExpert.mq5 17 13
Trall'的声明隐藏了第 18 行的全局声明 DonchianExpert.mq5 18 13
参见之前的'Trall'声明 DonchianExpert.mq5 18 13
CDonchianUI' - 结构未定义 DonchianExpert.mq5 19 1
UI' 的声明隐藏了第 19 行的全局声明 DonchianExpert.mq5 19 13
参见之前的 "UI "声明 DonchianExpert.mq5 19 13
已定义枚举 DonchianExpert.mq5 23 6
Donchian' - 枚举标识符已定义 DonchianExpert.mq5 25 4
Donchian_ADX' - 已定义的枚举标识符 DonchianExpert.mq5 26 4
Donchian_MACD' - 已定义的枚举标识符 DonchianExpert.mq5 27 4
Donchian_AvrSpeed_RSI' - 枚举标识符已定义 DonchianExpert.mq5 28 4
枚举已经定义 DonchianExpert.mq5 33 6
HIGH_LOW' - 枚举标识符已定义 DonchianExpert.mq5 35 4
HIGH_LOW_OPEN' - 枚举标识符已定义 DonchianExpert.mq5 36 4
HIGH_LOW_CLOSE' - 枚举标识符已定义 DonchianExpert.mq5 37 4
OPEN_HIGH_LOW' - 枚举标识符已定义 DonchianExpert.mq5 38 4
'CLOSE_HIGH_LOW' - 枚举器标识符已定义 DonchianExpert.mq5 39 4
sinput' - 意外标记 DonchianExpert.mq5 44 1
Inp_EaComment' 的声明隐藏了第 44 行的全局声明 DonchianExpert.mq5 44 28
参见之前的 'Inp_EaComment' 声明 DonchianExpert.mq5 44 28
输入' - 意外标记 DonchianExpert.mq5 45 1
Inp_Lot' 的声明隐藏了第 45 行的全局声明 DonchianExpert.mq5 45 28
参见之前的 'Inp_Lot' 声明 DonchianExpert.mq5 45 28
输入' - 意外标记 DonchianExpert.mq5 46 1
Inp_MMode' 的声明隐藏了第 46 行的全局声明 DonchianExpert.mq5 46 28
参见之前的 'Inp_MMode' 声明 DonchianExpert.mq5 46 28
输入' - 意外标记 DonchianExpert.mq5 47 1
Inp_MagicNum' 的声明隐藏了第 47 行的全局声明 DonchianExpert.mq5 47 28
参见之前的 'Inp_MagicNum' 声明 DonchianExpert.mq5 47 28
输入' - 意外标记 DonchianExpert.mq5 48 1
Inp_StopLoss' 的声明隐藏了第 48 行的全局声明 DonchianExpert.mq5 48 28
参见之前的 'Inp_StopLoss' 声明 DonchianExpert.mq5 48 28
输入' - 意外标记 DonchianExpert.mq5 49 1
Inp_TakeProfit' 的声明隐藏了第 49 行的全局声明 DonchianExpert.mq5 49 28
参见之前的 'Inp_TakeProfit' 声明 DonchianExpert.mq5 49 28
输入' - 意外标记 DonchianExpert.mq5 50 1
Inp_Deviation' 的声明隐藏了第 50 行的全局声明 DonchianExpert.mq5 50 28
参见之前的 'Inp_Deviation' 声明 DonchianExpert.mq5 50 28
输入' - 意外标记 DonchianExpert.mq5 51 1
InpInd_Timeframe' 的声明隐藏了第 51 行的全局声明 DonchianExpert.mq5 51 28
参见之前的 'InpInd_Timeframe' 声明 DonchianExpert.mq5 51 28
输入' - 意外标记 DonchianExpert.mq5 52 1
InfoPanel' 的声明隐藏了第 52 行的全局声明 DonchianExpert.mq5 52 28
参见之前的 "InfoPanel "声明 DonchianExpert.mq5 52 28
输入' - 意外标记 DonchianExpert.mq5 55 1
DonchianPeriod' 的声明隐藏了第 55 行的全局声明 DonchianExpert.mq5 55 28
参见之前的'DonchianPeriod'声明 DonchianExpert.mq5 55 28
输入' - 意外标记 DonchianExpert.mq5 56 1
Extremes' 的声明隐藏了第 56 行的全局声明 DonchianExpert.mq5 56 28
参见之前的'Extremes'声明 DonchianExpert.mq5 56 28
输入' - 意外标记 DonchianExpert.mq5 59 1
CurStrategy' 的声明隐藏了第 59 行的全局声明 DonchianExpert.mq5 59 28
参见之前的 "CurStrategy "声明 DonchianExpert.mq5 59 28
'input' - 意外标记 DonchianExpert.mq5 62 1
ADX_period' 的声明隐藏了第 62 行的全局声明 DonchianExpert.mq5 62 28
参见之前的 'ADX_period' 声明 DonchianExpert.mq5 62 28
输入' - 意外标记 DonchianExpert.mq5 63 1
ADX_level' 的声明隐藏了第 63 行的全局声明 DonchianExpert.mq5 63 28
参见之前的 'ADX_level' 声明 DonchianExpert.mq5 63 28
输入' - 意外标记 DonchianExpert.mq5 66 1
InpFastEMA' 的声明隐藏了第 66 行的全局声明 DonchianExpert.mq5 66 28
参见之前的 'InpFastEMA' 声明 DonchianExpert.mq5 66 28
输入' - 意外标记 DonchianExpert.mq5 67 1
InpSlowEMA' 的声明隐藏了第 67 行的全局声明 DonchianExpert.mq5 67 28
参见之前的 "InpSlowEMA "声明 DonchianExpert.mq5 67 28
输入' - 意外标记 DonchianExpert.mq5 68 1
InpSignalSMA' 的声明隐藏了第 68 行的全局声明 DonchianExpert.mq5 68 28
参见之前的 'InpSignalSMA' 声明 DonchianExpert.mq5 68 28
输入' - 意外标记 DonchianExpert.mq5 69 1
InpAppliedPrice' 的声明隐藏了第 69 行的全局声明 DonchianExpert.mq5 69 28
参见之前的 'InpAppliedPrice' 声明 DonchianExpert.mq5 69 28
输入' - 意外标记 DonchianExpert.mq5 72 1
Inp_Bars' 的声明隐藏了第 72 行的全局声明 DonchianExpert.mq5 72 28
参见之前的 'Inp_Bars' 声明 DonchianExpert.mq5 72 28
输入' - 意外标记 DonchianExpert.mq5 73 1
价格 "的声明隐藏了第 73 行的全局声明 DonchianExpert.mq5 73 28
参见之前的 "Price "声明 DonchianExpert.mq5 73 28
输入' - 意外标记 DonchianExpert.mq5 74 1
Trend_lev' 的声明隐藏了第 74 行的全局声明 DonchianExpert.mq5 74 28
参见之前的 'Trend_lev' 声明 DonchianExpert.mq5 74 28
'input' - 意外标记 DonchianExpert.mq5 77 1
RSIperiod1' 的声明隐藏了第 77 行的全局声明 DonchianExpert.mq5 77 28
参见之前的 'RSIperiod1' 声明 DonchianExpert.mq5 77 28
输入' - 意外标记 DonchianExpert.mq5 78 1
RSIperiod2' 的声明隐藏了第 78 行的全局声明 DonchianExpert.mq5 78 28
参见之前的 'RSIperiod2' 声明 DonchianExpert.mq5 78 28
输入' - 意外标记 DonchianExpert.mq5 79 1
RSIperiod3' 的声明隐藏了第 79 行的全局声明 DonchianExpert.mq5 79 28
参见之前的 'RSIperiod3' 声明 DonchianExpert.mq5 79 28
输入' - 意外标记 DonchianExpert.mq5 80 1
RSIperiod4' 的声明隐藏了第 80 行的全局声明 DonchianExpert.mq5 80 28
参见之前的 'RSIperiod4' 声明 DonchianExpert.mq5 80 28
输入' - 意外标记 DonchianExpert.mq5 81 1
Applied_price' 的声明隐藏了第 81 行的全局声明 DonchianExpert.mq5 81 28
参见之前的 'Applied_price' 声明 DonchianExpert.mq5 81 28
输入' - 意外标记 DonchianExpert.mq5 82 1
rsiUpperTrigger' 的声明隐藏了第 82 行的全局声明 DonchianExpert.mq5 82 28
参见之前的 'rsiUpperTrigger' 声明 DonchianExpert.mq5 82 28
输入' - 意外标记 DonchianExpert.mq5 83 1
rsiLowerTrigger' 的声明隐藏了第 83 行的全局声明 DonchianExpert.mq5 83 28
参见之前的 'rsiLowerTrigger' 声明 DonchianExpert.mq5 83 28
输入' - 意外标记 DonchianExpert.mq5 86 1
UseTrailing' 的声明隐藏了第 86 行的全局声明 DonchianExpert.mq5 86 28
参见之前的 "UseTrailing "声明 DonchianExpert.mq5 86 28
输入' - 意外标记 DonchianExpert.mq5 87 1
VirtualTrailingStop' 的声明隐藏了第 87 行的全局声明 DonchianExpert.mq5 87 28
参见之前的 "VirtualTrailingStop "声明 DonchianExpert.mq5 87 28
输入' - 意外标记 DonchianExpert.mq5 88 1
parameters_trailing' 的声明隐藏了第 88 行的全局声明 DonchianExpert.mq5 88 28
参见之前的 'parameters_trailing' 声明 DonchianExpert.mq5 88 28
输入' - 意外标记 DonchianExpert.mq5 90 1
TF_Tralling' 的声明隐藏了第 90 行的全局声明 DonchianExpert.mq5 90 28
参见之前的 'TF_Tralling' 声明 DonchianExpert.mq5 90 28
输入' - 意外标记 DonchianExpert.mq5 92 1
StepTrall' 的声明隐藏了第 92 行的全局声明 DonchianExpert.mq5 92 28
参见之前的'StepTrall'声明 DonchianExpert.mq5 92 28
输入' - 意外标记 DonchianExpert.mq5 93 1
StartTrall' 的声明隐藏了第 93 行的全局声明 DonchianExpert.mq5 93 28
参见之前的'StartTrall'声明 DonchianExpert.mq5 93 28
输入' - 意外标记 DonchianExpert.mq5 95 1
period_ATR' 的声明隐藏了第 95 行的全局声明 DonchianExpert.mq5 95 28
参见之前的 'period_ATR' 声明 DonchianExpert.mq5 95 28
输入' - 意外标记 DonchianExpert.mq5 97 1
step_PSAR' 的声明隐藏了第 97 行的全局声明 DonchianExpert.mq5 97 28
参见之前的 'step_PSAR' 声明 DonchianExpert.mq5 97 28
输入' - 意外标记 DonchianExpert.mq5 98 1
maximum_PSAR' 的声明隐藏了第 98 行的全局声明 DonchianExpert.mq5 98 28
参见之前的 'maximum_PSAR' 声明 DonchianExpert.mq5 98 28
输入' - 意外标记 DonchianExpert.mq5 100 1
ma_period' 的声明隐藏了第 100 行的全局声明 DonchianExpert.mq5 100 28
参见之前的 'ma_period' 声明 DonchianExpert.mq5 100 28
输入' - 意外标记 DonchianExpert.mq5 101 1
ma_method' 的声明隐藏了第 101 行的全局声明 DonchianExpert.mq5 101 28
参见之前的 'ma_method' 声明 DonchianExpert.mq5 101 28
输入' - 意外标记 DonchianExpert.mq5 102 1
applied_price' 的声明隐藏了第 102 行的全局声明 DonchianExpert.mq5 102 28
参见之前的 'applied_price' 声明 DonchianExpert.mq5 102 28
输入' - 意外标记 DonchianExpert.mq5 104 1
PercentProfit' 的声明隐藏了第 104 行的全局声明 DonchianExpert.mq5 104 28
参见之前的 'PercentProfit' 声明 DonchianExpert.mq5 104 28
InpInd_Handle1' 的声明隐藏了第 106 行的全局声明 DonchianExpert.mq5 106 10
参见之前的 'InpInd_Handle1' 声明 DonchianExpert.mq5 106 10
InpInd_Handle2' 的声明隐藏了 106 行的全局声明 DonchianExpert.mq5 106 25
参见之前的 'InpInd_Handle2' 声明 DonchianExpert.mq5 106 25
InpInd_Handle3' 的声明隐藏了 106 行的全局声明 DonchianExpert.mq5 106 40
参见之前的 'InpInd_Handle3' 声明 DonchianExpert.mq5 106 40
dcs_up' 的声明隐藏了第 107 行的全局声明 DonchianExpert.mq5 107 10
参见之前的 'dcs_up' 声明 DonchianExpert.mq5 107 10
dcs_low' 的声明隐藏了第 107 行的全局声明 DonchianExpert.mq5 107 19
参见之前的 'dcs_low' 声明 DonchianExpert.mq5 107 19
close' 的声明隐藏了第 107 行的全局声明 DonchianExpert.mq5 107 29
参见之前的 "close "声明 DonchianExpert.mq5 107 29
adx' 的声明隐藏了第 108 行的全局声明 DonchianExpert.mq5 108 10
参见之前的 'adx' 声明 DonchianExpert.mq5 108 10
adx_m' 的声明隐藏了第 108 行的全局声明 DonchianExpert.mq5 108 16
参见之前的 'adx_m' 声明 DonchianExpert.mq5 108 16
adx_p' 的声明隐藏了第 108 行的全局声明 DonchianExpert.mq5 108 24
参见之前的 'adx_p' 声明 DonchianExpert.mq5 108 24
macd_m' 的声明隐藏了第 109 行的全局声明 DonchianExpert.mq5 109 10
参见之前的 'macd_m' 声明 DonchianExpert.mq5 109 10
macd_s' 的声明隐藏了第 109 行的全局声明 DonchianExpert.mq5 109 19
参见之前的 'macd_s' 声明 DonchianExpert.mq5 109 19
avs'的声明隐藏了第 110 行的全局声明 DonchianExpert.mq5 110 10
参见之前的'avs'声明 DonchianExpert.mq5 110 10
rsi_1b' 的声明隐藏了第 111 行的全局声明 DonchianExpert.mq5 111 10
参见之前的 'rsi_1b' 声明 DonchianExpert.mq5 111 10
rsi_2b' 的声明隐藏了第 111 行的全局声明 DonchianExpert.mq5 111 19
参见之前的 'rsi_2b' 声明 DonchianExpert.mq5 111 19
rsi_3b' 的声明隐藏了第 111 行的全局声明 DonchianExpert.mq5 111 28
参见之前的 'rsi_3b' 声明 DonchianExpert.mq5 111 28
rsi_4b' 的声明隐藏了第 111 行的全局声明 DonchianExpert.mq5 111 37
参见之前的 'rsi_4b' 声明 DonchianExpert.mq5 111 37
rsi_1s' 的声明隐藏了第 112 行的全局声明 DonchianExpert.mq5 112 10
参见之前的 'rsi_1s' 声明 DonchianExpert.mq5 112 10
rsi_2s' 的声明隐藏了第 112 行的全局声明 DonchianExpert.mq5 112 19
参见之前的 'rsi_2s' 声明 DonchianExpert.mq5 112 19
rsi_3s' 的声明隐藏了第 112 行的全局声明 DonchianExpert.mq5 112 28
参见之前的 'rsi_3s' 声明 DonchianExpert.mq5 112 28
rsi_4s' 的声明隐藏了第 112 行的全局声明 DonchianExpert.mq5 112 37
参见之前的 'rsi_4s' 声明 DonchianExpert.mq5 112 37
OnInit' - 函数只能在全局范围内声明 DonchianExpert.mq5 116 5
OnInit'--函数已定义且有主体 DonchianExpert.mq5 116 5
OnDeinit' - 函数只能在全局范围内声明 DonchianExpert.mq5 180 6
OnDeinit' - 函数已定义且有主体 DonchianExpert.mq5 180 6
OnTick' - 函数只能在全局范围内声明 DonchianExpert.mq5 187 6
OnTick' - 函数已定义且有主体 DonchianExpert.mq5 187 6
OnChartEvent' - 函数只能在全局范围内声明 DonchianExpert.mq5 215 6
OnChartEvent' - 函数已定义且有主体 DonchianExpert.mq5 215 6
BuySignal' - 函数只能在全局范围内声明 DonchianExpert.mq5 225 6
BuySignal' - 函数已定义且有主体 DonchianExpert.mq5 225 6
SellSignal' - 函数只能在全局范围内声明 DonchianExpert.mq5 256 6
SellSignal' - 函数已定义且有主体 DonchianExpert.mq5 256 6
GetIndValue' - 函数只能在全局范围内声明 DonchianExpert.mq5 287 6
GetIndValue' - 函数已定义且有主体 DonchianExpert.mq5 287 6

101 个错误,66 个警告 100 67

以及如何处理?

 
natyog:
无法打开 "C:/Program Files\RoboForex - MetaTrader 5\MQL5\include\EasyAndFastGUI\WndEvents.mqh" include 文件 DonchianUI.mqh 6 11

以及如何处理?

首先,按照文章最后一句所述连接 EasyAndFastGUI 库。但由于这方面存在困难,我将文章中的库和材料一并附在存档中。
附加的文件:
MQL5.zip  1816 kb
 
natyog:

101 错误、66 警告 100 67

以及如何处理?

很抱歉给您带来不便,文章的文件已被替换。请重新下载并尝试编译。
 

感谢分享!  黄金0.3美金即可回本,有需要可以联系用户名  微信whkh18

 

您好,我想在 MT5 上测试 Donchian Channels,但我需要一个智能交易系统,我很喜欢您的文章,但我无法从您的文章中创建智能交易系统。

我已经下载了附件中的文件,并将其粘贴到 MT5 文件夹中,但它并没有出现在 MT5 中。

 
不要相信我,我创建这个通道时并不知道它的存在))))......可能和我一样,我也是从 Ishimoku.... 学来的。但我的方法略有不同,我考虑在通道内交易,使用纤维水平,在 61 水平进入,在 161 水平固定。在 M5-M15 期间。当达到 161 水平时,再修正几个点。
 

早上好!我也没能用


我也无法正常工作!

 

Ea 出现严重错误...您必须将错误告知程序员,并等待他解决。

 

我在编译时遇到了麻烦。您的代码对我来说很先进,所以我很难找到修复方法。这里有这些错误:

method' - undeclared identifier MenuItem.mqh 228 110

method'(方法)--某些运算符 MenuItem.mqh 228 110

表达式不是布尔型 ChartCanvas.mqh 129 53


bool CMenuItem::CreateMenuItem(const long chart_id,const int subwin,const int index_number,const string label_text,const int x_gap,const int y_gap)
  {
//--- 如果没有表单指针,则退出
   if(!CElement::CheckWindowPointer())
      return(false);
//--- 如果没有指向前一个节点的指针,那么
// 暗示一个独立的菜单项,即不属于上下文菜单的菜单项
   if(::CheckPointer(m_prev_node)==POINTER_INVALID)
     {
      //--- 如果集合类型不匹配,则离开
      if(m_type_menu_item!=MI_SIMPLE && m_type_menu_item!=MI_HAS_CONTEXT_MENU)
        {
         ::Print(__FUNCTION__," > The type of the independent menu item can be only MI_SIMPLE or MI_HAS_CONTEXT_MENU,",
                 "that is only with a context menu.\n",
                 __FUNCTION__," > The type of the menu item can be set using the CMenuItem::TypeMenuItem()") method")";
         return(false);
        }
     }