The formula behind every page
Lot size = risk ÷ (stop distance × value of one pip or point per lot). The value per lot is the price step times the contract size, converted from the quote currency into your account currency. In MetaTrader terms it reads risk ÷ (stop distance ÷ SYMBOL_TRADE_TICK_SIZE × SYMBOL_TRADE_TICK_VALUE), rounded down to SYMBOL_VOLUME_STEP so the loss at the stop never exceeds the risk.
With $100.00 at risk, a 20-pip stop on EUR/USD ($10 per pip per lot) gives 0.50 lots, a $3.00 stop on gold (100 oz per lot) 0.33 lots, and an 80-point stop on NAS100 at $1 per point 1.25 lots. Same risk, very different lot counts: the lot is a different amount of money on every symbol, which is why a size that is right on one chart is wrong on the next.
Pip and point values per lot at a glance
For a USD account, at the calculator's example rates (USD/JPY 150, GBP/USD 1.33, EUR/USD 1.16, AUD/USD 0.66, NZD/USD 0.59, USD/CHF 0.80, USD/CAD 1.38) and the contract sizes the symbol pages cite. Values in other currencies move with the exchange rate.
| Symbol | 1 pip / point | Contract size | Value per 1.00 lot |
|---|---|---|---|
| EURUSD | 0.0001 (pip) | 100,000 EUR | $10.00 |
| GBPUSD | 0.0001 (pip) | 100,000 GBP | $10.00 |
| USDJPY | 0.01 (pip) | 100,000 USD | $6.67 |
| USDCHF | 0.0001 (pip) | 100,000 USD | $12.50 |
| AUDUSD | 0.0001 (pip) | 100,000 AUD | $10.00 |
| USDCAD | 0.0001 (pip) | 100,000 USD | $7.25 |
| NZDUSD | 0.0001 (pip) | 100,000 NZD | $10.00 |
| EURJPY | 0.01 (pip) | 100,000 EUR | $6.67 |
| GBPJPY | 0.01 (pip) | 100,000 GBP | $6.67 |
| EURGBP | 0.0001 (pip) | 100,000 EUR | $13.30 |
| AUDJPY | 0.01 (pip) | 100,000 AUD | $6.67 |
| EURAUD | 0.0001 (pip) | 100,000 EUR | $6.60 |
| GBPAUD | 0.0001 (pip) | 100,000 GBP | $6.60 |
| CADJPY | 0.01 (pip) | 100,000 CAD | $6.67 |
| CHFJPY | 0.01 (pip) | 100,000 CHF | $6.67 |
| NZDJPY | 0.01 (pip) | 100,000 NZD | $6.67 |
| EURCHF | 0.0001 (pip) | 100,000 EUR | $12.50 |
| GBPCHF | 0.0001 (pip) | 100,000 GBP | $12.50 |
| EURCAD | 0.0001 (pip) | 100,000 EUR | $7.25 |
| GBPCAD | 0.0001 (pip) | 100,000 GBP | $7.25 |
| AUDNZD | 0.0001 (pip) | 100,000 AUD | $5.90 |
| XAUUSD | 0.10 (pip) | 100 oz | $10.00 |
| XAGUSD | 0.01 (pip) | 5,000 oz | $50.00 |
| NAS100 | 1.00 (point) | $1 per point | $1.00 |
| US30 | 1.00 (point) | $1 per point | $1.00 |
| US500 | 1.00 (point) | $1 per point | $1.00 |
| GER40 | 1.00 (point) | €1 per point | $1.16 |
| UK100 | 1.00 (point) | £1 per point | $1.33 |
| JPN225 | 1.00 (point) | ¥1 per point | $0.0067 |
| USOIL | 0.01 (cent) | 1,000 bbl | $10.00 |
| UKOIL | 0.01 (cent) | 1,000 bbl | $10.00 |
| NATGAS | 0.001 (tick) | 10,000 MMBtu | $10.00 |
| BTCUSD | 1.00 (point) | 1 BTC | $1.00 |
| ETHUSD | 1.00 (point) | 1 ETH | $1.00 |
Contract sizes that differ between brokers
Forex lots are 100,000 units of the base currency everywhere. Metals, indices, energy and crypto CFDs are set by each broker, and the public specifications we read on 2026-11-12 don't always agree:
- WTI and Brent: 1,000 barrels per lot at Capital.com and Purple Trading, 100 at BlackBull Markets.
- Japan 225: a contract size of 1 at Capital.com and Purple Trading, 100 at BlackBull Markets.
- DAX and FTSE: Purple Trading lists GER40 and UK100 with a contract size of 1 and separate “DAX” and “FTSE” products with 10.
- Gold (100 oz), silver (5,000 oz), natural gas (10,000 MMBtu) and the US indices (1) matched across the brokers we read, but the price step did not: the same index is quoted with a 0.1 step at one broker and 0.01 at another, so “points” in MT5 mean different distances.
Before trusting any lot size, open Specification for the symbol in MetaTrader 5 and check Contract size and Digits. Every symbol page has a script that prints them, with the lot size for your risk.