下载MetaTrader 5

请观看如何免费下载自动交易

有趣的脚本?
因此发布一个链接 -
让其他人评价

喜欢这个脚本? 在MetaTrader 5客户端尝试它

2013.10.21 16:17
EA

MQL5 向导 - 基于 K 线形态的交易信号 + Stochastic - MetaTrader 5EA

| Chinese English Русский Español Deutsch 日本語 Português

显示:
1057
等级:
投票: 34
\MQL5\Include\Expert\Signal\MySignals\

描述:

利用 MQL5 向导, 交易者现在可以 自动生成交易程序代码, 这些代码基于交易信号类, 持仓跟踪以及资金管理。遵循标准类库中的 交易信号类 , 您可以开发并测试您自己的交易系统。为此, 仅需要写一个 交易信号模块

有本书 "The Strategies of the Best Traders in the World(世界最佳交易者策略)" (俄语版) 描述了众多用于技术分析的指标和交易策略,这些都已经包含在 MetaStock 的软件包里。遵循这些便利的交易信号, 这本书建立了一些基于组合的反转 K 线形态,并由 Stochastic, CCI, MFI and RSI等指标确认。

使用 "反转" K 线形态,配合振荡信号可以减少假信号数量并提高交易系统的有效性。

在之前的出版文章中,我们已经思考讨论了一些基于 K 线形态的交易信号并配合 Stochastic指标确认:

  1. 3 乌鸦 / 3 白兵
  2. 乌云盖顶 / 穿刺线
  3. 牛市吞噬 / 熊市吞噬
  4. 牛市孕育 / 熊市孕育
  5. 锤头 / 上吊线
  6. 牛市 / 熊市约会线
  7. 早晨 / 黄昏之星

本篇中, 我们将讨论组合这些模型,并配合 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)。

退出信号有两种情况:

  1. 当一个反向形态成立 (对于多仓是熊市形态以及对于空仓是牛市形态)。
  2. 根据随后的 %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. 开多单和平空仓

  1. 开多单信号由牛市形态组合配合 StochSignal(1)<30 条件形成 ( Stochastic 指标信号线最后完整的值小于 30):

  2. 平空仓信号由牛市形态组合或 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. 开空单 以及平多仓

  1. 开空单信号由熊市形态组合配合 StochSignal(1)>70 条件形成 ( Stochastic 指标信号线最后完整的值超过 70):

  2. 平多仓信号由熊市形态组合或 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 信号" 交易信号生成器

图例. 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 信号" 交易信号生成器

图例. 2. 交易程序的测试结果,基于 "形态 + Stochastic 信号" 交易信号生成器

最佳系统参数集合可借助 MetaTrader 5 客户端的 策略测试员 发现。

由 MQL5 向导创建的交易程序代码,附加在 expert_cp_stoch.mq5。

本文译自 MetaQuotes Software Corp. 撰写的俄文原文
官方代码: https://www.mql5.com/ru/code/327

演示_BitmapOffset (OBJPROP_XOFFSET 和 OBJPROP_YOFFSET) 演示_BitmapOffset (OBJPROP_XOFFSET 和 OBJPROP_YOFFSET)

如果您在某个时刻需要显示图像的一部分,并且隐藏其它部分,您可以使用移动窗口来指定图像的可视区域。

MQL5 向导 - 基于 早晨之星 / 黄昏之星形态的交易信号 + RSI MQL5 向导 - 基于 早晨之星 / 黄昏之星形态的交易信号 + RSI

基于 早晨之星 / 黄昏之星形态的交易信号,由 Relative Strength Index (RSI - 相对强度指数) 指标确认。基于此交易策略的交易程序代码可使用 MQL5 向导自动生成。

MQL5 向导 -  基于乌云盖顶(Dark Cloud Cover)/刺穿线(PiercingLine)和RSI的交易信号。 MQL5 向导 - 基于乌云盖顶(Dark Cloud Cover)/刺穿线(PiercingLine)和RSI的交易信号。

本节讨论基于 "乌云盖顶(Dark Cloud Cover)/刺穿线(PiercingLine) " K线图模式并由Relative Strength Index (RSI) 指标确认的交易信号。基于该策略的EA交易的代码可以被MQL5向导自动生成

MQL5 向导 -  基于Morning(启明星)/Evening Stars(黄昏之星)和 Stochastic 的交易信号。 MQL5 向导 - 基于Morning(启明星)/Evening Stars(黄昏之星)和 Stochastic 的交易信号。

本节讨论基于 "Morning Star(启明星)/Evening Star(黄昏之星) " K线图模式并由Stochastic指标确认的交易信号。基于该策略的EA交易的代码可以被MQL5向导自动生成