Apex Scaling Plan Explained: Contract Scaling & the Safety Net
Passing the evaluation isn't the end of Apex's rules. Funded accounts open at half contracts, and the full allowance only unlocks once balance clears a specific threshold — the safety net. Here's the exact math and how to build it into an automated strategy.
The rule in one table (50k example)
| Phase | Contracts allowed (MES) | Condition |
|---|---|---|
| Evaluation | Full (10) | No scaling restriction |
| Funded — before safety net | Half (5) | EOD balance below $52,600 |
| Funded — after safety net | Full (10) | EOD balance reached $52,600 once |
The safety net formula: starting balance + trailing drawdown + $100. On a 50k account that's $50,000 + $2,500 + $100 = $52,600. Clearing it does two things at once — the trailing floor stops advancing (it locks in place), and the half-contract restriction lifts starting the next session.
Why Apex scales contracts on funded accounts
A freshly funded account sitting a mere $2,500 away from its drawdown floor is exactly the account most likely to swing full size into a losing streak and blow through it. Scaling to half contracts for the early phase means the same losing run that would breach a full-size account instead leaves room to recover. From Apex's side it filters variance early; from a trader's side it forces a buffer-building phase that most strategies should be running anyway.
Building the scaling rule into a Pine Script strategy
1. Make position size an input, not a constant
A hard-coded contract count is the most common way a strategy that passed the evaluation breaks once funded. Expose quantity as a script input so the exact same logic runs the eval at full size and the funded account at half size without touching the code.
2. Check the safety net on closed sessions only
The threshold is measured on end-of-day balance, not intraday equity. Touching $52,650 intraday and closing back at $52,400 does not unlock full size — wait for a session that actually closes above the safety net before stepping the input up.
3. Re-check risk-per-trade at half size
Half contracts does not mean half of the drawdown risk — the $2,500 trailing floor is unchanged regardless of position size. A 5-contract MNQ position with a wide stop can still risk a meaningful share of that floor in a single trade; re-run the size-versus-stop math rather than assuming "half contracts" automatically means "half as risky."
4. Pair it with the consistency rule
The scaling phase overlaps with Apex's consistency rule: an oversized single day accelerates reaching the safety net but can simultaneously threaten payout eligibility once funded. A daily profit cap coded into the strategy addresses both constraints with the same variable.
Position-size gate — Pine Script sketch
// ── Apex funded-account contract scaling ──────────────────────────
// Runs half size until a closed session clears the safety net, then
// steps up to full size. Feed in the eval's passing size as fullQty.
fullQty = input.int(10, "Full Contract Count (post safety net)")
startBalance = input.float(50000.0, "Starting Balance")
trailAmount = input.float(2500.0, "Trailing Drawdown Amount")
safetyNet = startBalance + trailAmount + 100
isNewSession = ta.change(time("D")) != 0
var float eodBalance = na
var bool netCleared = false
if isNewSession
eodBalance := nz(eodBalance[1], strategy.equity)
if eodBalance >= safetyNet
netCleared := true
qty = netCleared ? fullQty : math.round(fullQty / 2)
// use qty as strategy.entry(..., qty = qty)