Position sizing
Position sizing is the only control that scales your loss directly. Everything else changes the probability of a bad outcome; this changes its magnitude.
How a percentage becomes a quantity
The chain, in order:
| Step | Value | Derived by |
|---|---|---|
| 1 | Allocated capital | You set it at deployment |
| 2 | Risk budget, in money | Allocated capital multiplied by per-trade risk % |
| 3 | Raw quantity | Risk budget divided by (entry price less stop price) |
| 4 | Position size | Raw quantity rounded down to the instrument's quantity step or lot size |
| 5 | Order | Position size checked against max_order_value, max_capital_allocation and available_capital |
Worked example
| Step | Value |
|---|---|
| Allocated capital | ₹5,00,000 |
| Per-trade risk | 1% |
| Risk budget | ₹5,000 |
| Entry price | ₹2,850 |
| Stop-loss | 1.2%, giving ₹2,815.80 |
| Risk per share | ₹34.20 |
| Raw quantity | 5,000 ÷ 34.20 = 146.2 |
| Quantity step | Whole shares |
| Position size | 146 shares, notional ₹4,16,100 |
Notice the notional. A 1% risk budget produced a position worth 83% of the allocation. That is correct, and it is the thing people find surprising: the risk is 1%, the exposure is 83%. A tight stop buys a large position.
Halve the stop to 0.6% and the same ₹5,000 budget buys 292 shares, notional ₹8.3 lakh, which exceeds the allocation and would be rejected by the capital gates.
A tight stop concentrates exposure and makes you far more sensitive to a gap, because the gap is measured against a larger position. The interaction between stop width and position size is the single most under-appreciated mechanic in systematic trading.
Quantity steps and lot sizes
| Instrument | Granularity |
|---|---|
| Equity cash | Whole shares |
| Crypto spot | 0.00001 |
| Derivatives | Whole lots |
Cash instruments round down to the step, which is a small compromise. Derivatives cannot.
If one lot's risk exceeds your per-trade budget, the smallest possible position is already too large. There is no fractional lot.
Increase the allocation, choose a cheaper instrument, or do not take the trade. Revising the risk budget upward to fit the lot is how a sizing discipline quietly disappears. See Margin, leverage & lot size.
Sizing without a stop
Per-trade risk sizing needs a stop price. With no stop there is no risk distance and no quantity to compute from it.
Two consequences:
- The builder requires a stop-loss, so this is rare in practice.
- The
per_trade_riskexecution gate skips an entry with no usable stop price. It does not guess, which is correct, and means the protection is absent for that order. See The nine order gates.
The allocation is the real control
Everything above is arithmetic inside a boundary you set: the capital allocation.
If a backtest shows a 22% max drawdown, allocate an amount where a 22% loss is one you will actually sit through.
Not "an amount where the return looks worthwhile", an amount where the loss is tolerable. Those two calculations give different answers, and only one of them survives contact with a bad month.
Two of the nine execution gates enforce the allocation and cannot be disabled: total deployed capital cannot exceed the allocation, and an order that cannot be funded from available capital is rejected. That is why a strategy can never exceed the capital you gave it.
Sizing across several positions
A strategy holding several positions concurrently has more exposure than the per-trade risk suggests, and probably more correlated exposure than the count suggests.
Three positions at 1% risk each is 3% at risk if they are independent, and closer to 3% moving together if they are not, which, for three equities in the same sector on the same signal, they will be.
Bound it with max_open_positions. See Which limits are on by default
Sizing across several strategies
Each strategy has its own allocation and cannot borrow from another. That is enforced.
What is not enforced is whether your total across strategies is sensible. Five strategies each allocated 20% of your capital is 100% deployed, and if they trade correlated instruments on correlated signals, that is one bet with five names.
Invalidation is not a stop-loss
Worth repeating here because it is a sizing error:
A discovery screen's invalidation level says where a technical pattern voids. Your stop says how much of your capital you will risk.
Using the invalidation level as a stop means your position size is set by a scanner's geometry rather than your risk budget. Size against the budget, then check whether the resulting stop makes sense relative to the pattern. Not the other way round. See From a setup to a strategy.
Minimum notional
The platform enforces per-market minimum notional and position limits from reference data. On derivatives the effective minimum is whichever is larger, the market's minimum notional, or one lot.
A checklist
- I stated per-trade risk explicitly rather than accepting a default
- I know the notional the sizing produces, not just the risk percentage
- I understand a tighter stop buys a larger position
- The allocation is sized to a drawdown I will hold through, in money
- For a derivative, one lot's risk fits inside my budget
-
max_open_positionsreflects how much correlated exposure I want - My total across strategies is a number I have actually looked at