MQL5 向导 - 基于 K 线形态的交易信号 + Stochastic - MetaTrader 5EA
- 显示:
- 4663
- 等级:
- 已发布:
- 2013.10.21 16:17
- 已更新:
- 2016.11.22 07:33
- 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
描述:
利用 MQL5 向导, 交易者现在可以 自动生成交易程序代码, 这些代码基于交易信号类, 持仓跟踪以及资金管理。遵循标准类库中的 交易信号类 , 您可以开发并测试您自己的交易系统。为此, 仅需要写一个 交易信号模块。
有本书 "The Strategies of the Best Traders in the World(世界最佳交易者策略)" (俄语版) 描述了众多用于技术分析的指标和交易策略,这些都已经包含在 MetaStock 的软件包里。遵循这些便利的交易信号, 这本书建立了一些基于组合的反转 K 线形态,并由 Stochastic, CCI, MFI and RSI等指标确认。
使用 "反转" K 线形态,配合振荡信号可以减少假信号数量并提高交易系统的有效性。
在之前的出版文章中,我们已经思考讨论了一些基于 K 线形态的交易信号并配合 Stochastic指标确认:
本篇中, 我们将讨论组合这些模型,并配合 Stochastic 指标确认的效果。
1. 牛市和熊市 K 线模型及检测
CandlePattern 类已经有一些函数可用于检测部分牛市和熊市的形态形状 (除了锤头 / 上吊线组合)。
牛市形态的形状可用 CheckPatternAllBullish() 函数检查:
//+------------------------------------------------------------------+ //| 检查牛市形态形状 | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternAllBullish() { return(CheckPatternThreeWhiteSoldiers() || CheckPatternPiercingLine() || CheckPatternMorningDoji() || CheckPatternBullishEngulfing() || CheckPatternBullishHarami() || CheckPatternMorningStar() || CheckPatternBullishMeetingLines()); }
熊市形态的形状可用 CheckPatternAllBearish() 函数检查:
//+------------------------------------------------------------------+ //| 检查熊市形态的形状 | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternAllBearish() { return(CheckPatternThreeBlackCrows() || CheckPatternDarkCloudCover() || CheckPatternEveningDoji() || CheckPatternBearishEngulfing() || CheckPatternBearishHarami() || CheckPatternEveningStar() || CheckPatternBearishMeetingLines()); }
2. 组合交易信号与 Stochastic 指标
当牛市 / 熊市模型之一条件成立,并由 Stochastic 振荡器确认,建多仓 / 空仓将会执行。%D 信号线值应该高于或低于临界水平 (30 和 70)。
退出信号有两种情况:
- 当一个反向形态成立 (对于多仓是熊市形态以及对于空仓是牛市形态)。
- 根据随后的 %D 走势。如果 %D 到达市场反向水平 (80 为多仓,以及 20 为空仓) 或如果 %D 未确认反转信号并且到达 20 为多仓以及 80 为空仓。
检查入场和出场的条件,执行以下方法:
- int CCP_Stoch::LongCondition() - 检查开多单条件 (m_pattern_0) 和平空仓 (m_pattern_1);
- int CCP_Stoch::ShortCondition() - 检查开空单条件 (m_pattern_0) 和平多仓 (m_pattern_1).
2.1. 开多单和平空仓
-
开多单信号由牛市形态组合配合 StochSignal(1)<30 条件形成 ( Stochastic 指标信号线最后完整的值小于 30):
-
平空仓信号由牛市形态组合或 Stochastic 指标信号线交叉20-水平线 (上穿) 或 80-水平线 (上穿)。
//+------------------------------------------------------------------+ //| 检查市场模型是否建立的方法 | //| 检查条件: | //| 入场 (开多单, m_pattern_0) | //| 出场 (平空仓, m_pattern_1) | //+------------------------------------------------------------------+ int CCP_Stoch::LongCondition() { int res=0; //---- 检查开多单条件 //---- 牛市形态形状以及 Stochastic 指标信号线<30 if(CheckPatternAllBullish() && (StochSignal(1)<30)) res=m_pattern_0; // 开多单信号 //--- 检查平空仓条件 //--- 牛市形态形状或信号线交叉 (上穿 20, 上穿 80) if(CheckPatternAllBullish() || ((StochSignal(1)>20) && (StochSignal(2)<20)) || ((StochSignal(1)>80) && (StochSignal(2)<80))) res=m_pattern_1; // 平空仓信号 //--- return(res); }
2.2. 开空单 以及平多仓
-
开空单信号由熊市形态组合配合 StochSignal(1)>70 条件形成 ( Stochastic 指标信号线最后完整的值超过 70):
-
平多仓信号由熊市形态组合或 Stochastic 指标信号线交叉80-水平线 (下穿) 或 20-水平线 (下穿)。
//+------------------------------------------------------------------+ //| 检查市场模型是否建立的方法 | //| 检查条件: | //| 入场 (开空单, m_pattern_0) | //| 出场 (平多仓, m_pattern_1) | //+------------------------------------------------------------------+ int CCP_Stoch::ShortCondition() { int res=0; //--- 检查开空单条件 //---- 熊市形态形状以及 Stochastic 指标信号线>70 if(CheckPatternAllBearish() && (StochSignal(1)>70)) res=m_pattern_0; // 开空单信号 //--- 检查平多仓条件 //---- 熊市形态形状或 信号线交叉 (下穿 80, 下穿 20) if(CheckPatternAllBearish() || ((StochSignal(1)<80) && (StochSignal(2)>80)) || ((StochSignal(1)<20) && (StochSignal(2)>20))) res=m_pattern_1; // 平多仓信号 //--- return(res); }
2.3. 使用 MQL5 向导创建基于"反转形态 + Stochastic"信号的交易程序
CCP_Stoch 类没有加入标准库的交易信号。所以,下载 ccp_stoch.mqh 文件 (附带) 并且保存至 \客户端\Include\Expert\Signal\MySignals 目录才可使用。candlepatterns.mqh 文件需要复制到相同目录作为 ccp_stoch.mqh。之后, 重启 MetaEditor (程序编辑器)即可在 MQL5 向导中使用这些文件。
按照如下策略创建交易机器人,通过 MQL5 向导, 在第二步选择 "基于 K 线形态+Stochastic 信号" 信号类型:
图例. 1. 在 MQL5 向导中选择 "基于 K 线形态+Stochastic 信号" 交易信号生成器
在分支步骤中, 指定必要的 移动止损 类型和 资金管理 系统。交易程序代码将会自动生成。现在,编译完成,准备开始测试。
2.4. 测试结果
交易程序基于历史数据的回测结果 (EURUSD H1, 测试周期: 1.1.2000-02.02.2011, PeriodK=33, PeriodD=37, PeriodSlow=30, MA_period=25)。
此交易程序模块使用固定交易手数 0.1 (交易固定手数)。移动止损未使用 (移动止损未使用)。
图例. 2. 交易程序的测试结果,基于 "形态 + Stochastic 信号" 交易信号生成器
最佳系统参数集合可借助 MetaTrader 5 客户端的 策略测试员 发现。
由 MQL5 向导创建的交易程序代码,附加在 expert_cp_stoch.mq5。
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/327
如果您在某个时刻需要显示图像的一部分,并且隐藏其它部分,您可以使用移动窗口来指定图像的可视区域。
MQL5 向导 - 基于 早晨之星 / 黄昏之星形态的交易信号 + RSI基于 早晨之星 / 黄昏之星形态的交易信号,由 Relative Strength Index (RSI - 相对强度指数) 指标确认。基于此交易策略的交易程序代码可使用 MQL5 向导自动生成。
本节讨论基于 "乌云盖顶(Dark Cloud Cover)/刺穿线(PiercingLine) " K线图模式并由Relative Strength Index (RSI) 指标确认的交易信号。基于该策略的EA交易的代码可以被MQL5向导自动生成
MQL5 向导 - 基于Morning(启明星)/Evening Stars(黄昏之星)和 Stochastic 的交易信号。本节讨论基于 "Morning Star(启明星)/Evening Star(黄昏之星) " K线图模式并由Stochastic指标确认的交易信号。基于该策略的EA交易的代码可以被MQL5向导自动生成