Exp_TSI_WPR
This EA trades based on crossover signals from a custom TSI_WPR indicator, which combines the True Strength Index with Williams' Percent Range. It opens buy positions when the indicator line crosses above its signal line and sell positions on the reverse crossover, with configurable money management and position closing options.
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 momentum crossover of the TSI_WPR indicator, which processes WPR (Williams' Percent Range) through multiple smoothing algorithms to generate a main line and a signal line. Entry conditions trigger a buy signal when the main line crosses above the signal line (Ind[1]>Sign[1] and Ind[0]<=Sign[0]), and a sell signal on the reverse crossover. Exit conditions use reverse crossover signals for closing positions, along with fixed StopLoss and TakeProfit levels. Position sizing supports multiple margin modes including free margin-based, balance-based, loss-adjusted margin, or fixed lot size. The strategy operates on a multi-timeframe basis (default H4) and allows selection of various smoothing algorithms (SMA, EMA, JJMA, JurX, ParMA, T3, VIDYA, AMA) to adjust indicator sensitivity. Signal detection only triggers on new bars via IsNewBar() to prevent repeated trades within the same candle, but lacks spread filtering and position accumulation limits.
Strengths
- Multi-layer smoothing of WPR effectively reduces false signals
- Supports multiple money management modes and smoothing algorithms for high flexibility
- New bar detection prevents repeated trades within the same candle
- Buy/sell open and close can be independently controlled for strategy optimization
- Fixed stop loss and take profit provide defined risk boundaries
Weaknesses
- Lacks spread filtering, may result in unfavorable fills during high-spread conditions
- No check for existing same-direction positions, potentially causing duplicate entries
- Depends on custom TSI_WPR indicator file, requiring proper deployment
- Default SL of 1000 and TP of 2000 points are very large and may not suit all instruments
- No trailing stop feature to lock in floating profits
Possible improvements
- Add spread filtering to pause trading when spread exceeds a threshold
- Add position checking logic to prevent duplicate same-direction entries
- Add trailing stop functionality to better protect floating profits
Risk assessment
Overall risk: Medium
- No spread filter may cause significant slippage during high-volatility periods
- Default 1000-point stop loss is large, single-trade loss could be significant
- No same-direction position check may stack positions and amplify risk
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Lot size or money management ratio |
MMMode | LOT | Lot calculation mode (free margin/balance/free margin minus floating loss/balance minus floating loss/fixed lot) |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum allowed slippage in points |
BuyPosOpen | true | Allow buy position open |
SellPosOpen | true | Allow sell position open |
BuyPosClose | true | Allow buy position close |
SellPosClose | true | Allow sell position close |
InpInd_Timeframe | PERIOD_H4 | Indicator timeframe |
XMA_Method | MODE_EMA | Smoothing algorithm type |
WPRPeriod | 25 | WPR indicator period |
MomPeriod | 1 | Momentum period |
XLength1 | 5 | First-level smoothing period |
XLength2 | 8 | Second-level smoothing period |
XLength3 | 20 | Third-level smoothing period (signal line) |
XPhase | 15 | Smoothing algorithm phase parameter |
SignalBar | 1 | Signal detection bar index |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.