Position Sizing From a Risk Budget, Not a Feeling

Most position-sizing advice stops at the formula, which is the easy part. The part that changes outcomes is what the formula implies: a tighter stop does not reduce risk, it increases size, and the cost of executing that larger position is paid out of the same budget. This guide works the arithmetic, then checks it against the exchange's own order filters.

CoinSoso EditorialPublished Article #00032Updated

Cover artwork: CoinSoso · AI-generated, not a photograph of a real venue, product or market capture.

Key takeaways

  • Position size is risk budget divided by stop distance; notional is equity times risk percentage divided by stop percentage, which is the same equation rearranged.
  • A 1% risk budget with a 2% stop sizes a position at 50% of equity. Halving the stop to 1% doubles the notional to 100% of equity without changing the amount at risk.
  • Round-trip fees as a share of the risk budget equal fee percentage divided by stop percentage — so a tighter stop makes fees a larger fraction of the thing you were trying to control.
  • On a 0.2% round trip, a 0.5% stop spends 40% of the risk budget on commission and a 2% stop spends 10%.
  • Binance's BTCUSDT symbol has a 5 USDT minimum notional and a 0.00001 BTC lot step, which put a floor under how small an account can run a percentage-based rule.

The equation that does all the work

Position sizing has one equation, and once it is written in percentages it stops being a formula to look up.

Size = risk budget ÷ stop distance per unit.

Numerically, on BTCUSDT at 81,791.83 with a stop 2% lower at 80,155.99, the distance is 1,635.84 per coin. A 250 USDT risk budget — 1% of 25,000 USDT of equity — gives 250 ÷ 1,635.84 = 0.15283 BTC.

Split the same arithmetic into percentages and something tidier appears:

Input Value
Equity 25,000.00 USDT
Risk budget (1%) 250.00 USDT
Entry 81,791.83
Stop (2% below) 80,155.99
Distance per unit 1,635.84 USDT
Size 0.15283 BTC
Notional 12,500.28 USDT
Notional as share of equity 50%

Twelve and a half thousand on twenty-five thousand of equity is not a coincidence. Notional equals equity × (risk % ÷ stop %). One percent divided by two percent is one half. The stop distance and the risk budget both scale the same notional, and the equity cancels out of the ratio:

notional ÷ equity = risk % ÷ stop %

That single line makes the rest of this subject visible, because every interesting question is a question about that ratio.

Notional as a multiple of equity for a fixed one percent risk budget bar length = notional as a multiple of equity
  <text x="172" y="52" text-anchor="end" fill="var(--fg-muted)">stop 0.5%</text>
  <rect x="180" y="40" width="400" height="18" fill="var(--bronze)" opacity="0.85" />
  <text x="590" y="53" text-anchor="end" fill="var(--accent-fg)">2.0×</text>

  <text x="172" y="92" text-anchor="end" fill="var(--fg-muted)">stop 1%</text>
  <rect x="180" y="80" width="200" height="18" fill="var(--bronze)" opacity="0.75" />
  <text x="390" y="93" fill="var(--fg-muted)">1.0×</text>

  <text x="172" y="132" text-anchor="end" fill="var(--fg-muted)">stop 2%</text>
  <rect x="180" y="120" width="100" height="18" fill="var(--accent)" opacity="0.8" />
  <text x="290" y="133" fill="var(--fg-muted)">0.5×</text>

  <text x="172" y="172" text-anchor="end" fill="var(--fg-muted)">stop 4%</text>
  <rect x="180" y="160" width="50" height="18" fill="var(--accent)" opacity="0.6" />
  <text x="240" y="173" fill="var(--fg-muted)">0.25×</text>

  <text x="172" y="212" text-anchor="end" fill="var(--fg-muted)">stop 8%</text>
  <rect x="180" y="200" width="25" height="18" fill="var(--accent)" opacity="0.4" />
  <text x="215" y="213" fill="var(--fg-muted)">0.125×</text>

  <text x="180" y="292" fill="var(--fg-muted)">risk budget held at 1% of equity in every row; only the stop changes</text>
  <text x="180" y="310" fill="var(--bronze)">anything above 1.0× needs borrow, collateral or leverage to hold</text>
</g>
Figure 1The same 1% risk budget under five different stops. Halving the stop doubles the notional, which is the mechanism by which a "more careful" stop can quietly require more leverage. The first two rows cannot be held on spot equity alone.

Why a tighter stop is not a smaller risk

The chart above is the most useful thing to internalise about stops. Each row risks exactly the same 250 USDT. The rows differ only in how much capital is committed to risk it.

Move the stop from 2% to 1% and the notional doubles from 50% of equity to 100%. Move it to 0.5% and the notional is twice the equity — which on spot is impossible without borrowing, and on a derivative means opening a position several times the account value.

Nothing about that is an argument against tight stops. A tight stop is how a trader with a view and a wrong view loses a little. But the trade-off is real and it is usually left out of the explanation:

  • Wider stop: smaller position, more room for normal volatility, more capital still free.
  • Tighter stop: larger position, less room for normal volatility, more sensitivity to being stopped out by noise, more capital committed.

The 250 USDT is unchanged in both cases. What changed is the probability of hitting the stop and the cost of being in the position at all.

Where the budget actually goes

That last phrase is the part that compounds, and it can be quantified exactly.

Fees are charged on notional. Risk is charged by the stop, also on notional. Divide one by the other and the notional cancels:

fee share of the risk budget = round-trip fee % ÷ stop %

Take a 0.2% round trip, which is what a 0.1% maker and 0.1% taker rate produces on a pair where both legs are taken — Bybit’s published base-tier spot row, read on 2026-10-18, is exactly that. Then:

Stop distance Notional at 1% risk Round-trip fee Fee as share of the 250 USDT budget
0.5% 50,000 USDT 100 USDT 40%
1% 25,000 USDT 50 USDT 20%
2% 12,500 USDT 25 USDT 10%
4% 6,250 USDT 12.50 USDT 5%
8% 3,125 USDT 6.25 USDT 2.5%

Read the right-hand column. On a 0.5% stop, a full 40% of the amount you were prepared to lose is spent on commission the moment the trade is opened and closed — before spread, before any adverse move, and before the loss the stop was designed to cap. The risk budget is being consumed by the act of taking the position.

That is not an argument for wide stops. It is an argument for knowing that the effective risk of a tight-stop strategy is larger than the number in the rule, and for not stacking a tight stop on top of a wide spread. The spread, depth and slippage guide shows how much the second cost adds; the maker and taker guide explains why one leg of a round trip can be cheaper if it rests.

Commission as a share of the risk budget at five stop distances
  <text x="142" y="50" text-anchor="end" fill="var(--fg-muted)">0.5%</text>
  <rect x="150" y="38" width="400" height="18" fill="var(--bronze)" opacity="0.85" />
  <text x="560" y="51" fill="var(--bronze)">40%</text>

  <text x="142" y="90" text-anchor="end" fill="var(--fg-muted)">1.0%</text>
  <rect x="150" y="78" width="200" height="18" fill="var(--bronze)" opacity="0.7" />
  <text x="360" y="91" fill="var(--fg-muted)">20%</text>

  <text x="142" y="130" text-anchor="end" fill="var(--fg-muted)">2.0%</text>
  <rect x="150" y="118" width="100" height="18" fill="var(--accent)" opacity="0.8" />
  <text x="260" y="131" fill="var(--fg-muted)">10%</text>

  <text x="142" y="170" text-anchor="end" fill="var(--fg-muted)">4.0%</text>
  <rect x="150" y="158" width="50" height="18" fill="var(--accent)" opacity="0.6" />
  <text x="210" y="171" fill="var(--fg-muted)">5%</text>

  <text x="142" y="210" text-anchor="end" fill="var(--fg-muted)">8.0%</text>
  <rect x="150" y="198" width="25" height="18" fill="var(--accent)" opacity="0.4" />
  <text x="185" y="211" fill="var(--fg-muted)">2.5%</text>

  <text x="150" y="252" fill="var(--fg-muted)">a 0.2% round trip, expressed against a fixed 1% risk budget</text>
  <text x="150" y="270" fill="var(--bronze)">the ratio is fee ÷ stop, so it is independent of account size</text>
  <text x="150" y="288" fill="var(--fg-muted)" font-size="9">spread, slippage and funding are additional and are not included in these bars</text>
</g>
Figure 2The same trades as Figure 1, priced. Every bar represents commission only, at a round trip of 0.2%. The left column is unchanged; only the stop moved. Because both the fee and the risk scale with notional, this ratio is identical on a 2,500 USDT account and a 250,000 USDT one.

The exchange sets a floor under the rule

A percentage rule assumes the order can be expressed at the size it computes. On a real venue it cannot always, and the constraints are published.

Binance’s BTCUSDT symbol, read from exchangeInfo on 2026-10-18, lists:

Filter Value What it stops
PRICE_FILTER tickSize 0.01000000 Prices finer than one cent
LOT_SIZE minQty 0.00001000, stepSize 0.00001000, maxQty 9000 Sizes not a multiple of the step
NOTIONAL minNotional 5.00000000, maxNotional 9,000,000, applyMinToMarket true Very small and very large orders
MAX_NUM_ORDERS 200 Open-order count per symbol
MAX_NUM_ALGO_ORDERS 5 Concurrent conditional orders

Two of those interact with position sizing directly.

The minimum notional puts a floor under account size. With 1% risk and a 2% stop, notional is 50% of equity. For that to reach 5 USDT, equity must be at least 10 USDT. Below that, a strictly applied percentage rule cannot be executed on this symbol at all — the position it calls for is smaller than the venue will accept. The general form is:

minimum equity = minNotional × stop % ÷ risk %

The lot step truncates what the equation produces. stepSize of 0.00001 BTC means the computed 0.15283 is representable, but a computed 0.152837 is not. Rounding down is the only safe direction, and at this price one step is worth about 0.82 USDT — small here, larger on a token with a coarser step. The why an exchange rejects your order guide covers the failure modes when these filters disagree with what you sent.

The max notional is a ceiling nobody plans for. Nine million USDT is far above most accounts, but it is a per-order limit, and a sizing rule driven by a very tight stop and a large book can produce an order the venue refuses rather than accepts in pieces.

The price tick matters for a different reason: a stop at 80,155.9934 is not an order. It becomes 80,155.99, and the difference between the intended distance and the executable one is a rounding error in the risk that is worth knowing about rather than ignoring.

Where the liquidation price fits

Leverage changes the arithmetic of collateral without changing the arithmetic of risk.

If the notional is 2× equity to support a 0.5% stop, the position needs borrowing or margin. The exchange computes a liquidation price from the position’s collateral and its maintenance requirements — not from your stop, and not from your risk budget.

That produces the classic mismatch: the risk budget says the loss is capped at 250 USDT when the stop is hit, while the margin says the position is closed when the collateral runs out. If the stop is reached before the liquidation price, the budget holds. If the margin is thin enough that liquidation arrives first, the realised loss is set by the exchange’s rules and can exceed the number the rule promised.

The practical instruction is to check the two numbers against each other before opening the position rather than after: the stop from the budget, and the liquidation price from the venue. Sizing so the stop arrives first is the whole point of sizing from a budget. The mechanics of margin and leverage on OKX are set out in OKX account modes, and Bybit’s approach to perpetuals alongside spot is in Bybit spot versus perpetual.

The procedure

  1. Write the equity and the risk percentage. One percent of 25,000 is 250 USDT. Fix this before looking at a chart.
  2. Choose the stop from the setup, not from the size you want. The stop is where the idea is wrong, and the size is a consequence.
  3. Compute notional as equity × risk % ÷ stop %. This is the number that decides whether leverage is involved at all.
  4. Subtract the cost. Fee share of the budget is round-trip fee ÷ stop; spread is additional. If the sum is a large fraction of the budget, the setup is too tight for the instrument’s costs.
  5. Check the venue’s filters. Minimum notional, lot step, price tick. Round size down.
  6. Compare the stop with the liquidation price, if leverage is in use. The stop should come first.
  7. Write down the loss at the stop, in currency, before entering. If that number is not one you would accept, the percentage was too high, and no adjustment to the stop fixes that.

The position size calculator runs steps 1 to 3, and the trading fee calculator prices step 4 at your own venue’s rates. For the cost of holding rather than entering, the funding rate guide works through the perpetual-specific charge that a spot trade does not carry.

Risk note. The BTCUSDT filter values, the tick size and the price of 81,791.83 in this article were read from Binance on 2026-10-18; the fee assumption is Bybit’s published base-tier spot rate on the same date, chosen because it produces a round 0.2% round trip, and rates differ by venue, pair and tier. Every percentage in the tables is arithmetic on those published inputs and can be re-derived. Filters and fees change, and a sizing rule that ignores venue constraints will produce orders that are rejected rather than executed. Nothing here is investment advice, and no position size can make a losing strategy profitable.

Sources

How this was researched. Written from primary documentation and the exchange or protocol's own published material, with sources listed at the end of the article.

Primary sources for the factual claims on this page. A date appears only where a human has actually read the source; where it is missing, the check is still outstanding.

  1. Binance — Exchange information, BTCUSDT filters (PRICE_FILTER, LOT_SIZE, NOTIONAL), read 2026-10-18(read 2026-10-18)
  2. Binance — BTCUSDT mark and last price, read 2026-10-18(read 2026-10-18)
  3. Bybit — Spot trading fees (base-tier maker and taker rates used for the round-trip assumption)(read 2026-10-18)

Frequently asked questions

What is the position-sizing formula?

Size equals risk budget divided by stop distance per unit. If you are willing to lose 250 USDT and your stop is 1,635.84 USDT below entry on BTCUSDT, the size is 250 divided by 1,635.84, or 0.15283 BTC. The same equation in percentages is simpler: notional equals equity times the risk percentage divided by the stop percentage. On 25,000 USDT of equity, 1% risk and a 2% stop give 12,500 USDT of notional.

Does a tighter stop reduce my risk?

It reduces the loss per unit but not the amount at risk, because the formula scales the position up to compensate. Shrinking a stop from 2% to 1% doubles the notional at the same risk budget. What does fall is the amount of the underlying move you can absorb before being stopped out, and what rises is the share of the budget consumed by fees and spread.

How much of my risk budget do fees take?

Round-trip fees divided by stop distance. With a 0.2% round trip, a 2% stop spends 10% of the risk budget on commission, a 1% stop spends 20%, and a 0.5% stop spends 40% — before spread is counted. The ratio does not depend on account size, because a larger position scales the fee and the risk together.

Why can't I place an order smaller than 5 USDT on BTCUSDT?

Binance's BTCUSDT symbol sets a NOTIONAL filter with minNotional of 5.00000000 and applyMinToMarket true, so both limit and market orders are subject to it. Combined with a percentage-based rule, that puts a floor under account size: with 1% risk and a 2% stop, the minimum notional implies at least 10 USDT of equity before the rule can be executed at all.

Is the liquidation price a substitute for a stop?

No. The liquidation price is computed by the exchange from its own margin rules, maintenance requirements and the position's collateral, and it moves as those change. A stop is set by your risk budget. The two answer different questions, and a position can be liquidated long before the stop you intended is reached if the margin is thin — which is the argument for sizing so that the stop is reached well before the liquidation price.

Where to go next

Independent research. Each card shows the platform’s invite code, and its Create Account button is a referral link that may earn us a commission at no extra cost to you. Whether an account can be opened is decided by the platform at sign-up.

Binance

One of the largest global exchanges by traded volume, with a very broad product range.

20% Trading Fee Rebate

Use invite code con888 when signing up to enjoy trading fee benefits.

Download Android App

Download from the exchange's official download service. Verify the source and follow the on-screen installation instructions.

Do not install an APK from an unknown source, or one that has been modified or cannot be checked.

Read review →

OKX

A large global exchange offering spot, derivatives and a self-custody wallet.

20% Trading Fee Rebate

Enter invite code con888 when signing up to check available trading fee benefits.

Download Android App

Download from the exchange's official download service. Verify the source and follow the on-screen installation instructions.

Do not install an APK from an unknown source, or one that has been modified or cannot be checked.

Read review →