Appearance
Personalize your experience
Linear Subtractive
Anti-MartingaleRemove a fixed amount each level.
At a glance
anti_marti_linearsize(i) = base − iWhat this curve is for
Subtractive decay: each level removes a amount of size. Because the decrement is absolute rather than proportional, the 's behaviour depends entirely on the base lot — on a base it is a shallow taper, on a small one it hits the almost immediately.
How the sizing rule works
Size at level i is (100 − i)/100 against a nominal base of 100, i.e. one unit minus a flat step per level. The subtraction is linear, so the taper is a straight line down to the one-lot .
| Level | Per-order size | Orders | Level total | Cumulative | Entry price | Take-profit |
|---|---|---|---|---|---|---|
| L1 | 0.99× | 1 | 0.99× | 0.99× | 99.00 | 99.99 |
| L2 | 0.98× | 1 | 0.98× | 1.97× | 98.00 | 98.98 |
| L3 | 0.97× | 1 | 0.97× | 2.94× | 97.00 | 97.97 |
| L4 | 0.96× | 1 | 0.96× | 3.90× | 96.00 | 96.96 |
| L5 | 0.95× | 1 | 0.95× | 4.85× | 95.00 | 95.95 |
| L6 | 0.94× | 1 | 0.94× | 5.79× | 94.00 | 94.94 |
| L7 | 0.93× | 1 | 0.93× | 6.72× | 93.00 | 93.93 |
| L8 | 0.92× | 1 | 0.92× | 7.64× | 92.00 | 92.92 |
| L9 | 0.91× | 1 | 0.91× | 8.55× | 91.00 | 91.91 |
| L10 | 0.90× | 1 | 0.90× | 9.45× | 90.00 | 90.90 |
The ladder, as the engine builds it
Below is the 's own ladder and the trading terminal's chart engine, both driven by buildLadderPlan for this . Change the level count, spread or target and the rung prices, sizes, and chart lines recompute exactly as they would in the .
Ladder shape — Linear Subtractive
LONG · base 100.00 (illustrative) · 10 levels stepping down · 1% apart
Targets are stacked above the opening buy because a long grid exits higher than it enters.
Entry ladder
Limit buys below the base · L1 nearest, L10 deepest · every amount in USDT
| Level | Size curve | Entry buyUSDT | Exit sellUSDT | From base% | Sizebase lots | Orders | NotionalUSDT | MarginUSDT | Cum. capitalUSDT | Profit at exitUSDT |
|---|---|---|---|---|---|---|---|---|---|---|
| L1 | 100% | 99.00 | 99.99 | 1.00% | 0.990× | 1 | 99 | 99 | 299 | 0.99 |
| L2 | 99% | 98.00 | 98.98 | 2.00% | 0.980× | 1 | 98 | 98 | 397 | 0.98 |
| L3 | 98% | 97.00 | 97.97 | 3.00% | 0.970× | 1 | 97 | 97 | 494 | 0.97 |
| L4 | 97% | 96.00 | 96.96 | 4.00% | 0.960× | 1 | 96 | 96 | 590 | 0.96 |
| L5 | 96% | 95.00 | 95.95 | 5.00% | 0.950× | 1 | 95 | 95 | 685 | 0.95 |
| L6 | 95% | 94.00 | 94.94 | 6.00% | 0.940× | 1 | 94 | 94 | 779 | 0.94 |
| L7 | 94% | 93.00 | 93.93 | 7.00% | 0.930× | 1 | 93 | 93 | 872 | 0.93 |
| L8 | 93% | 92.00 | 92.92 | 8.00% | 0.920× | 1 | 92 | 92 | 964 | 0.92 |
| L9 | 92% | 91.00 | 91.91 | 9.00% | 0.910× | 1 | 91 | 91 | 1,055 | 0.91 |
| L10 | 91% | 90.00 | 90.90 | 10.00% | 0.900× | 1 | 90 | 90 | 1,145 | 0.9 |
What depth costs
Slightly below a flat ladder, and exactly predictable. There is no curvature to model, which makes this the most legible decay for someone who has to explain the to a risk committee.
| Levels | Ladder cost | Deepest rung | Entry orders | Cost vs 5 levels | Coverage |
|---|---|---|---|---|---|
| 5 levels | 4.85× | 0.95× | 5 | 1.00× | 5% |
| 10 levels | 9.45× | 0.90× | 10 | 1.95× | 10% |
| 20 levels | 17.9× | 0.80× | 20 | 3.69× | 20% |
| 40 levels | 31.8× | 0.60× | 40 | 6.56× | 40% |
Read the cost vs 5 levels column as the escalation test. A flat ladder doubles when the depth doubles; anything materially above that is a whose coverage has to be bought rather than simply configured.
| Capital budget | Levels affordable | Adverse move covered |
|---|---|---|
| 10× base | 10 levels | 10.0% |
| 25× base | 29 levels | 29.0% |
| 50× base | 200 levels | 200.0% |
| 100× base | 200 levels | 200.0% |
| 250× base | 200 levels | 200.0% |
Averaging and recovery
With every rung , the volume-weighted average entry is 94.59 against a base of 100 and a deepest rung of 90.00 — so the average sits 54% of the way down the covered range. Getting back to flat from the bottom therefore needs a 5.10% , against 5.00% for a flat ladder of the same depth — 0.10% more work.
| Excursion | Levels filled | Deployed | Average entry | Mark | Unrealised | Bounce to flat |
|---|---|---|---|---|---|---|
| Shallow dip | L1–L3 | 2.94× | 98.01 | 97.00 | -0.03× | 1.04% |
| Half the ladder fills | L1–L5 | 4.85× | 97.02 | 95.00 | -0.10× | 2.13% |
| Full ladder | L1–L10 | 9.45× | 94.59 | 90.00 | -0.45× | 5.10% |
Decreases by a flat amount per level until the one-lot . Simple and predictable, but on a base lot the taper is relatively shallow.
Where the exposure sits
The last row is the metric that separates modes. Profit for a full cycle is the target of deployed capital in every , so it cannot discriminate. What differs is how much capital has to sit reserved to earn one shallow cycle: this mode 9.45× base to collect 10.5 bps of it when the first rung completes.
Which market pays this curve
Gentle trend protection where you want size changes you can compute in your head and defend in a review.
Decreases by a flat step per level until it floors at 1 lot. Simple, predictable taper that reduces commitment gradually as deepens.
The shape of the risk
Low. The specific hazard is the base-lot dependency: the same configuration behaves very differently at 50 and grid size 5,000.
Run it over real history
This is the product's grid backtester, not a summary of one. It fetches public candles for the you pick, rebuilds the ladder on the first candle of the , then applies the engine's own fill, take-profit, and stop-loss rules bar by bar. The caveat block inside the is part of the output — read it before trusting a number.
Instrument
BTCUSD
delta-india
Linear Subtractive · 10 levels @ 1% · target 1% · 100 USDT / level · 1× · long · no stop
What this does not model
- Exact intrabar ticks. Bullish/doji candles use open → low → high → close; bearish candles use open → high → low → close. Finer timeframes reduce sensitivity to this deterministic assumption.
- Queue position. Limit orders are assumed filled when touched, which flatters a maker grid in fast markets.
- Margin rejection and liquidation. Deep rungs fill here even if the account could not fund them — check the capital requirement.
- Slippage and funding. Only the fee you set above is charged; funding, borrow and slippage are absent.
Run the ladder over real history
The grid is rebuilt anchored on the first candle of the window, then the engine's own fill, exit, refill and stop-loss rules are applied bar by bar. You get the real fill sequence for this configuration on this instrument.
Measured against other modes
First the arithmetic, then the market. The below is computed from the size curves alone; the underneath replays every one of those ladders over the same real candle , with grid_mode as the only variable.
| Mode | Ladder cost | Deepest rung | Break-even bounce | Entry orders | Shallow cycle |
|---|---|---|---|---|---|
| Linear Subtractive (this mode) | 9.45× | 0.90× | 5.10% | 10 | 10.5 bps |
| Fixed | 10.0× | 1.00× | 5.00% | 10 | 10.0 bps |
| Square-Root Decay | 4.32× | 0.30× | 5.85% | 10 | 16.4 bps |
| Exponential Decay | 1.00× | 0.00× | 8.90% | 10 | 50.0 bps |
| Linear Martingale | 55.0× | 10.0× | 2.38% | 55 | 1.8 bps |
Nothing is precomputed here. Press run and the backtester fetches one candle window and replays 5 ladders across it — identical settings, identical bars, grid_mode as the only difference.
When to use it
- Gentle trend protection with steps you can compute in your head.
- Reviews and mandates that require a linear, explainable size rule.
When to avoid it
- base lots — the subtraction reaches the almost immediately.
- You want a decay whose is independent of the .
Tuning
- Check the 's per-level sizes against the venue minimum before deploying; that is where this surprises people.
- If the taper is too shallow to matter, gives you an explicit rate instead.
Running it in production
- Watch how quickly executed size hits the one-lot — beyond that extra levels add coverage but almost no averaging.
- Track realised cycles per day. Decay curves earn from frequency, so a falling cycle count is the signal that the market has left the .
- Check the gap between average entry and . Decay curves keep it wide by design, so recovery expectations must be set from it, not from hope.
How it fails
- 1Base-lot sensitivityThe decrement is absolute, so doubling the halves the taper's relative effect. The name does not warn you; the does.
Claims worth correcting
“Linear subtractive is the mirror of .”
Only in . multiplies exposure with depth; this one subtracts a slice and then stops at the , so the asymmetry is .
Interaction with the rest of the configuration
- Spread sets how fast the ladder consumes depth. Widening it buys coverage for the same level count at the cost of fewer .
- Target sets what each cycle books. Below -trip fees plus slippage, a grid is a fee generator regardless of the .
- The is the only bound on the tail. Without it, the 's worst case is whatever the market does, not what you planned.
Questions this mode raises
- 1How far down does it stay meaningful?Until the subtraction reaches the minimum lot. Read the exact depth off the ladder above rather than estimating it.
Where these numbers come from
- Sizes and capital:
levelMultiplier/gridModeCurveinlib/grid/gridModes.ts, fromgrid_modes.hppand the Python engine's lot calculator. - Rung and exit prices, , init targets and the stop line:
buildLadderPlan— the same builder the and use. - Backtest , cycles and P&L:
runBacktest/runBacktestSweepover public broker candles, applying the engine's fill, exit, and stop rules. - Price charts: the trading terminal's chart engine, with the ladder drawn through its own price-line API.
Related
- 1.Grid Modes — Overview — The full taxonomy and how to choose
- 2.Anti-Martingale family — What every curve in this family has in common
- 3.Capital Allocation — Sizing an account to a Linear Subtractive ladder
- 4.Stop Loss — Bounding this curve's tail
- 5.Reading the Ladder Plan — Verifying the curve before deploying
- 6.Grid Structure — Levels, init batch and base size
Related articles
Related to Linear Subtractive
- Anti-Martingale
Automation / Grid Modes / Anti-Martingale
Anti-Martingale explained: how it works in QuaTick, settings and worked examples. Part of the Automation / Grid Modes / Anti-Martingale reference.
- Exponential Decay
Automation / Grid Modes / Anti-Martingale
Exponential Decay explained: how it works in QuaTick, settings and worked examples. Part of the Automation / Grid Modes / Anti-Martingale reference.
- Geometric Decay
Automation / Grid Modes / Anti-Martingale
Geometric Decay explained: how it works in QuaTick, settings and worked examples. Part of the Automation / Grid Modes / Anti-Martingale reference.
- Half-Slope Inverse
Automation / Grid Modes / Anti-Martingale
Half-Slope Inverse explained: how it works in QuaTick, settings and worked examples. Part of the Automation / Grid Modes / Anti-Martingale reference.
- Inverse Fibonacci
Automation / Grid Modes / Anti-Martingale
Inverse Fibonacci explained: how it works in QuaTick, settings and worked examples. Part of the Automation / Grid Modes / Anti-Martingale reference.
- Logarithmic Decay
Automation / Grid Modes / Anti-Martingale
Logarithmic Decay explained: how it works in QuaTick, settings and worked examples. Part of the Automation / Grid Modes / Anti-Martingale reference.
- Square-Root Decay
Automation / Grid Modes / Anti-Martingale
Square-Root Decay explained: how it works in QuaTick, settings and worked examples. Part of the Automation / Grid Modes / Anti-Martingale reference.
- Anti-Martingale family
Automation / Grid Modes / Families
Size shrinks as the ladder deepens. Capital protection first, recovery second.
- Harmonic
Automation / Grid Modes / Harmonic
Harmonic explained: how it works in QuaTick, settings and worked examples. Part of the Automation / Grid Modes / Harmonic reference.