Why your stop loss costs more than you planned: the spread, sell orders and lot size
Many manual traders set a stop loss of, say, 30 points, calculate the lot for a fixed risk, and then see a slightly bigger loss than planned. On gold, crypto or during wide-spread hours the difference can be large. The reason is simple: the chart and your orders do not use the same price.
1. The chart shows the Bid price
MetaTrader draws candles and the price line at the Bid. Buy orders open at the Ask, which is the Bid plus the spread. Sell orders open at the Bid.
2. What really happens on a buy
Example on XAUUSD, where 1.00 lot moves 100 USD per 1.00 of price. The chart shows 4000.00 and the spread is 0.20. You buy, so you get 4000.20. Your stop loss line is drawn on the chart at 3997.00. A buy stop loss is checked against the Bid, so it closes at 3997.00.
Planned distance: 3.00. Real distance: 4000.20 - 3997.00 = 3.20. At 1.00 lot the loss is 320 USD, not 300 USD. That is almost 7% more than you planned.
The same works against your take profit: a take profit 6.00 above the chart price gives only 5.80 of real profit.
3. What really happens on a sell
You sell at the Bid, 4000.00, and draw the stop loss line on the chart at 4003.00. A sell stop loss is checked against the Ask. The Ask reaches 4003.00 when the chart (Bid) is still at 4002.80, so you are stopped out before the chart touches your line. If you want the stop to trigger exactly when the chart touches the line, the order's stop loss must be placed at 4003.00 + spread = 4003.20. Either way, you lose the spread on top of what the chart actually moved.
The take profit of a sell is also checked against the Ask, so it is filled later than the chart suggests unless you add the spread.
4. Lot size from risk, with the spread included
The usual formula is:
lot = risk money / (stop distance x money per 1.0 of price per lot)
Use the real distance instead:
lot = risk money / ((stop distance + spread) x money per 1.0 of price per lot)
With a risk of 200 USD and a 3.00 stop on gold: without the spread you get 200 / (3.00 x 100) = 0.66 lot and lose 211 USD at the stop. With the spread: 200 / (3.20 x 100) = 0.62 lot, and the loss at the stop is 198 USD, as planned.
Use the tick value and tick size from the symbol specification to get the money per 1.0 of price, because they differ between brokers and account currencies.
5. Summary
- The real loss at the stop is the distance plus the spread.
- The real gain at the target is the distance minus the spread.
- Sell stop loss and take profit are checked against the Ask; add the spread if you want them to follow the chart line.
- Include the spread when you calculate the lot from risk, especially on gold, crypto and at session opens.
I built these rules into my own trade panel, ZEN COMMAND, so that every value next to the lines, the risk-based lot and the ruler include the spread automatically. You can find it in the Market (Zen Command MT5 and Zen Command MT4). It can also be rented for one month.


