EA-15888 · Trend Following

Exp_JFatl_Digit_System

This EA trades based on signals from the custom JFatl_Digit_System indicator, which combines a JMA-based digital filter with digit-level rounding. It opens buy positions when the indicator signals an uptrend and sell positions on a downtrend, with configurable stop loss, take profit, and money management options.

Open the interactive view (equity curve, symbol switch)

Key facts

RiskMedium
Blow-up riskLow
Rating★★☆☆☆
TypeTrading EA
TimeframesH1, H4, D1
IndicatorsJFatl_Digit_System, JMA
Author—

Backtest results (H1, about 1 year)

SymbolP&LAnnualMax DDTradesWin rateSharpeRecoveryLosing streakPer tradeStatus
EURUSD0.00%0.00%0.00%0—————Not convertible yet
GBPUSD0.00%0.00%0.00%0—————Not convertible yet
USDJPY0.00%0.00%0.00%0—————Not convertible yet
XAUUSD0.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

This EA uses the JFatl_Digit_System custom indicator as its core signal source, which is based on the JMA (Jurik Moving Average) smoothing algorithm combined with a digital filter to identify trend direction. Entry conditions: a buy signal is generated when the indicator's color buffer (buffer 6) value exceeds 2 and another buffer value is below 3, opening a long position; a sell signal triggers when the color buffer value falls below 2 and the other buffer value exceeds 1, opening a short position. Exit conditions: when a buy signal fires, existing sell positions are simultaneously closed, and vice versa, implementing a trend-reversal exit logic. Position sizing supports five modes: fixed lot, balance-based percentage, equity-based percentage, free margin percentage, and loss-adjusted margin percentage. Money management is controlled via the MM parameter and MMMode enumeration to regulate risk per trade, with default stop loss and take profit set at 1000 and 2000 points respectively. The EA only recalculates signals on new bar formation (IsNewBar mechanism) to avoid per-tick redundant computation, though it processes every tick when SignalBar is set to 0.

Strengths

  • Uses JMA-based digital filter for smooth signals, effectively reducing false signals
  • Supports multiple money management modes with high flexibility for different trading styles
  • New bar mechanism avoids per-tick redundant computation, reducing processing load
  • Configurable stop loss and take profit provide basic risk control
  • Independent buy/sell switches allow directional-only trading, adding strategy flexibility

Weaknesses

  • min_rates_total is overwritten on line 73 after being assigned on line 72, indicating an obvious code bug
  • No spread filter, which may result in unfavorable fills on high-spread instruments
  • Depends on custom indicator JFatl_Digit_System; EA fails if the indicator file is missing
  • Signal logic relies on magic number constants (1, 2, 3) from indicator buffers, poor readability and no comments
  • No position check logic, potentially opening duplicate positions on the same signal

Possible improvements

  • Fix the min_rates_total double-assignment bug, preserving the correct minimum bars calculation
  • Add spread filter and position check to prevent high-slippage fills and duplicate position opening
  • Replace magic number constants from indicator buffers with meaningful enums or named constants for readability

Risk assessment

Overall risk: Medium

  • min_rates_total variable incorrectly overwritten, potentially causing trading before indicator data is fully loaded
  • No position check may lead to duplicate position opening and excessive exposure
  • No spread filter may result in unfavorable fills during low-liquidity sessions or on high-spread instruments

Evaluation scores

Code quality2.0
Strategy logic3.0
Risk management2.0
Robustness2.0
Innovation3.0
Documentation1.0
Overall2.2

Parameters

ParameterDefaultDescription
MM0.1Money management ratio or lot value
MMModeLOTLot mode: free margin/balance/post-loss free margin/post-loss balance/fixed lot
StopLoss_1000Stop loss in points
TakeProfit_2000Take profit in points
Deviation_10Slippage deviation allowance
BuyPosOpentrueAllow opening long positions
SellPosOpentrueAllow opening short positions
BuyPosClosetrueAllow closing long positions
SellPosClosetrueAllow closing short positions
InpInd_TimeframePERIOD_H4Timeframe for iDeMarkerSign indicator
JLength5JMA smoothing length parameter
JPhase-100JMA phase parameter, range -100 to +100
Shift2Indicator offset relative to current bar
Digit2Number of digits for indicator digitization
SignalBar1Bar index for signal reading (0=current, 1=last completed)

Similar Trend Following EAs

Backtests are historical simulations and do not guarantee future results. Not financial advice.

Get the weekly Arena report

One email a week: ranking changes, new signals and new research. No spam; unsubscribe any time.