Exp_UltraWPR
This EA trades based on crossover signals from the UltraWPR custom indicator, which applies multi-stage smoothing to the Williams Percent Range (WPR). It opens buy positions when the smoothed WPR upward line crosses above the downward line and sell positions on the reverse crossover, with configurable permissions for entry and exit.
Open the interactive view (equity curve, symbol switch)Key facts
Backtest results (H1, about 1 year)
| Symbol | P&L | Annual | Max DD | Trades | Win rate | Sharpe | Recovery | Losing streak | Per trade | Status |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Run error |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Run error |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Run error |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Run error |
Converted from MQL5 to Python and run with the same rules for every EA. Positions use MT5 lot sizes (100,000 units per FX lot, 100 oz per gold lot) with 1:100 leverage, one order at a time, and a stop-out below 10% of the starting balance. Sharpe is computed from the equity curve. Results marked as unreliable are shown for completeness only.
Blow-up risk: No blow-up pattern found
None of the usual blow-up patterns were found in the code, and the account was not stopped out in our backtests. That is not a guarantee: any EA can lose money.
High: stopped out in our backtest, or martingale/grid sizing without a stop loss. Elevated: martingale or grid sizing with a stop loss, or several positions at once without a stop loss. What the label means and what we found →
Strategy analysis
The strategy concept is based on dual-line crossover signals from the UltraWPR indicator, which applies multiple stages of adaptive smoothing (JJMA, JurX, ParMA, T3, VIDYA, AMA options) to the Williams Percent Range (WPR). Entry conditions: a buy signal is generated when the UpValue line crosses above the DnValue line (detected by comparing values across two consecutive bars), and a sell signal on the reverse crossover. Exit conditions include fixed Stop Loss (default 1000 points) and Take Profit (default 2000 points), plus directional close signals triggered when the opposite crossover occurs. Position sizing is controlled by the MM parameter where negative values represent fixed lot sizes and positive values represent a share of the deposit. Money management is delegated to the external TradeAlgorithms.mqh library functions (BuyPositionOpen/SellPositionOpen), which also handle maximum price deviation control. The strategy operates on a configurable timeframe (default H4) and only evaluates trading logic on new bar formation to prevent duplicate signals within the same bar.
Strengths
- Multi-stage adaptive smoothing algorithms reduce WPR noise and false signals, improving signal quality
- Rich selection of smoothing methods (JJMA/JurX/ParMA/T3/VIDYA/AMA) provides high strategy flexibility
- Independent permission controls for buy/sell open and close operations enable fine-grained trade management
Weaknesses
- Fixed 1000-point SL and 2000-point TP lack dynamic adjustment based on market volatility (e.g. ATR-based)
- No spread filter or volatility filter means potential frequent false signals in high-spread or low-volatility environments
- Core trading logic depends on external libraries (TradeAlgorithms.mqh, SmoothAlgorithms.mqh), reducing code auditability and portability
Possible improvements
- Add ATR-based dynamic stop loss/take profit mechanism instead of fixed point values to adapt to varying market volatility
- Add spread filter and minimum volatility threshold to avoid entering trades when transaction costs are too high or the market is too quiet
Risk assessment
Overall risk: Medium
- Fixed stop loss/take profit does not adjust with market volatility, potentially causing excessive losses or premature profit-taking in extreme conditions
- When MM is negative (fixed lot), there is no dynamic response to account equity changes, potentially leading to over-leveraging
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | -0.1 | Deposit ratio or fixed lots; negative value = lots |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Max price slippage deviation (points) |
BuyPosOpen | true | Allow buy position opening |
SellPosOpen | true | Allow sell position opening |
BuyPosClose | true | Allow closing buy positions |
SellPosClose | true | Allow closing sell positions |
InpInd_Timeframe | PERIOD_H4 | UltraWPR indicator timeframe |
WPR_Period | 13 | WPR indicator period |
W_Method | MODE_JJMA | Initial smoothing method |
StartLength | 3 | Initial smoothing period |
WPhase | 100 | Smoothing parameter (JJMA: -100~+100, VIDYA: CMO period, AMA: slow MA period) |
xStep | 5 | Period change step size |
xStepsTotal | 10 | Number of cycle changes |
SmoothMethod | MODE_JJMA | Final smoothing method |
SmoothLength | 3 | Final smoothing period |
SmoothPhase | 100 | Final smoothing phase parameter |
SignalBar | 1 | Bar index for entry signal |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.