MQL5 向导 - 烛台模式类 - MetaTrader 5 库
有本书“最佳交易者的策略“(俄语),那里考虑了许多交易策略,我们将重点关注反转烛台模式,由随机,CCI,微型金融机构和相对强弱指数振荡器。
最好的方法是创建单独的类,派生自专家信号用于检查烛台图案的形成。对于由烛台模式生成的交易信号的确认,编写从 CCandlePattern 派生的类并在其中添加必要的功能(例如,通过振荡器确认)就足够了。
在这里,我们将考虑 CCandlePattern 类,它允许简化 MQL5 向导的烛台模式交易信号类的创建。
CCandlePattern 类
班级CCandlePattern:民众专家信号 {受保护的: //--- 指标 CiMA m_MA; //--- 时间序列 CiOpen m_open; CiHigh m_high; CiLow m_low; CiClose m_close; //--- 输入参数 整数 m_ma_period;民众://--- 构造函数 CCandlePattern(); //--- 输入参数设置方法 空白 MAP期间(整数期间) { m_ma_period=期间; } //--- 初始化方法 虚拟的 布尔值 验证设置(); 虚拟的 布尔值 InitIndicators(CIndicators *indicators); //--- 检查特定烛台形态的形成 布尔值 CheckCandlestickPattern(ENUM_CANDLE_PATTERNS CandlePattern); //--- 检查看涨/看跌烛台形态的形成 布尔值 CheckPatternAllBullish(); 布尔值 CheckPatternAllBearish();受保护的: //--- 指标和时间序列的初始化 布尔值 InitMA(CIndicators *指标); 布尔值 InitOpen(CIndicators *指标); 布尔值 InitHigh(CIndicators *指标); 布尔值 InitLow(CIndicators *指标); 布尔值 InitClose(CIndicators *指标); //--- 方法,用于蜡烛图检查 双倍的 平均身体尺寸(整数工业); 双倍的 MA(整数工业) 常量{返回(m_MA.Main(ind)); } 双倍的 打开(整数工业) 常量{返回(m_open.GetData(ind)); } 双倍的 高的(整数工业) 常量{返回(m_high.GetData(ind)); } 双倍的 低的(整数工业) 常量{返回(m_low.GetData(ind)); } 双倍的 关闭(整数工业) 常量{返回(m_close.GetData(ind)); } 双倍的 收盘平均(整数工业) 常量{返回(MA(工业)); } 双倍的 中点(整数工业) 常量{返回(0.5*(高(ind)+低(ind))); } 双倍的 中开收盘(整数工业) 常量{返回(0.5*(开盘(ind)+收盘(ind))); } //--- 检查某个烛台模型的方法 布尔值 CheckPatternThreeBlackCrows(); 布尔值 CheckPatternThreeWhiteSoldiers(); 布尔值 CheckPatternDarkCloudCover(); 布尔值 CheckPatternPiercingLine(); 布尔值 CheckPatternMorningDoji(); 布尔值 CheckPatternEveningDoji(); 布尔值 CheckPatternBearishEngulfing(); 布尔值 CheckPatternBullishEngulfing(); 布尔值 CheckPatternEveningStar(); 布尔值 CheckPatternMorningStar(); 布尔值 检查模式锤(); 布尔值 CheckPatternHangingMan(); 布尔值 CheckPatternBearishHarami(); 布尔值 CheckPatternBullishHarami(); 布尔值 CheckPatternBearishMeetingLines(); 布尔值 CheckPatternBullishMeetingLines(); };
在 MQL5 向导的交易信号类中使用 CCandlePattern
CCandlePattern 类可用作 MQL5 向导的交易信号类的父类。有必要从 CCandlePattern 类派生交易信号类,也有必要添加用于检查多头/空头开仓/平仓的方法(除了指标等之外)。
反转烛台模式的形成可以用作交易信号,但最好检查确认(例如,使用振荡器)。
看一下这一行:
//|参数=MAPeriod,int,12 |
在向导描述部分。
MAPeriod 方法在 CCandlePattern 父类中用于计算平均收盘价和蜡烛体的平均值。默认情况下,在 CCandlePattern() 类构造函数中设置 m_ma_period=12。但是,最好使用输入参数来设置它,这样您就可以在策略测试仪MetaTrader 5.
不要忘记调用父类的 ValidationSettings() 和 InitIndicators()
注意,需要在相应的类方法中调用父类的 CCandlePattern::ValidationSettings 和 CCandlePattern::InitIndicators 方法。
最好先调用这些方法:
布尔值CSampleCandleSignal ::ValidationSettings() {//--- 调用父 CCandlePattern 类的 ValidationSettings 如果(!CCandlePattern::ValidationSettings())返回(错误的);//--- 你的代码 ..// - - 好的 返回(真的); }
InitIndicators() 方法也是如此:
布尔值CSampleCandleSignal ::InitIndicators(CIndicators *indicators) {//--- 调用父 CCandlePattern 类的 InitIndicators 如果(!CCandlePattern::InitIndicators(指标))返回(错误的); //--- 你的代码...// - - 好的 返回(真的); }
检查烛台形态
要检查某个烛台图案的形成,需要调用 CheckCandlestickPattern(ENUM_CANDLE_PATTERNS CandlePattern) 方法并将图案传递给函数。
您还可以使用 CheckPatternAllBullish() 和 CheckPatternAllBearish() 方法检查看涨/看跌烛台模式之一的形成。
为了简化烛台模式的工作,使用 ENUM_CANDLE_PATTERNS 枚举:
枚举ENUM_CANDLE_PATTERNS // 烛台形态列表 { CANDLE_PATTERN_THREE_BLACK_CROWS =1, CANDLE_PATTERN_THREE_WHITE_SOLDIERS =2, CANDLE_PATTERN_DARK_CLOUD_COVER =3, CANDLE_PATTERN_PIERCING_LINE =4, CANDLE_PATTERN_MORNING_DOJI =5, CANDLE_PATTERN_EVENING_DOJI =6, CANDLE_PATTERN_BEARISH_ENGULFING =7, CANDLE_PATTERN_BULLISH_ENGULFING =8, CANDLE_PATTERN_EVENING_STAR =9, CANDLE_PATTERN_MORNING_STAR =10, CANDLE_PATTERN_HAMMER =11, CANDLE_PATTERN_HANGING_MAN =12, CANDLE_PATTERN_BEARISH_HRAMI =13, CANDLE_PATTERN_BULLISH_HARAMI =14, CANDLE_PATTERN_BEARISH_MEETING_LINES =15, CANDLE_PATTERN_BULLISH_MEETING_LINES =16 };
检查看涨烛台形态:
///---检查形成《3个白衣战士》图案: 检查烛台图案(CANDLE_PATTERN_THREE_WHITE_SOLDIERS)///---检查形成《穿刺线》图案: 检查烛台图案(CANDLE_PATTERN_PIERCING_LINE)///---检查形成《早晨的十字星》图案: 检查烛台模式(CANDLE_PATTERN_MORNING_DOJI)///---检查形成“看涨吞没”图案: 检查烛台模式(CANDLE_PATTERN_BULLISH_ENGULFING)///---检查形成“看涨哈拉米”图案: 检查烛台模式(CANDLE_PATTERN_BULLISH_HRAMI)///---检查形成“晨星”图案: 检查烛台模式(CANDLE_PATTERN_MORNING_STAR)///---检查形成“看涨汇合线”图案: 检查烛台模式(CANDLE_PATTERN_BULLISH_MEETING_LINES)///---检查形成“锤”图案: 检查烛台模式(CANDLE_PATTERN_HAMMER)///---检查形成看涨烛台形态之一 CheckPatternAllBullish();
检查看跌烛台形态:
///--- 检查“3 只黑乌鸦”形态的形成: 检查烛台图案(CANDLE_PATTERN_THREE_BLACK_CROWS)///---检查形成《乌云密布》图案: 检查烛台图案(CANDLE_PATTERN_DARK_CLOUD_COVER)///---检查形成《晚间十字星》图案: 检查烛台模式(CANDLE_PATTERN_EVENING_DOJI)///---检查形成“看跌吞噬”图案: 检查烛台图案(CANDLE_PATTERN_BEARISH_ENGULFING)///---检查形成《黄昏之星》图案: 检查烛台模式(CANDLE_PATTERN_EVENING_STAR)///---检查形成《吊人》图案: 检查烛台图案(CANDLE_PATTERN_HANGING_MAN)///---检查形成“看跌孕妇”图案: 检查烛台图案(CANDLE_PATTERN_BEARISH_HRAMI)///---检查形成“看跌汇合线”图案: 检查烛台模式(CANDLE_PATTERN_BEARISH_MEETING_LINES)///---检查看跌形态之一的形成 CheckPatternAllBearish();
以下是这些方法的使用示例:
1. 开多仓
//+------------------------------------------------------------------+ //|检查多头开仓状况 | //+------------------------------------------------------------------+ 布尔值CSampleCandleSignal::CheckOpenLong(双倍的&价格,双倍的&sl,双倍的&tp,日期时间&过期) {//--- 检查开立多头头寸的条件 //--- 除了指标检查之外,最好使用此代码 //--- 例如,让我们检查一下“3个白兵”模式的形成: 如果检查烛台图案(CANDLE_PATTERN_THREE_WHITE_SOLDIERS)返回(真的)://--- 无信号 返回(错误的); }
2. 多头平仓
//--------------------------------------------------------------------------------+ //|检查多头平仓状况 | //+------------------------------------------------------------------+ 布尔值CSampleCandleSignal::CheckCloseLong(双倍的&价格) {//--- 检查平仓条件 //--- 例如,让我们检查看跌模式之一的形成: 如果CheckPatternAllBearish()返回(真的)://--- 无信号 返回(错误的); }
3. 开空仓
//--------------------------------------------------------------------------------+ //|检查空头开仓情况 | //+------------------------------------------------------------------+ 布尔值CSampleCandleSignal::CheckOpenShort(双倍的&价格,双倍的&sl,双倍的&tp,日期时间&过期) {//--- 检查开空头寸的条件 //--- 除了指标检查之外,最好使用此代码 //--- 例如,让我们检查“3只黑乌鸦”形态的形成: 如果检查烛台图案(CANDLE_PATTERN_THREE_BLACK_CROWS)返回(真的)://--- 无信号 返回(错误的); }
4. 平仓
//--------------------------------------------------------------------------------+ //|检查空头平仓状况 | //+------------------------------------------------------------------+ 布尔值CSampleCandleSignal::CheckCloseShort(双倍的&价格) {//--- 检查平仓条件 //--- 除了指标检查之外,最好使用此代码//--- 例如,让我们检查看涨模式之一的形成: 如果CheckPatternAllBullish()返回(真的)://--- 无信号 返回(错误的); }
建议
为了减少虚假信号,反转烛台形态必须由其他指标(例如振荡指标)确认。
《最佳交易者策略》一书中考虑了以下模式:
稍后我们将提供在 MQL5 向导中使用的交易信号类别。
附件下载
📎 candlepatterns.mqh (24.31 KB)
Source: MQL5 #291
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
