ExFractals
ExFractals is an Expert Advisor that trades based on Bill Williams' Fractal breakout signals. It enters long positions when price breaks above an upward fractal and enters short positions when price breaks below a downward fractal, using the fractal level as a key support/resistance reference for trade execution and stop placement.
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 | -1.08% | -0.94% | 3.82% | 134 | 47.00% | -0.24 | -0.28 | 5 | −$0.80 | Reliable |
| GBPUSD | +3.76% | +3.26% | 4.44% | 135 | 50.40% | 0.73 | 0.85 | 6 | +$2.78 | Reliable |
| USDJPY | +0.76% | +0.66% | 4.80% | 138 | 41.30% | 0.17 | 0.16 | 6 | +$0.55 | Reliable |
| XAUUSD | +64.74% | +51.05% | 86.36% | 149 | 48.60% | 0.97 | 0.75 | 4 | +$42.08 | Reliable |
Profitable on 3 of 4 markets with reliable results.
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.
Against the other Breakout EAs with a reliable result on the same market: EURUSD: better than 33% of 18 · GBPUSD: better than 83% of 18 · USDJPY: better than 53% of 17 · XAUUSD: better than 68% of 19
Month by month
| Market | Months with a gain | Best month | Worst month |
|---|---|---|---|
| EURUSD | 46% | +1.30% 2026-06 | -1.72% 2026-08 |
| GBPUSD | 38% | +2.78% 2026-05 | -1.41% 2026-10 |
| USDJPY | 46% | +2.13% 2026-07 | -2.65% 2026-03 |
| XAUUSD | 46% | +151.91% 2026-03 | -31.75% 2026-02 |
From the backtest equity curve, sampled about every two days; only reliable results.
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 core strategy of this EA is based on Bill Williams' Fractal indicator breakout trading. A fractal consists of at least 5 bars where the middle bar forms an extreme high (up fractal) or extreme low (down fractal). Entry conditions are: a long position is opened when price closes above an up fractal, and a short position is opened when price closes below a down fractal, which is a classic breakout strategy logic. Exit conditions typically use the opposite fractal as a stop-loss reference - long stops placed below the down fractal and short stops placed above the up fractal, with some versions also adding take-profit targets or trailing stops. Position sizing may use fixed lots or dynamic lot calculation based on account equity percentage, depending on the parameter configuration. Money management risk centers on the fact that fractal breakouts can produce false signals leading to frequent stop-losses, especially in ranging markets where fractal signals are dense and less reliable.
Strengths
- Fractals are a classic and widely recognized technical indicator with clear and easy-to-understand strategy logic
- Using fractals as stop-loss references provides objectivity, avoiding arbitrary stop placement
- Breakout strategies perform well in trending markets, capable of capturing trend continuation
- Few strategy parameters simplify optimization and backtesting processes
Weaknesses
- In ranging markets, fractal signals appear frequently, easily producing false breakouts leading to consecutive losses
- Fractal signals have inherent lag, requiring at least 2 bars of delay to confirm a fractal
- Lacks a trend filter, unable to distinguish between trending and ranging market conditions
- If stops are based on fractal levels, stop distance may be excessively large during extreme volatility, leading to high per-trade risk
Possible improvements
- Add a trend filter (such as ADX or MA direction) to only trade fractal breakouts in trending markets, reducing false signals in ranging conditions
- Add a position sizing module that dynamically adjusts lots based on fractal stop distance to maintain a fixed risk percentage per trade
- Add multi-timeframe confirmation, requiring the higher timeframe trend direction to align before entering
Risk assessment
Overall risk: Medium
- Lack of trend filter may cause frequent stop-outs in ranging markets
- Fractal-based stop distance is variable, potentially leading to uncontrolled per-trade risk
- May lack position check, potentially opening duplicate positions in the same direction
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
Lots | 0.1 | Fixed lot size (used when money management is disabled) |
StopLoss | 0 | Stop loss in points, 0 to disable |
TakeProfit | 0 | Take profit in points, 0 means no take profit |
TrailingStop | 0 | Trailing stop in points, 0 to disable |
MagicNumber | 12345 | EA unique magic number identifier |
TimeFrame | 0 | Fractal calculation timeframe, 0=current period |
Similar Breakout EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.