The formula
result = (exit − entry) × units × direction × (quote → account currency)
Direction is +1 for a long and −1 for a short, which is why the calculator asks rather than inferring it from which price is higher. A short that exits above its entry is a loss, and a tool that guesses from price order gets that backwards.
One standard lot of EURUSD bought at 1.0850 and sold at 1.0920 moved 0.0070 across 100,000 units — $700 gross, on a dollar-denominated account.
The number the gross figure hides
Costs matter in proportion to the move, not in absolute terms, and that ratio is what the fourth row on this calculator shows.
A $7 round-trip commission against a $700 move is 1% — invisible. The same $7 against a $70 move is 10%, and a strategy taking many small profits is handing over a tenth of everything it earns before swap is even counted. Both trades felt the same to place.
This is why two traders with identical entries and exits can end a year in different places. It is not execution and it is not luck; it is the average size of their moves relative to a fixed cost.
What direction actually costs you
Three costs attach to a forex position, and they behave differently:
- Spread is paid at entry, once, and is already inside your fill price — it does not appear in the commission field.
- Commission is explicit and fixed per lot.
- Swap accrues nightly and is the only one that grows with time. Held overnight for a week, it can exceed both others combined. The swap calculator works that side out.
For an intraday trade, swap is zero and commission dominates. For a position held three weeks, swap dominates and commission is a rounding error. Optimising the wrong one is common.
Account currency, and why it drifts
If your account is denominated in something other than the quote currency, every result passes through a conversion at the moment of closing. Two identical trades a month apart can therefore return different amounts in your own currency.
Over a year this shows up as a gap between the platform's P&L and your bank statement, and it is not a bug in either. If you want the size of that effect, the currency converter shows the reference rate for any given date.