Forex Scenario Calculator
FOREX · SCENARIO · PNL TABLE ACROSS PRICE MOVES
PnL across a range of hypothetical price moves (in pips), long or short, for a single forex position size.
Position Side
Positive means price went up, regardless of your side
What if price moves this many pips?
Instead of computing P&L for one exit price, this runs the same formula across a whole list of hypothetical price moves at once, so you can see the shape of your outcome before you place the trade.
The formula
- Exit price = entry + delta (pips) × pip size
- Long P&L = (exit − entry) × units
- Short P&L = (entry − exit) × units
Each delta is a raw price move (positive means price went up), not pre-adjusted for your side: a short position shows a loss for a positive delta and a profit for a negative one.
Worked example
Long EUR/USD, entry 1.1000, 1 standard lot, deltas −50/0/+50 pips:
- −50 pips: exit = 1.0950, P&L = −$500
- 0 pips: exit = 1.1000, P&L = $0
- +50 pips: exit = 1.1050, P&L = +$500
Where to go next
Want a single exit's P&L instead of a table? Use the PnL Calculator. Setting a stop and target instead? Check the Risk/Reward Calculator.
Use via API or MCP
This calculation is available as a deterministic API call for bots and AI agents.
Why is a positive delta not always a profit?
Deltas represent the actual direction price moved (positive = up, negative = down), not whether that move favored your position. A short position loses on a positive delta and profits on a negative one, the mirror of a long.
Can I enter negative and positive deltas together?
Yes: enter a comma-separated list like "-100,-50,0,50,100" to see both downside and upside scenarios in one table.
Does this account for spread or commission?
No. This is raw price-move P&L at each scenario. Use the Breakeven Calculator alongside this to see where your effective breakeven sits after those costs.
What happens if I enter an invalid number in the delta list?
Any entry that doesn't parse as a number is silently dropped from the list; the rest are still computed. If nothing parses, the calculator shows its empty state instead of a table.