20_200_pips_MQL5_v1
This EA trades EUR/USD once per day at a specific hour (default 18:00) by comparing the open prices of two H1 bars separated by t1 and t2 offsets. If the price difference exceeds a delta threshold, it opens a position with a fixed lot size, a 200-pip take profit, and a 2000-pip stop loss. It only allows one trade per day and resets the trading flag after the session ends.
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 comparing the open prices of two H1 bars at a specific time of day to detect short-term price deviation direction. Entry conditions: at the designated TradeTime hour (default 18:00), if Open[t1] exceeds Open[t2] by delta points, a short position is opened; if Open[t1] is below Open[t2] by delta points, a long position is opened. Exit conditions rely on fixed take profit of 200 pips and stop loss of 2000 pips, resulting in an extremely unfavorable risk-reward ratio of 1:10. Position sizing uses a fixed lot size (default 0.1 lots) with no dynamic adjustment or scaling mechanism whatsoever. Money management is entirely absent, with no functionality to calculate position size based on account balance or risk percentage. The core assumption is that price deviations at a specific session time will revert in the short term, but the take-profit-to-stop-loss ratio is severely imbalanced, posing extreme risk.
Strengths
- Simple and intuitive logic, easy to understand and modify
- Trades only once per day, avoiding overtrading
- Daily trading flag prevents duplicate position opening
- Session filter avoids trading during low liquidity periods
Weaknesses
- Extremely poor risk-reward ratio (1:10), requiring over 90% win rate to be profitable
- Stop loss of 2000 pips is excessively large, a single loss can be devastating
- No spread filter, susceptible to slippage losses during high-spread periods
- No dynamic position sizing, fixed lot size ignores account risk
- Hardcoded ORDER_FILLING_FOK which some brokers may not support
- Does not verify whether OrderSend result actually resulted in a filled position
Possible improvements
- Optimize risk-reward ratio by reducing stop loss or increasing take profit to at least 1:2 or better
- Add dynamic position sizing based on account balance and risk percentage
- Add spread filter and new bar check to avoid duplicate signals and high-cost trades
- Dynamically set ORDER_FILLING type based on broker support
- Add backtesting statistics to validate strategy performance across different time parameters
Risk assessment
Overall risk: High risk
- Stop loss of 2000 pips far exceeds take profit of 200 pips, creating a 1:10 risk-reward ratio that is extremely unfavorable
- No spread filter means trades could open during high-spread periods causing additional losses
- Hardcoded ORDER_FILLING_FOK may cause order rejection on some brokers
- Trade result not fully verified, potentially missing fill confirmation
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
TakeProfit | 200 | Take profit in pips |
StopLoss | 2000 | Stop loss in pips |
TradeTime | 18 | Trading session (hours) |
t1 | 7 | Offset index of the first bar |
t2 | 2 | Offset index of the second bar |
delta | 70 | Open price difference threshold (points) |
lot | 0.1 | Fixed lot size |
Similar Session Trading EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.