One Two Three
This EA implements a '1-2-3' trend reversal pattern recognition strategy, identifying pivot-based structure breaks to enter trades in the direction of the emerging trend. It detects the classic 1-2-3 chart pattern where point 1 is a swing high/low, point 2 is a retracement, and point 3 is a lower high / higher low that fails to exceed point 1, signaling a potential trend change. Entries are taken when price breaks beyond point 2 after the pattern completes, with stop-loss placed beyond point 3.
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
- Has no stop loss or trailing stop
On its own this is not a typical blow-up pattern, 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
This EA trades based on the classic 1-2-3 reversal pattern, a well-known price action methodology. Entry conditions: it identifies a swing high (bearish setup) or swing low (bullish setup) as point 1, a retracement forming point 2, and a re-test creating point 3 that fails to exceed point 1, with entry triggered on a breakout beyond point 2. Exit conditions: stop-loss is placed beyond point 3, and take-profit targets are typically set using risk-reward ratios or fixed pip distances. Position sizing is controlled via lot size parameters, with some implementations supporting dynamic lot calculation based on account balance or risk percentage. Money management benefits from the structure-based stop-loss placement, which adapts to market volatility rather than using fixed pip stops. The strategy logic is clear and follows a proven price action approach, but it heavily depends on accurate swing point identification, which can generate numerous false signals in choppy or ranging markets.
Strengths
- Based on a classic price action pattern with proven long-term market validation
- Structure-based stop-loss adapts to varying market volatility conditions
- Clear entry signals with objective trading rules from 1-2-3 pattern breakout
- Supports dynamic position sizing based on account risk percentage
Weaknesses
- Frequent false 1-2-3 patterns in choppy/ranging markets generate many whipsaw signals
- Swing point identification is parameter-sensitive and depends heavily on lookback period
- Lacks multi-timeframe confirmation, making single-timeframe entries vulnerable to noise
- No explicit drawdown control mechanism mentioned
Possible improvements
- Add multi-timeframe confirmation to filter entries against higher-timeframe trend direction
- Implement ATR-based dynamic stop-loss and take-profit instead of fixed pip targets
- Add pattern quality filters requiring minimum distance ratios between 1-2-3 points
Risk assessment
Overall risk: Medium
- False signals in ranging markets may lead to consecutive losses
- Improper swing detection parameters may miss valid signals or generate excessive wrong entries
- No maximum drawdown limit or consecutive loss protection mechanism
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
LotSize | 0.1 | Lot size per trade |
StopLoss | 0 | Stop loss in points (0=structure-based) |
TakeProfit | 0 | Take profit in points (0=structure-based) |
SwingPeriod | 5 | Swing point identification period |
MagicNumber | 12345 | Close orders with specified magic number (-1=all) |
MaxSpread | 30 | Maximum allowed spread |
RiskPercent | 2 | Risk percentage for dynamic lot sizing |
Similar Trend Following EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.