Sprut
Sprut is a trend-following Expert Advisor that identifies market direction using moving average crossovers and momentum confirmation, entering trades in the direction of the prevailing trend. It employs trailing stop mechanisms to protect profits and uses fixed lot sizing with optional risk-based position sizing. The EA is designed for medium-to-long-term trading on major currency pairs.
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 | -3.52% | -3.06% | 5.03% | 104 | 49.50% | -0.87 | -0.70 | 6 | −$3.08 | Reliable |
| GBPUSD | +4.39% | +3.81% | 3.65% | 103 | 49.50% | 0.78 | 1.20 | 7 | +$4.27 | Reliable |
| USDJPY | -4.98% | -4.34% | 6.32% | 91 | 42.90% | -1.00 | -0.79 | 7 | −$5.47 | Reliable |
| XAUUSD | -9.44% | -7.87% | 51.91% | 97 | 45.80% | 0.38 | -0.18 | 6 | −$7.25 | Reliable |
Profitable on 1 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 Trend Following EAs with a reliable result on the same market: EURUSD: better than 19% of 95 · GBPUSD: better than 79% of 95 · USDJPY: better than 18% of 95 · XAUUSD: better than 41% of 96
Month by month
| Market | Months with a gain | Best month | Worst month |
|---|---|---|---|
| EURUSD | 38% | +0.75% 2026-09 | -1.82% 2026-06 |
| GBPUSD | 62% | +2.67% 2026-04 | -1.59% 2026-03 |
| USDJPY | 31% | +1.40% 2026-07 | -3.18% 2026-08 |
| XAUUSD | 46% | +40.52% 2026-02 | -18.04% 2026-10 |
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 Sprut EA is trend following, using moving average crossovers to determine market trend direction. Entry conditions typically include a fast moving average crossing above or below a slow moving average, combined with momentum indicator confirmation (such as RSI or MACD) to avoid false breakouts. Exit conditions employ a trailing stop mechanism that dynamically adjusts the stop loss level as price moves favorably to lock in profits, along with fixed take profit targets. Position sizing supports fixed lot trading and can also automatically calculate lot size based on account balance and risk percentage. Money management includes maximum position limits and account equity protection mechanisms to prevent excessive damage from a single trade or consecutive losses. The overall strategy logic is clear, but lacks filtering mechanisms for range-bound markets, which may generate many false signals during sideways consolidation periods.
Strengths
- Clear trend-following strategy logic that performs well in strong trending markets
- Trailing stop mechanism effectively protects profits and reduces drawdown risk
- Momentum confirmation filter reduces losing trades from false breakouts
- Supports both fixed lot and risk-percentage position sizing for flexibility
- Maximum position limits prevent excessive directional exposure risk
Weaknesses
- Lacks range-bound market identification and filtering, prone to frequent losing trades during consolidation
- Moving average crossover signals have inherent lag, potentially missing optimal trend entry points
- No spread filter included, trading costs may erode profits in high-spread environments
- Stop loss and take profit use fixed pip values without dynamic ATR-based adjustment
- Missing multi-timeframe confirmation, single timeframe signal reliability is limited
Possible improvements
- Add ADX or volatility filter to pause trading during range-bound markets and avoid false signals
- Convert stop loss and take profit to ATR-based dynamic calculation to adapt to varying market volatility
- Add multi-timeframe confirmation, e.g., H4 trend direction with H1 entry signal to improve win rate
Risk assessment
Overall risk: Medium
- Lag inherent in MA crossover signals may cause late entries, increasing drawdown risk
- Fixed pip stop loss/take profit doesn't account for volatility changes, may be inadequate in extreme markets
- No range filter mechanism may lead to consecutive losses during choppy consolidation periods
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
LotSize | 0.1 | Fixed trading lot size |
FastMA_Period | 10 | Fast moving average period |
SlowMA_Period | 50 | Slow moving average period |
TrailingStop | 30 | Enable trailing stop |
StopLoss | 50 | Stop loss in points |
TakeProfit | 100 | Take profit in points |
MA_Method | MODE_SMA | Moving average calculation method |
UseMomentumFilter | true | Enable momentumfilter |
MaxPositions | 1 | Maximum positions |
RiskPercent | 2.0 | Risk percentage |
Similar Trend Following EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.