你应该了解的 MQL5 向导技巧(第67部分):使用 TRIX 和威廉百分比范围的形态
引言
我们继续本系列内容,探究各类技术指标组合形成的交易信号形态。上一期,我们介绍了分形自适应移动平均线搭配强力指数摆动指标的应用。本篇将讲解三重指数平滑摆动指标(TRIX) 与另一款摆动指标 —— 威廉百分比指标(WPR)的组合用法。TRIX 属于移动平均类摆动指标,主要用于研判趋势信号;而威廉百分比指标则辅助判断支撑位与阻力位。
与往期内容一致,本文梳理两组指标组合后形成的10 种经典信号形态。我们选用瑞郎兑日元(CHF/JPY)4 小时周期、2023 年全年行情数据开展策略训练与参数优化。后续采用该货币对 2024 年行情数据进行样本外滚动测试。
TRIX 本质是一款动量摆动指标,通过三重指数移动平均对价格进行平滑处理。该指标可过滤行情杂波,非常适用于趋势识别。它通过计算三重平滑均线的变化速率来实现这一作用。除了确认趋势,TRIX 还能发出背离信号。TRIX 的计算逻辑为:对价格连续三次求取指数移动平均值(EMA)。再计算其涨跌幅百分比。具体计算公式如下:

其中:
- 一阶指数移动平均线(EMA₁):对价格(如收盘价)按周期 N 计算首次指数移动平均。
- 二阶指数移动平均线(EMA₂):对 EMA₁ 再次计算指数移动平均。
- 三阶指数移动平均线(EMA₃):对 EMA₂ 第三次计算指数移动平均。
- TRIX 线:三重平滑均线的百分比变化值(动量摆动指标)。
TRIX 指标的常用默认周期为 15。本次测试选用周期值 3,由于测试周期仅为一年,设置该参数可以保证指标的灵敏度。我们在自定义信号类的头文件中使用常量参数__PERIOD来定义该周期。
#define __PERIOD 3 class CSignalTRX_WPR : public CExpertSignal { protected: CiTriX m_trix; CiWPR m_wpr; int m_patterns_used; //--- adjusted parameters //--- "weights" of market models (0-100) int m_pattern_0; // model 0 int m_pattern_1; // model 1 ... int m_pattern_9; // model 9 // //int m_patterns_usage; // public: CSignalTRX_WPR(void); ~CSignalTRX_WPR(void); //--- methods of setting adjustable parameters //--- methods of adjusting "weights" of market models void Pattern_0(int value) { m_pattern_0 = value; } void Pattern_1(int value) { m_pattern_1 = value; } void Pattern_2(int value) { m_pattern_2 = value; } ... void PatternsUsed(int value) { m_patterns_used = value; PatternsUsage(value); } //--- method of verification of settings virtual bool ValidationSettings(void); //--- method of creating the oscillator and timeseries virtual bool InitIndicators(CIndicators *indicators); //--- methods of checking if the market models are formed virtual int LongCondition(void) override; virtual int ShortCondition(void) override; virtual double Direction(void) override; protected: //--- method of initialization of the oscillator bool InitTRX_WPR(CIndicators *indicators); //--- methods of getting data double TRX(int ind) { // m_trix.Refresh(-1); return(m_trix.Main(ind)); } double TRX_MAX(int ind) { // m_trix.Refresh(-1); return(m_trix.Main(m_trix.Maximum(0, ind, __PERIOD))); } double TRX_MIN(int ind) { // m_trix.Refresh(-1); return(m_trix.Main(m_trix.Minimum(0, ind, __PERIOD))); } double WPR(int ind) { // m_wpr.Refresh(-1); return(m_wpr.Main(ind)); } double Close(int ind) { // m_close.Refresh(-1); return(m_close.GetData(ind)); } double High(int ind) { // m_high.Refresh(-1); return(m_high.GetData(ind)); } double Low(int ind) { // m_low.Refresh(-1); return(m_low.GetData(ind)); } long Volume(int ind) { // m_tick_volume.Refresh(-1); return(m_tick_volume.GetData(ind)); } int X() { // return(StartIndex()); } //--- methods to check for patterns bool IsPattern_0(ENUM_POSITION_TYPE T); bool IsPattern_1(ENUM_POSITION_TYPE T); ... bool IsPattern_9(ENUM_POSITION_TYPE T); };
MQL5 已内置该指标函数,因此我们无需编写大量代码。本文基于 CiTRIX 类 调用实现该指标。指标的研判主要依据其数值位置与绝对值。TRIX 数值为正,代表行情处于多头趋势、价格上行。数值为负则相反,预示价格下行。零轴是重要分界位,指标穿越零轴往往意味着趋势反转。
背离是该指标的另一核心形态:指标走势与价格走势相悖,通常预示原有趋势动能减弱。相较于单一指数移动平均线,TRIX 能有效降低滞后性、过滤杂波,在趋势行情中表现优异。但在震荡行情里,容易产生虚假信号。
威廉百分比指标(WPR)是研判支撑、阻力的摆动指标,用于判断市场超买、超卖区间。该指标由拉里・威廉姆斯创立,它将当前收盘价与指定周期内的价格高低区间做对比。核心作用是识别市场关键反转点位。 因此在横盘震荡、无明显趋势的行情中使用效果最佳。具体计算公式如下:

其中:
- High_N 指最近 N 个周期内的最高价。
- Low_N 指最近 N 个周期内的最低价格。
- Close_today 即当前 K 线收盘价。
- 乘以 (-100) 对指标值进行反向转换,便于研判(指标值域调整为 0 至 - 100)。
在两组指标的计算公式中,“今天(today)” 均指代当前 / 最新一根 K 线的数值。这只是沿用日线图的习惯说法。该指标的常用回溯周期为 14,但本文采用与 TRIX 指标一致的周期值 3(如前文所述)。读者可自行调整参数,也可为两个指标分别设置自定义周期。指标值处于 -80 至 -100 区间,代表资产价格触及支撑位,是潜在的买入机会。指标值处于 -20 至 0 区间,代表资产价格触及阻力位。是卖出信号。指标穿越 -50 中轴,可预示趋势发生转变。
该摆动指标同样会发出背离信号。底背离:价格创出新低,但 WPR 指标未创新低、反而形成更高低点,预示行情即将向上反转。反之,顶背离:价格创出新高,但 WPR 指标未创新高、反而形成更低高点,预示价格可能向下反转。威廉百分比指标(WPR)的优势是其计算简单,在短线交易中效果出色。且与其他指标配合使用的效果极佳。其局限性是在强势趋势行情中易产生虚假信号,发出信号后通常需要额外条件进行确认。
至此,我们开始讲解10 种信号形态。所有测试均基于瑞郎兑日元(CHF/JPY)4 小时周期,时间区间为 2023 年 1 月 1 日至 2025 年 1 月 1 日。其中 2023 年为策略训练或称为优化周期,2024 年为回测或称为样本外滚动测试周期。
TRIX 金叉与 WPR 拐头反转
第一种形态:TRIX 穿越零轴 + WPR 从支撑位 / 阻力位反转。当 TRIX向上突破零轴,标志着行情转为多头趋势,因三重平滑指数移动平均线正加速上行。与此同时,若 WPR 向上突破 -80,代表价格脱离超卖状态,从支撑位企稳反弹。这通常意味着买盘力量正在积聚,两组信号共振可有效确认潜在的趋势反转或趋势延续,大幅降低假突破风险。
在实际编写策略时,除 TRIX 穿越零轴外,还可叠加指标斜率向上递增的条件,以获得更可靠的信号确认。同时需确保 WPR 突破 - 80 后仍处于 - 50 下方,避免在弱势反转中过早入场。也可结合成交量放量或价格突破关键阻力位,进一步提升信号可信度。震荡行情中风险始终较高,因此可搭配移动平均线(MA)等额外过滤条件降低风险。我们在 MQL5 中实现该策略的代码如下:
//+------------------------------------------------------------------+ //| Check for Pattern 0. | //+------------------------------------------------------------------+ bool CSignalTRX_WPR::IsPattern_0(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && 0.0 < TRX(X()) && 0.0 > TRX(X() + 1) && -80.0 > WPR(X() + 1) && WPR(X()) > -80.0) { return(true); } else if(T == POSITION_TYPE_SELL && 0.0 < TRX(X() + 1) && 0.0 > TRX(X()) && -20.0 > WPR(X()) && WPR(X() + 1) > -20.0) { return(true); } return(false); }
当 TRIX 向下跌破零轴时,形成看跌信号。这表明三重平滑指数移动平均线涨势放缓,行情转入空头趋势。与此同时,威廉百分比指标(WPR)自 - 20 上方回落至该数值下方,意味着价格脱离超买区间、跌破阻力位,预示卖盘力量开始增强。两组信号叠加,通常预示行情即将反转,或是原有跌势延续。相关使用要点与前文看涨形态一致:可观察指标下行斜率是否加大,以此确认空头动能充足;同时需保证 WPR 处于 - 20 下方、且尚未触及 - 50。
还可结合价格跌破支撑位、做多成交量下降等条件,进一步验证信号有效性。借助趋势线或相对强弱指标(RSI),能够降低行情反复震荡、横盘整理阶段的交易风险。下文为 2023 年 1 月 1 日至 2025 年 1 月 1 日的测试结果,本次策略仅采用 2023 年数据完成训练优化。

TRIX 与价格形成背离 + WPR 触及极值区间
接下来介绍第二种形态:价格与 TRIX 出现背离,同时 WPR 运行在极值区域。价格创出新低,但 TRIX 并未同步走低、反而走出抬高的低点,即为看涨信号,说明空头动能正在衰减。若此时 WPR 数值低于 - 80(价格抵达支撑位),则意味着市场处于超卖状态,行情有较大概率向上反转。而 TRIX 的多头转向,也会进一步支撑这一反转逻辑。实际应用时,建议观察至少两轮价格波动形成的背离形态,提升信号可靠性。同时可等待 WPR 从 - 80 下方开始回升,以此确认买盘开始入场。
也可结合锤子线等 K 线形态,作为入场的辅助确认条件。该形态存在一定风险:在深度下跌的强势空头行情中,背离信号可能失效。配合更大周期图表进行信号验证,可有效规避此类风险。以下为该形态在 MQL5 中的具体实现代码:
//+------------------------------------------------------------------+ //| Check for Pattern 1. | //+------------------------------------------------------------------+ bool CSignalTRX_WPR::IsPattern_1(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Low(X() + 1) > Low(X()) && -80.0 > WPR(X()) && TRX(X()) > TRX(X() + 1)) { return(true); } else if(T == POSITION_TYPE_SELL && High(X()) > High(X() + 1) && WPR(X()) > -20.0 && TRX(X() + 1) > TRX(X())) { return(true); } return(false); }
当TRIX 出现顶背离,且WPR 处于阻力 / 超买区域时,即形成看跌信号。这种顶背离表现为:价格创出更高高点,但 TRIX 却形成更低高点,标志着多头动能正在衰退。WPR 处于 - 20 上方,说明价格进入阻力区,预示可能出现反转。这通常是一个高概率卖出信号。在实际运用中,建议通过多个峰值确认背离,以提高准确性。也可以等待 WPR 在 -20 上方停留至少一根 K 线后,再回落至 -20 下方,再做判断。
此外,留意看跌 K 线形态,可作为该形态的额外确认条件。该形态的局限性:在强势趋势行情中,背离信号容易失效。本形态的测试结果如下:

TRIX 交叉信号 + WPR 位置形态
下一形态的看涨信号为:TRIX 向上突破信号零轴,标志趋势转为多头;同时 WPR 位于 -50 上方,意味着价格处于中性至阻力区间。该组合表明多头趋势正在增强,回调概率较低。若 TRIX 交叉时斜率陡峭,则信号强度更高。WPR 应处于 -50 上方、-20 下方,因为我们要捕捉接近阻力的中性区域。可通过价格突破关键移动平均线或ADX 指标进行额外确认。我们在 MQL5 中实现该策略的代码如下:
//+------------------------------------------------------------------+ //| Check for Pattern 2. | //+------------------------------------------------------------------+ bool CSignalTRX_WPR::IsPattern_2(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && 0.0 < TRX(X()) && 0.0 > TRX(X() + 1) && WPR(X()) > -50.0) { return(true); } else if(T == POSITION_TYPE_SELL && 0.0 < TRX(X() + 1) && 0.0 > TRX(X()) && -50.0 > WPR(X())) { return(true); } return(false); }
看跌形态:TRIX 从上向下跌破零轴,且 WPR 位于 -50 下方。这表明跌势确立,卖压持续。与上述看涨形态同理,该逻辑的依据是:价格当前处于中性位置、远离支撑位,反转可能性较低。与其他形态一样,若 TRIX 下行斜率变陡,代表信号更强。WPR 应处于 -50 下方,但尚未到 -80。与看涨形态相同,震荡行情不适用本形态,建议只在趋势行情中使用。形态 2 的测试结果如下:

TRIX 零轴附近企稳突破及 WPR 脱离极值区
下一形态的定义:TRIX 在零轴或零轴附近获得支撑,同时 WPR 脱离支撑 / 阻力极值区。 看涨信号:TRIX 先在零轴附近窄幅震荡,随后明确向上突破零轴。与此同时,WPR 从支撑区域退出,由下向上突破 -80 并收于其上方。在实际识别中,通过历史图表寻找 TRIX 的支撑位可能有一定难度,且该条件可能使过滤条件过于严苛,减少交易机会。
可借助其他动量指标确认 WPR 向上突破 -80 的有效性,以捕捉动能回升信号。也可结合看涨吞没形态或放量上涨,作为额外入场确认条件。该形态的局限性:支撑位较弱时可能失效。使用更高时间周期验证,可有效提升准确率。我们在 MQL5 中的实现代码如下:
//+------------------------------------------------------------------+ //| Check for Pattern 3. | //+------------------------------------------------------------------+ bool CSignalTRX_WPR::IsPattern_3(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && TRX(X()) >= 0.0 && TRX(X() + 1) <= 0.0 && TRX(X() + 2) >= 0.0 && WPR(X() + 1) < -80.0 && WPR(X()) > -80.0) { return(true); } else if(T == POSITION_TYPE_SELL && TRX(X() + 2) <= 0.0 && TRX(X() + 1) >= 0.0 && TRX(X()) <= 0.0 && WPR(X()) < -20.0 && WPR(X() + 1) > -20.0) { return(true); } return(false); }
当 TRIX 指标在某个区间内盘整后向下突破,并且 WPR 指标从上方穿过 -20 水位并收于其下方时,即产生看跌信号。这支持了看跌走势。TRIX 指标在盘整后向下突破,表明其触及了“阻力位”。看涨动能正在衰减。WPR 指标的变动也证实了卖压的存在。与看涨情况一样,对前期高点的 TRIX 确认可能会抑制信号的生成。等待 WPR 稳定在 -20 下方对于避免假信号至关重要。像“看跌吞没”这样的看跌价格形态也可以作为辅助因素纳入考量。强劲的趋势市场确实会使该模式的应用变得极具挑战性,因此用户需要警惕这一点,并通过结合 RSI 等其他指标来加以补充验证。我们针对该模式的测试结果如下所示:

TRIX 突破且 WPR 脱离中性区域
我们第五种模式的看涨信号表现为:与模式3类似,TRIX 指标突破阻力位,同时 WPR 处于 -50 和 -20 之间。这种情况通常确认价格处于看涨或中性区域,因此预示着突破具有可持续性。在使用此模式时,TRIX 的斜率和成交量可作为增强信号强度的辅助因素。在图表上留意价格突破,特别是结合移动平均线(MA)等关键指标的突破,均可纳入考量。该模式主要适用于趋势市场;在波动性较大的市场中,可能会产生一些假信号。MQL5 的具体实现代码如下:
//+------------------------------------------------------------------+ //| Check for Pattern 4. | //+------------------------------------------------------------------+ bool CSignalTRX_WPR::IsPattern_4(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && 0.0 < TRX(X()) && 0.0 > TRX(X() + 1) && TRX(X()) == TRX_MAX(X()) && WPR(X()) > -50.0 && WPR(X()) < -20.0) { return(true); } else if(T == POSITION_TYPE_SELL && 0.0 < TRX(X() + 1) && 0.0 > TRX(X()) && TRX(X()) == TRX_MIN(X()) && WPR(X()) > -80.0 && WPR(X()) < -50.0) { return(true); } return(false); }
看跌信号: TRIX 跌破支撑位,同时 WPR 处于中性至看跌区域。一旦 TRIX 位于“历史性”支撑位(例如前期低点,甚至是零轴)下方,这可能意味着看跌动能正在加速。WPR 将处于 -50 和 -80 之间,这是一个中性至看跌区域,从而支持突破的有效性。在突破点需要再次考量 TRIX 的斜率,且 WPR 应低于 -50 但未进入超卖区,以便获得最佳时机。可以通过图表上的价格突破(例如跌破移动平均线 MA)来获得额外的确认。震荡市场中该模式的表现不佳。本形态的测试结果如下:

TRIX 反转与 WPR 脱离极值区
本模式的看涨信号特征是:TRIX 在极端高位见顶,通常显著高于零轴界限,随后向下反转,而与此同时 WPR 跌至 -20 以下。这通常意味着价格已脱离超买状态,行情大概率会出现良性回调,或是延续原有趋势。使用此模式时,关键在于确保 WPR 向 -50 回落,但并未陷入超卖。还应留意价格是否守住关键支撑位,或与重要的移动平均线持平。
该形态存在短板:行情从超买状态回落时,正常回调有可能演变为深度急跌,因此搭配斐波那契回撤位,有助于把控风险。我们在 MQL5 中实现该策略的代码如下:
//+------------------------------------------------------------------+ //| Check for Pattern 5. | //+------------------------------------------------------------------+ bool CSignalTRX_WPR::IsPattern_5(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && TRX(X() + 2) < TRX(X() + 1) && TRX(X() + 1) > TRX(X()) && TRX(X() + 1) == TRX_MAX(X()) && WPR(X() + 1) > -20.0 && WPR(X()) < -20.0) { return(true); } else if(T == POSITION_TYPE_SELL && TRX(X() + 2) > TRX(X() + 1) && TRX(X() + 1) < TRX(X()) && TRX(X() + 1) == TRX_MIN(X()) && WPR(X()) > -80.0 && WPR(X() + 1) < -80.0) { return(true); } return(false); }
看跌信号判定规则:TRIX 在极低值区域拐头向上,同时 WPR 脱离超卖区间,预示价格短暂反弹后,将重回下跌趋势。TRIX 探至极端低位后反转上行,意味着市场短期的超卖状态缓解。WPR 需向上突破 -80,确认价格脱离超卖区间,此前的下跌趋势即将重启。TRIX 位于零轴下方且上行斜率陡峭,可作为可靠的附加筛选条件。WPR 可向 -50 靠近,但不得突破该关键位,防止市场转入超买状态。
价格在关键价位或重要移动平均线附近企稳,也可作为辅助参考信号。该形态不适用于震荡行情,可搭配趋势线进行过滤筛选。本形态的测试结果如下:

TRIX 趋势延续 + WPR 处于中间区间
该形态的看涨信号条件:TRIX 持续运行在零轴上方,同时 WPR 落在 -50 至 -20 中间区间。此组合代表多头趋势延续,行情仍具备上行空间。原理说明:TRIX 站稳零轴且斜率为正,可确认多头趋势正在运行。WPR 处于中间区间,说明价格既未超买也未超卖,这也表明趋势短期内暂无反转风险,有望继续延伸。
实际应用时,需保证 TRIX 始终保持平稳上行,不出现大幅拐头。WPR 也要稳定维持在 -50 至 -20 区间,保障趋势稳健延续。还可结合价格沿趋势线运行、站稳关键移动平均线等条件,进一步验证信号。该形态的缺陷:在低波动行情中,这类区间信号的有效性会下降。以下是本形态在 MQL5 中的实现代码:
//+------------------------------------------------------------------+ //| Check for Pattern 6. | //+------------------------------------------------------------------+ bool CSignalTRX_WPR::IsPattern_6(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && TRX(X() + 2) > TRX(X() + 1) && TRX(X() + 1) > TRX(X()) && TRX(X()) > 0.0 && WPR(X()) > -80.0 && WPR(X()) < -20.0) { return(true); } else if(T == POSITION_TYPE_SELL && TRX(X() + 2) < TRX(X() + 1) && TRX(X() + 1) < TRX(X()) && TRX(X()) < 0.0 && WPR(X()) > -80.0 && WPR(X()) < -20.0) { return(true); } return(false); }
看跌形态:TRIX 持续运行在零轴下方,同时 WPR 处于中间区间,代表空头趋势延续。看跌逻辑解析:TRIX 运行于零轴下方且斜率为负,可确认下跌趋势成立。WPR 处在 -50 至 -80 中间区间,说明价格尚未进入超卖状态。这意味着跌势仍有延续空间,短期不会反转。和前文多数形态的用法一致,运用该看跌形态时,TRIX 的斜率至关重要。它需保持持续下行。
同时要监控 WPR,确保其稳定在 -50 至 -80 核心区间内。价格承压于关键移动平均线或支撑位,可进一步增强信号可信度。该形态的弊端与对应看涨形态一致:区间信号容易失效,行情可能长期横盘震荡。以下是第七种形态的测试结果:

TRIX 盘整叠加 WPR 区间信号
该形态的看涨规则:TRIX 结束盘整并向上突破,同时 WPR 处于看涨支撑区间,预示新一轮上升趋势开启,行情动能稳健。原理如下:TRIX 在零轴附近横盘整理后向上突破,代表多头趋势即将形成。而 WPR 数值高于 -50,进一步确认多头动能充足,上涨行情有望持续。实操时,需观察 TRIX 在零轴附近多根 K 线内维持极窄区间震荡,再等待突破。
该条件筛选标准严苛,即便在大周期样本中,也很难出现有效交易信号。事实上,正是由于这类形态及同类指标组合存在上述问题,我们才将指标参数设置为极小周期 3。若采用常规长周期,指标对价格变化反应迟钝,最终能生成的信号与交易机会会寥寥无几。和其他形态一样,本形态虽也建议结合斜率加以确认,但受限于本身入场点位本就稀少,该条件并非必需。我们在 MQL5 中实现该策略的代码如下:
//+------------------------------------------------------------------+ //| Check for Pattern 7. | //+------------------------------------------------------------------+ bool CSignalTRX_WPR::IsPattern_7(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && fabs(Close(X()) - Close(X() + 1)) >= TRX_MAX(X() + 1) - TRX_MIN(X() + 1) && TRX_MAX(X() + 1) > 0.0 && TRX_MIN(X() + 1) < 0.0 && TRX_MAX(X() + 1) < TRX(X()) && WPR(X()) >= -20.0) { return(true); } else if(T == POSITION_TYPE_SELL && fabs(Close(X()) - Close(X() + 1)) >= TRX_MAX(X() + 1) - TRX_MIN(X() + 1) && TRX_MAX(X() + 1) > 0.0 && TRX_MIN(X() + 1) < 0.0 && TRX_MIN(X() + 1) > TRX(X()) && WPR(X()) <= -80.0) { return(true); } return(false); }
该看跌形态规则:TRIX 结束盘整并向下跌破区间,同时 WPR 处于看跌区间,预示新一轮下跌趋势开启,且具备一定下跌动能。其看跌逻辑与前述看涨形态相近。指标在多空分界的零轴位置长期横盘整理,随后向下破位,往往意味着下跌趋势正式形成。而 WPR 数值低于 - 50,进一步佐证了空头趋势成立。
实操过程中,若对 TRIX 窄幅盘整的条件设置过严,会导致交易机会大幅减少,因此需要把握筛选尺度。WPR 需处于 - 50 下方,但尚未进入超卖区间,以此把握最佳入场时机。震荡行情中出现假破位,是该形态的主要风险点。以下是第七种形态的测试结果:

TRIX 零轴反转 + WPR 触及极值区间
倒数第二种形态的看涨信号:TRIX 在零轴位置拐头向上,同时 WPR 处于超卖状态。该形态代表行情从震荡格局中走出,形成力度较强的看涨反转。看涨形态逻辑:TRIX 于零轴处反转上行,意味着市场动能由中性转为多头。且WPR 数值低于 - 80,进一步确认行情处于超卖区间。这预示着随着买盘力量逐步积聚,行情大概率会迎来反转。
使用该形态时,需确认 TRIX 有效反转,建议观察多根 K 线加以验证。同时可等待 WPR 连续多根 K 线站稳 - 80 上方,提升信号可靠性。也可参照前文思路,结合看涨 K 线形态、价格在关键支撑位企稳等条件作为辅助过滤。该形态在趋势性较强的市场中表现受限。我们在 MQL5 中实现该策略的代码如下:
//+------------------------------------------------------------------+ //| Check for Pattern 8. | //+------------------------------------------------------------------+ bool CSignalTRX_WPR::IsPattern_8(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && TRX(X()) > TRX(X() + 1) && TRX(X() + 1) > 0.0 && TRX(X() + 2) > TRX(X() + 1) && WPR(X()) < -50.0) { return(true); } else if(T == POSITION_TYPE_SELL && TRX(X() + 2) < TRX(X() + 1) && TRX(X() + 1) < 0.0 && TRX(X()) < TRX(X() + 1) && WPR(X()) > -50.0) { return(true); } return(false); }
该看跌形态条件:TRIX 靠近零轴时拐头向下,同时 WPR 显示价格处于超买区间、触及阻力位。看跌形态逻辑:TRIX 在零轴附近反转下行,代表市场情绪转向空头。WPR 数值高于 -20,确认行情进入超买状态;随着卖盘不断增强,行情出现反转的概率大幅提升。需结合指标斜率、反转后的连续 K 线数量,确认 TRIX 形成有效反转。
等待 WPR 稳健回落至 -20 下方,再搭配看跌 K 线形态、价格遇阻等条件,能进一步提升信号可靠性。和对应看涨形态一致,本形态在趋势行情中表现不佳。以下为本形态测试报告。本文所有形态的测试周期均为2023 年 1 月 1 日至 2025 年 1 月 1 日。策略训练与参数优化阶段为2023 年 1 月 1 日至 2024 年 1 月 1 日。测试标的为瑞郎兑日元(CHF/JPY),周期选用 4 小时图。

TRIX 双重底 / 顶 + WPR 超卖 / 超买
本形态为看涨信号:TRIX 形成双重底,同时 WPR 发出强烈的看涨反转信号。这种在支撑位的价格行为,用于确认价格底部已经形成。原理说明:双重底是指在支撑位形成的两个交替低点(通常位于零轴下方),其作用类似盘整,预示趋势可能从空头转为多头。当 WPR 处于 -80 支撑位时,确认市场已进入超卖状态,趋势即将发生改变。
使用注意事项:需确认双重底出现在零轴附近或负值区域。该条件会导致信号极难出现,因为 TRIX 双重底很少在相邻的 K 线上形成。与其他形态一样,可通过价格同步形成双重底或突破阻力位作为辅助确认信号。该形态的缺陷:在剧烈波动的震荡行情中效果不佳。以下是该形态的 MQL5 代码实现:
//+------------------------------------------------------------------+ //| Check for Pattern 9. | //+------------------------------------------------------------------+ bool CSignalTRX_WPR::IsPattern_9(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && TRX(X()) >= 0.0 && TRX(X() + 1) <= 0.0 && TRX(X() + 2) >= 0.0 && TRX(X() + 3) <= 0.0 && TRX(X() + 4) >= 0.0 && WPR(X()) <= -50.0) { return(true); } else if(T == POSITION_TYPE_SELL && TRX(X() + 4) <= 0.0 && TRX(X() + 3) >= 0.0 && TRX(X() + 2) <= 0.0 && TRX(X() + 1) >= 0.0 && TRX(X()) <= 0.0 && WPR(X()) >= -50.0) { return(true); } return(false); }
该看跌形态要求 TRIX 在零轴位置或零轴上方的正值区域形成双重顶。该形态通常代表多头动能逐步衰竭。WPR 数值高于 - 20,确认市场处于超买状态,进一步支撑行情即将向下反转的判断。使用要点与前文多数形态一致,可结合指标斜率、延后入场以及其他辅助指标综合判断。该形态的主要风险来自反复震荡的假突破行情。这最后一种形态也因入场条件过于严苛,最终没有产生任何交易信号。即便本次采用了极短的指标周期!
结论
本文梳理了三重指数平滑摆动指标(TRIX)与威廉百分比区间指标(WPR)组合衍生出的各类形态及交易信号。本次测试选用了极小的指标周期,目的是在仅一年的短测试周期内获取足够多的交易样本。由此可见,相较于此前研究的其他指标组合,这套组合的灵敏度偏低、信号频次更少。因此,使用者若要实际运用该组合,务必自行开展二次回测,筛选出真正有效、适配行情的形态策略。结合本次测试结果,仅有第 1、4、5 种形态能够通过样本外滚动测试。
| 名称 | 描述 |
|---|---|
| wz-67.mq5 | 通过向导生成的EA,其头文件中已列明所使用的全部依赖文件 |
| SignalWZ_67.mqh | 在 MQL5 向导生成 EA 时所使用的自定义信号类文件 |
对于新手读者,如何使用这些自定义信号类文件,通过 MQL5 向导自动生成智能交易系统(EA) 的详细指南,可点击此处查看。
本文由MetaQuotes Ltd译自英文
原文地址: https://www.mql5.com/en/articles/18251
注意: MetaQuotes Ltd.将保留所有关于这些材料的权利。全部或部分复制或者转载这些材料将被禁止。
本文由网站的一位用户撰写,反映了他们的个人观点。MetaQuotes Ltd 不对所提供信息的准确性负责,也不对因使用所述解决方案、策略或建议而产生的任何后果负责。
确定性振荡搜索(DOS)
博弈论方法在交易算法中的应用
您应该了解的MQL5向导技巧(第六十六部分):结合点积核使用FrAMA与强力指数形态