Markets breathe. They trend, stall, and spike. Most grid systems suffocate in that noise; they either over-average, panic-close in red, or grind the equity into a cliff. SP500 Smart Grid is built around a simple, stubborn philosophy: protect the equity curve and harvest only green.
It does this by staying on one side of the market at a time (guided by the EMA slope) and only banking in profit. There’s no “pray and close at a loss” button buried inside. Instead, the EA uses a profit-only basket exit, a trailing equity lock, and a skim-the-cream mechanism that quietly closes the most profitable tickets first when the market offers it. When volatility misbehaves, it simply pauses, freezes, or hedges—not out of fear, but out of discipline. The goal is not to “win every tick”, but to avoid the dumb losses that ruin otherwise good systems.
You’ll see it act like a seasoned trader: trade only within a safe session, block entries on spikes, avoid chasing price too far from the EMA, and decay the lot size with each new layer instead of growing it. It’s deliberate, conservative, and comfortable ignoring noise until the odds are good.
If you value quiet control, one-sided alignment, and profit-only exits, this grid feels different—because it is.
One-Sided Grid (EMA-aligned):
Trades only long above the EMA and only short below, with confirmation from EMA slope over EmaSlopeBars . A trend flip is triggered by % change vs the EMA anchor ( Trend_Trigger_Pct ). While a basket is open, it can block the opposite side to avoid tug-of-war.
Lot Decay per Layer:
InitialLots then multiplied by LotDecay for each new layer ( MaxPositions cap). This reduces marginal risk as the grid extends—opposite of martingale.
Dynamic Grid Step (ATR):
Actual step = max(GridStepPoints, ATR * ATR_Mult_Grid) . Widens spacing when volatility rises, compresses when it calms.
Profit-Only Engine:
Basket TP in dollars: TP_GridEquity closes all positions when basket profit ≥ target.
Trailing equity lock: when drawdown from equity_max hits TrailingEquityPct , try a profit-only close ( MinProfitClose ).
Local drawdown close: at LocalDrawdownClosePct , again try profit-only closes.
Skim profits: closes best tickets first ( CloseMostProfitable ) to chip away risk if full basket TP isn’t yet available.
No negative liquidation logic. If the market won’t pay, the EA prefers to freeze/pause.
Session Control:
Trades only between TradeStartHour and TradeEndHour (server time). After the session, no new entries; if possible, it flattens in profit using MinProfitClose .
ATR spike blocker: If current M5 bar range > SpikeATRMult * ATR , entries are blocked; then a cooldown of SpikeCooldownBars M5 bars.
EMA distance guard: If price is too far from EMA ( MaxEmaDistPct ), skip entries—prevents chasing extremes.
Entry throttle: EntryCooldownSec to avoid stacking layers too fast.
RUN: normal operation.
FREEZE: stop adding layers when either drawdown from equity_max ≥ FreezeDropPct or basket age ≥ FreezeAfterHours .
PAUSE: if daily balance drawdown ≥ SL_Total_Pct or after EOD flattening.
HEDGED (optional): if enabled, auto-hedges when ACCOUNT_MARGIN_LEVEL% falls below HedgeWhenMarginLevelPct or when drop ≥ HedgeOnDropPct , to neutralize net exposure. Returns to RUN on profit-only exit.
Graceful TP slide: As basket age approaches MaxBasketAgeHours , the required basket TP slides from TP_GridEquity toward MinProfitClose . This helps unlock stuck baskets still in profit, never forcing a red exit.
Daily reset: Tracks balance_day_start . If daily DD reaches SL_Total_Pct , the EA PAUSES (no revenge trading). Limit bad days with MaxLossStreak .
New day reset: resets anchors, trend flags, and state to keep behavior clean per session.
Whitelist (on by default): RestrictToSymbols + AllowedSymbolsCSV ensures you run it on SP500/US500 symbols it’s designed for (e.g., SP500m, US500, US500.cash, SPX500, US500m, SP500 ).
Validation fallback (optional): If a broker blocks live trading on that symbol (or you load a non-allowed symbol), the EA executes a minimal, safe operation (quick open/close or a pending-order add/remove) so the Market validator still sees activity—then stops. This avoids confusion during product checks.
Risk / Grid
InitialLots , LotDecay , MaxPositions
GridStepPoints , ATR_Period , ATR_Mult_Grid
Profit Management
TP_GridEquity (basket USD TP)
TrailingEquityPct , LocalDrawdownClosePct , MinProfitClose
FreezeDropPct
Trend & Filters
TrendEMA_Period , EmaSlopeBars , Trend_Trigger_Pct
MaxEmaDistPct (no entries too far from EMA)
Spike controls: SpikeATRMult , SpikeCooldownBars , EntryCooldownSec
Time & Safety
TradeStartHour , TradeEndHour
SL_Total_Pct , MaxLossStreak
Basket Aging
MaxBasketAgeHours (TP slides toward MinProfitClose )
FreezeAfterHours (switch to FREEZE)
Hedge (optional)
EnableAutoHedge , HedgeWhenMarginLevelPct , HedgeOnDropPct
Symbols / Validation
RestrictToSymbols , AllowedSymbolsCSV
EnableValidationFallback
Open (RUN): If above EMA and slope up → only buy grid; below EMA and slope down → only sell grid. Step size adapts to ATR.
During Basket: Track equity_max . If price wiggles favorably, hit TP_GridEquity and flat; if not, engage trailing equity logic or skim profitable tickets.
Risk Event: Spike? Block entries + cooldown. Big equity drop? Freeze new layers; attempt profit-only trims.
Session End: Try a profit-only flatten; otherwise PAUSE new entries until the next day.
Run on an SP500/US500 symbol from the whitelist.
Use the default M5 baseline the EA is built around (internally uses M5 for ATR/spike logic and EMA).
Start with defaults; adjust only one risk lever at a time (e.g., TP_GridEquity or InitialLots ).
Avoid raising MaxPositions before you’re comfortable with broker margin and symbol behavior.
No martingale growth.
No forced red closes (profit-only logic for exits).
No revenge entries after a tough session (daily PAUSE and loss-streak guard).
Important: This is not investment advice. Past performance doesn’t guarantee future results. Test on a demo first and size conservatively.
If you share the profit-first, calm-always mindset, SP500 Smart Grid will feel like home.
If for any reason you do not like the purchased program, you can request a refund within 30 days from the date of purchase. You can also make an exchange for any other product at an equal cost or by paying the difference.
Simply send a request for refund or exchange with your order number by email: support@fx-market.pro.
Refund requests received more than 30 days after purchase will be rejected.