EA-16348 · Martingale

HelloSmart

HelloSmart is a Martingale-style grid EA that opens positions at fixed price intervals (Step) and multiplies lot size by a Mnogitel factor when total position volume exceeds BigLot. It closes all positions when a profit target or loss limit is reached, then resets lot size to the initial value.

Open the interactive view (equity curve, symbol switch)

Key facts

CategoryMartingale
RiskDangerous
Blow-up riskHigh
Rating★☆☆☆☆
TypeTrading EA
TimeframesM15, H1, H4
IndicatorsPrice Action
AuthorAM2

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: High

  • Increases the position size after losses (martingale)
  • Opens a grid of orders at fixed price steps
  • Has no stop loss or trailing stop

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

Strategy concept: This EA employs a Martingale position-sizing approach, adding positions at fixed price intervals (Step points) and scaling up lot size to average down entry price, aiming to profit on price reversals. Entry conditions: When BuySell=1, it buys if there are no positions or if Ask has dropped Step points below the last entry price; when BuySell=2, it sells if there are no positions or if Bid has risen Step points above the last entry price. Exit conditions: All positions on the symbol are closed when cumulative floating profit exceeds Profit dollars or loss exceeds Loss dollars. Position sizing: Starts with Lot size, multiplies by Mnogitel when total volume reaches BigLot, and resets to Lot if the computed lot exceeds MaxLots. Money management: Relies solely on dollar-based profit/loss thresholds for closure, with no individual stop-loss or take-profit set on any position. The strategy continuously adds positions in trending markets, creating extreme drawdown risk.

Strengths

  • Simple and intuitive logic, easy to understand and modify
  • Has global profit/loss thresholds to limit maximum drawdown
  • MaxLots cap and lot reset mechanism prevents infinite lot escalation
  • Uses new bar detection to avoid repeated tick-level entries

Weaknesses

  • Martingale strategy carries extreme risk in trending markets; the loss limit of $5100 vs profit target of $60 has terrible risk-reward ratio
  • No individual stop-loss or take-profit, relying entirely on global closure mechanism
  • SymbProfit and Lots functions have a critical bug: pos.Select(Symb) ignores loop variable i, only checking the same position repeatedly
  • CloseAll function has the same index bug, unable to correctly iterate all positions
  • No slippage, spread, or margin checks; real trading may fail to open positions
  • Mnogitel factor of 10x is excessively aggressive, quickly reaching MaxLots cap

Possible improvements

  • Fix pos.Select call logic — use pos.SelectByIndex(i) to correctly iterate through positions instead of selecting by symbol name inside the loop
  • Add individual stop-loss and take-profit to reduce risk of continuous one-direction position accumulation
  • Add spread filter and margin check to improve real-trading reliability
  • Reduce Mnogitel multiplier to a reasonable range (1.5-2x) and adopt a more conservative position-sizing approach

Risk assessment

Overall risk: Dangerous

  • Martingale position-sizing can lead to account blow-up in strong trending markets
  • Critical bug in position iteration: SymbProfit/Lots/CloseAll cannot correctly enumerate and operate on all positions
  • No individual stop-loss; reliance on global loss limit means slippage in extreme markets can cause losses far exceeding the threshold
  • Mnogitel multiplier of 10x causes extremely rapid lot escalation

Evaluation scores

Code quality1.0
Strategy logic2.0
Risk management1.0
Robustness1.0
Innovation1.0
Documentation1.0
Overall1.2

Parameters

ParameterDefaultDescription
BuySell2Trade direction: 1=buy only, 2=sell only
Step1000Position addition distance in points
Lot0.1Initial lot size
BigLot0.5Position size threshold to trigger lot multiplication
MaxLots5Maximum allowed lot size
Profit60Take profit amount in USD
Loss5100Stop loss amount in USD
Mnogitel10Lot multiplier factor

Similar Martingale 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.