Enter an entry price, an exit price and a trade size, and the net result in your account currency appears straight away, with the gross figure, the pip count and total costs beside it. Costs are two optional fields: commission per lot and total swap.
How a price move becomes money
Any trade result is built from three elements and no more: the size of the price move, the contract size in units, and the number of lots. Multiply them together and you have the result in the instrument quote currency. Everything after that is detail rather than substance: a conversion step into your account currency if the two differ, and a subtraction of costs if there are any. Once you grasp those three, memorising a pip value for every pair stops being necessary.
Why the arithmetic flips on a sell
On a buy you subtract the entry from the exit; on a sell you reverse the order and subtract the exit from the entry. That is the whole difference. It is not another formula or another logic, just the same number with the opposite sign. The practical consequence is that a sell closed above its entry returns a negative figure, which is a correct result rather than an input error, and that is why the calculator raises an educational note here instead of blocking the calculation.
Worked example: buying EUR/USD
Take a buy of one standard lot of EUR/USD from 1.08500 to 1.09200. The price move is 0.00700, and dividing by a pip size of 0.0001 gives seventy pips. Gross profit is 0.00700 times 100,000 units times one lot, which is 700.00 dollars. The quote currency here is the dollar and so is the account currency, so the conversion rate is 1 and the conversion step changes nothing; net equals gross as long as costs are zero.
Worked example: a pair not quoted in dollars
Now a buy of one standard lot of USD/JPY from 157.200 to 157.900. The move is 0.700, which is seventy pips because a yen pip sits at the second decimal. Gross profit is 0.700 times 100,000, that is seventy thousand yen. That figure is in yen, not dollars, and skipping past that fact is the most common error on this calculator. At 0.00633 dollars per yen the result becomes 443.10 dollars. The conversion step cannot be skipped because the number before it is in an entirely different currency.
Worked example: when costs eat the profit
This is the case the calculator exists for. Buying 0.01 lots of EUR/USD from 1.08500 to 1.08520 gives a two-pip move and a gross profit of 0.20 dollars. But a commission of 7 dollars per lot means 0.07 dollars at this size, and a swap debit of 0.50 dollars brings total costs to 0.57 dollars, leaving a net result of minus 0.37 dollars. The trade wins on the screen and loses in the account, and the entire difference is costs.
The three costs and where each comes from
Costs are three separate items with three different origins. The spread is not a separate line in this formula because it already sits inside the gap between your entry and exit prices, provided you enter real execution prices rather than the prices you saw on the chart. Commission is charged per lot round turn, so it is multiplied by the lot count. Swap is charged per night held and can be a debit or a credit, which is why it is entered with its sign rather than as an absolute value.
Expected result versus actual result
The number you compute here is the theoretical result, and the actual figure can differ for three reasons. The first is slippage: a market order fills at the nearest available price rather than the one you asked for, and the gap shows up in fast markets. The second is execution timing itself, since a fraction of a second can pass between the click and the fill, and price moves inside it. The third is a change in the conversion rate between the moment you open and the moment you close, whenever your account currency differs from the quote currency. You can also see what repeating the same result does to capital.
Common mistakes
Four mistakes recur. The first is using chart prices instead of execution prices, which removes the spread from the calculation and makes the profit look larger than it was. The second is forgetting commission on raw-spread accounts, the accounts that look cheaper precisely because their cost moved out of the spread and into a separate line. The third is entering a swap as a positive number when it was a debit, so it is added instead of subtracted. The fourth is assuming a forex contract size on metals, an error that inflates the result a thousandfold.
Frequently asked questions
What is the difference between gross and net in this calculator?
Gross comes from the price difference alone: the move multiplied by contract size and lots. Net subtracts commission and adds swap with its own sign. The gap is small on large trades and decisive on small ones, where a trade that is profitable before costs can end up negative after them.
Should I subtract the spread myself?
No. If you enter the real execution prices from your statement, the spread is already inside the difference between them, because a buy fills at the ask and a sell fills at the bid. If instead you enter displayed chart prices, the result will be optimistic by roughly the spread.
Why do I enter swap as a negative number?
Because swap can be a debit or a credit depending on your direction and the interest differential between the two currencies. Enter it with the same sign your statement shows: negative if you were charged, positive if you were credited. The calculator adds it rather than subtracting it, so the sign alone determines the direction.
Why does the calculator not fetch the conversion rate automatically?
Because it is built to run without live prices, and because the reference sources themselves disagree on which rate applies. OANDA’s documentation uses the closing rate in one place and a mid rate in another, and MetaQuotes uses bid or ask depending on the direction of the conversion. Rather than impose one convention we made the rate a field that mirrors your platform.
Why does my cash result differ from my statement even though the pip count matches?
Three causes are most common: a contract size that differs from your broker’s published spec, commission and swap you have not entered, or a conversion rate different from the one that applied at the moment the trade actually closed. Check those three in order and the gap usually appears in one of them.
Does this calculator tell me whether the trade was a good decision?
No. It returns an arithmetic result for numbers you supplied; it does not judge the decision and issues no entry or exit recommendation. One winning figure does not make a strategy sound, and one losing figure does not make it unsound. Judging performance takes a large sample of trades, not a single one.
