· four exchange APIs · rebuilt daily

Sizing perpetual positions by leverage defaults risk to venue limits, while fixed dollar sizing anchors position notional directly to stop loss distance.
Sizing a perpetual futures position by maximum exchange leverage creates arbitrary stop loss distances, whereas sizing by fixed dollar loss limits account drawdown to a chosen percentage. Setting leverage first leaves dollar loss as a variable dictated by initial margin and price volatility. Setting risk first determines the exact position size in quote currency before leverage is selected.
A trader with an account balance of 10,000 USDT opens a position using 10x leverage on BTC. The allocated margin is 10,000 USDT, creating a total position size of 100,000 USDT. At an entry price of 60,000 USDT, the position controls 1.6666 BTC.
If technical analysis dictates a stop loss at 57,000 USDT, the distance to stop loss is 3,000 USDT, or 5.00%. Calculating the realized loss at the stop loss level produces:
1.6666 BTC multiplied by 3,000 USDT equals 4,999.80 USDT.
The trade risks 49.998% of the total 10,000 USDT account balance on a single position because position size was determined by available leverage rather than risk acceptance.
A risk-first approach caps the maximum loss at 2.00% of a 10,000 USDT account balance, which equals 200 USDT. The entry price is set at 60,000 USDT with the same stop loss at 57,000 USDT, representing a 5.00% price drop.
To determine the maximum allowed position size, divide the total dollar risk by the percentage distance to the stop loss:
200 USDT divided by 0.05 equals 4,000 USDT.
At an entry price of 60,000 USDT, a 4,000 USDT position size equals 0.0666 BTC. Calculating the realized loss if price hits the 57,000 USDT stop loss produces:
0.0666 BTC multiplied by 3,000 USDT equals 199.80 USDT.
The required margin depends on chosen leverage but does not alter the maximum dollar loss:
In all three cases, the trade loses 199.80 USDT if stopped out at 57,000 USDT, provided the liquidation price is lower than the stop loss price.
Higher leverage narrows the distance between the entry price and the venue liquidation price. If liquidation occurs before the stop loss level, the loss exceeds the planned 200 USDT risk cap.
At 20x leverage on a 4,000 USDT position, initial margin is 200 USDT. Assuming a 0.50% maintenance margin requirement, the position liquidates when losses reach 180 USDT, which represents a 4.50% price decline from entry.
A 4.50% drop from 60,000 USDT places the liquidation price at 57,300 USDT. Because 57,300 USDT is higher than the planned 57,000 USDT stop loss (5.00% drop), the position liquidates automatically before reaching the stop loss, causing a loss of collateral and liquidation penalty fees. To avoid premature liquidation, effective leverage must be capped at a level where liquidation sits beyond the stop loss price.
Execution fees and funding drag widen the net realized loss. Taker fees reduce available collateral upon entry and exit.
The published default taker fees across major futures venues vary from 0.02% to 0.055%. The table below illustrates round-trip taker execution costs on a 100,000 USDT position size.
| Venue | Futures Maker Fee | Futures Taker Fee | Round-Trip Taker Fee ($100,000 Position) |
|---|---|---|---|
| MEXC | 0.0000% | 0.0002% | $40.00 |
| Bitget | 0.0002% | 0.0003% | $60.00 |
| OKX | 0.0002% | 0.0005% | $100.00 |
| Bybit | 0.0002% | 0.00055% | $110.00 |
Opening a 100,000 USDT taker position on Bybit incurs 55 USDT on entry and 52.25 USDT on exit at a 5.00% stop loss, adding 107.25 USDT in total trading fees to the position loss.
Funding payments accrue every 8 hours and directly alter holding costs. Normalised 8-hour funding rates across venues show wide spreads across assets.
| Asset | OKX 8h Rate | Bybit 8h Rate | MEXC 8h Rate | Bitget 8h Rate | Spread (8h) |
|---|---|---|---|---|---|
| ETH | +0.0028% | +0.0093% | +0.0050% | +0.0100% | 0.0072% |
| BTC | +0.0077% | +0.0100% | +0.0100% | +0.0100% | 0.0023% |
| SOL | -0.0087% | -0.0056% | -0.0028% | +0.0058% | 0.0145% |
| ZEC | +0.0075% | +0.0100% | +0.0012% | +0.0100% | 0.0088% |
| XRP | +0.0002% | -0.0044% | +0.0034% | +0.0044% | 0.0088% |
| XAU | +0.0213% | +0.0190% | +0.0072% | +0.0112% | 0.0141% |
On a 10,000 USDT long position in SOL, holding the position for 24 hours (3 funding intervals) on OKX pays the trader 2.61 USDT (-0.0087% per 8h), while holding the same long position on Bitget costs the trader 1.74 USDT (+0.0058% per 8h). Holding a long XAU position on MEXC costs 0.72 USDT per 8h per 10,000 USDT, compared to 2.13 USDT per 8h on OKX.
To calculate position sizing correctly: