Exp_HLRSign
This EA trades based on signals from the custom HLRSign indicator, which identifies overbought and oversold conditions using Highest Low Range levels. It opens buy positions on upward signals and sell positions on downward signals, with configurable entry/exit logic and money management modes.
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 | — | — | — | — | — | Not convertible yet |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
Why this EA never traded: no entry rule survived the conversion.
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 the HLRSign indicator, which uses the Highest Low Range (HLR) to calculate overbought and oversold levels, generating buy signals when the indicator breaks above the upper level (HLR_UpLevel=80) and sell signals when it breaks below the lower level (HLR_DnLevel=20). Entry conditions come in two modes: MODE_IN triggers when the indicator crosses from inside the signal zone outward, while MODE_OUT triggers when it crosses from outside into the signal zone. Exit conditions support reverse-signal closing, where a buy signal simultaneously closes sell positions and vice versa, and the EA can also iterate through historical bars to find the nearest reverse signal for confirmation. Position sizing offers five modes: free margin percentage, balance percentage, loss-adjusted free margin, loss-adjusted balance, and fixed lot size, defaulting to a fixed lot of 0.1. Money management is controlled by the MM parameter to regulate risk exposure, with a 1000-point stop loss and 2000-point take profit set to limit per-trade risk. The EA also implements a new bar detection mechanism to prevent duplicate trades on the same bar and uses a Deviation parameter to control slippage tolerance.
Strengths
- Comprehensive position sizing with five money management modes offering flexibility for different risk appetites
- Independently toggleable entry and exit logic, allowing flexible configurations like open-only or close-only modes
- New bar detection mechanism prevents duplicate trades on the same bar, reducing overtrading risk
- Complete stop loss and take profit parameters with a default 1:2 risk-reward ratio (1000 SL vs 2000 TP)
- BarsCalculated check ensures the indicator is ready before trading, avoiding trades on insufficient data
Weaknesses
- Fixed-point stop loss and take profit rather than ATR-based dynamic calculation, poorly adaptable across varying volatility regimes
- No spread filter mechanism, potentially entering at unfavorable prices during high-spread conditions
- Historical bar iteration to find reverse signals (lines 138-159) may cause performance issues with large bar counts
- Depends on custom HLRSign indicator without included source code, limiting auditability and portability
- Static Recount mechanism may cause signal loss; when CopyBuffer fails it only sets a recount flag without retrying
Possible improvements
- Replace fixed stop loss/take profit with ATR-based dynamic calculation for adaptive risk management across volatility regimes
- Add spread filter and trading session filter to avoid entering under unfavorable market conditions
Risk assessment
Overall risk: Medium
- Historical bar iteration loop has no upper bound protection, potentially causing long blocking when Bars_ is very large
- Fixed-point stop loss may be too wide for low-volatility instruments and too narrow for high-volatility ones
- SignalBar=0 allows trading on an incomplete bar where signals may flicker, causing erroneous entries
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Money management parameter controlling lot size or ratio |
MMMode | LOT | Lot calculation mode (Free Margin/Balance/Free Margin with Floating Loss/Balance with Floating Loss/Fixed Lot) |
StopLoss_ | 1000 | Stop Loss in points |
TakeProfit_ | 2000 | Take Profit in points |
Deviation_ | 10 | Maximum allowed slippage |
BuyPosOpen | true | Allow opening buy positions |
SellPosOpen | true | Allow opening sell positions |
BuyPosClose | true | Allow closing buy positions on signal |
SellPosClose | true | Allow closing sell positions on signal |
InpInd_Timeframe | PERIOD_H1 | HLRSign indicator timeframe |
Mode | MODE_OUT | Signal algorithm mode (Inside crossing Outside/Outside crossing Inside) |
HLR_Range | 40 | HLR indicator calculation period range |
HLR_UpLevel | 80 | Overbought level line |
HLR_DnLevel | 20 | Oversold level line |
SignalBar | 1 | Signal bar index (0=current bar, 1=last completed bar) |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.