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
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: 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
Parameters
| Parameter | Default | Description |
|---|---|---|
BuySell | 2 | Trade direction: 1=buy only, 2=sell only |
Step | 1000 | Position addition distance in points |
Lot | 0.1 | Initial lot size |
BigLot | 0.5 | Position size threshold to trigger lot multiplication |
MaxLots | 5 | Maximum allowed lot size |
Profit | 60 | Take profit amount in USD |
Loss | 5100 | Stop loss amount in USD |
Mnogitel | 10 | Lot multiplier factor |
Similar Martingale EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.