利用MQL5向导生成基于蜡烛图形态和随机指标的交易信号

Mike 2013.10.16 21:58 55 0 0
附件

简介:

借助MQL5向导,交易者可以根据交易信号类别、持仓跟踪和资金管理,自动生成交易系统的代码。结合标准库中的交易信号类别,您可以开发和测试自己的交易系统。只需编写一个交易信号模块即可。

书籍《全球顶尖交易员的策略》(俄文)中描述了涉及MetaStock软件包的技术分析的指标和交易策略。除了常规的交易信号外,书中还探讨了基于蜡烛图反转形态与随机指标CCIMFI以及RSI的结合使用的信号。

将“反转”蜡烛图形态与振荡器信号结合使用,可以减少虚假信号的数量,并提高交易系统的有效性。

在之前的文章中,我们探讨了基于蜡烛图形态与随机指标确认的交易信号:

  1. 三只乌鸦/三只白兵
  2. 乌云盖顶/刺透线
  3. 看涨吞没/看跌吞没
  4. 看涨孕线/看跌孕线
  5. 锤头/吊人
  6. 看涨/看跌相遇线
  7. 晨星/黄昏星

在本描述中,我们将考虑将所有这些模型与随机指标信号结合使用的结果。


1. 看涨和看跌蜡烛图模型及其检测

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. 与随机指标结合的交易信号

当形成看涨/看跌模型并且有来自随机指标的确认时,开仓。%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 条件(随机指标在上一个完成的柱上的信号线值小于30);

  2. 关闭空头仓位的信号是形成其中一个看涨蜡烛图形态,或者随机指标线向上穿越20水平线或向上穿越80水平线。

//+------------------------------------------------------------------+
//| 检查市场模型是否形成                                          |
//| 检查条件以开空头仓位(m_pattern_0)和退出多头仓位(m_pattern_1) |
//+------------------------------------------------------------------+
int CCP_Stoch::LongCondition()
  {
   int res=0;
//---- 检查开空头仓位的条件
//---- 形成看涨形态且随机指标信号线<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 条件(随机指标在上一个完成的柱上的信号线值大于70);

  2. 关闭多头仓位的信号是形成其中一个看跌蜡烛图形态,或者随机指标线向下穿越80水平线或向下穿越20水平线。

//+------------------------------------------------------------------+
//| 检查市场模型是否形成                                          |
//| 检查条件以开空头仓位(m_pattern_0)和退出多头仓位(m_pattern_1) |
//+------------------------------------------------------------------+
int CCP_Stoch::ShortCondition()
  {
   int res=0;
//--- 检查开空头仓位的条件
//---- 形成看跌形态且随机指标信号线>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. 基于“蜡烛图形态+随机指标”的反转形态创建交易专家顾问

CCP_Stoch类不包含在标准的交易信号库中。因此,请下载ccp_stoch.mqh文件(附加),并将其保存到\terminal_folder\Include\Expert\Signal\MySignals目录中使用。candlepatterns.mqh文件也应复制到与ccp_stoch.mqh相同的目录。之后,请重新启动MetaEditor以便在MQL5向导中使用该文件。

要根据此策略通过MQL5向导创建交易机器人,请在第二步选择“基于蜡烛图形态+随机指标的信号”信号类型:

图1. 在MQL5向导中选择“基于蜡烛图形态+随机指标”的信号生成器

图1. 在MQL5向导中选择“基于蜡烛图形态+随机指标”的信号生成器

在随后的步骤中,指定所需的追踪止损类型和资金管理系统。专家顾问的代码将自动生成。现在,它应该被编译以准备开始测试。


2.4. 测试结果

基于历史数据的专家顾问测试结果(EURUSD H1,测试周期:2000.1.1-2011.2.2,PeriodK=33,PeriodD=37,PeriodSlow=30,MA_period=25)。

该专家顾问使用固定交易量为0.1手的模块(固定手数交易)。未使用追踪止损(未使用追踪)。

图2. 基于“蜡烛图形态+随机指标”交易信号生成器的专家顾问测试结果

图2. 基于“蜡烛图形态+随机指标”交易信号生成器的专家顾问测试结果

可以使用MetaTrader 5的策略测试器找到最佳的交易系统参数。

由MQL5向导创建的专家顾问代码附在expert_cp_stoch.mq5文件中。


列表
评论 0