BACKTEST COST WORKSHEET
How trading costs change a backtest result: a worked EUR/USD example
A positive replay balance is not automatically a positive live-trading result. ReplayPip currently calculates simulated price profit without spread, commission, slippage or financing. This worksheet starts with a recorded gross result, adds explicitly invented cost assumptions and shows the arithmetic separately. It does not quote a broker or estimate the actual costs of trading a particular historical minute.
Start with the simulator’s gross number
Our recorded 17 September 2025 EUR/USD example bought 0.10 lots at 1.18412 and closed manually at 1.18472. Price movement was 0.00060, or six pips. With 10,000 base units, the simulator recorded +6.00 USD. That is the starting observation, not a net performance claim.
Keep four worksheet fields separate: gross price result, cost assumptions, adjusted arithmetic result and execution limitations. Preserve the simulator’s original ledger rather than editing its prices to make a broker statement appear to match. This article applies to EUR/USD with USD as quote currency; pip-value conversion differs for other pairs.
EUR/USD replay case study: a recorded trade from plan to exit
Use units consistently
For this example, one EUR/USD pip is 0.0001. At 0.10 standard lots, pip value is 100,000 × 0.10 × 0.0001 = 1 USD per pip. A distance in pips is not itself a dollar charge. Multiply it by the pip value before combining it with commissions quoted in money.
The bid/ask spread is a trading cost. A bid-only long replay does not model buying at the ask. If you represent the round-trip spread with one aggregate allowance, do not charge that same allowance again at both entry and exit. Broker commission terminology also matters: per side and round turn are different quantities.
An invented cost scenario, line by line
Assume an aggregate spread allowance of 1.5 pips, commission of 7 USD per full standard lot round trip, and adverse slippage of 1.5 pips on each side. These figures are invented teaching inputs, not current or historical broker rates. At 0.10 lots the allowances are 1.50 USD, 0.70 USD and 3.00 USD respectively: 5.20 USD total.
Slippage here means a worse fill than the intended price and can occur on entry or exit. Actual fills can also improve, spreads vary and some orders may not fill. We deliberately keep the example arithmetic simple instead of claiming these assumptions reproduce all of those possibilities.
| Item | Assumption | USD |
|---|---|---|
| Spread | 1.5 pips × 1 USD/pip | 1.50 |
| Commission | 7 USD/lot round trip × 0.10 | 0.70 |
| Slippage | 1.5 pips × 2 sides × 1 USD/pip | 3.00 |
| Total assumed cost | Not a broker quote | 5.20 |
A gain shrinks; a small loss grows
Subtracting 5.20 USD from the documented +6.00 USD gives +0.80 USD. Against that trade’s original 10 USD price risk, this is +0.08R, compared with +0.60R before costs. The denominator stays the stated initial price risk; it is not a newly calculated all-in risk budget.
For the separately recorded 24 September loss, −3.40 − 5.20 = −8.60 USD. Costs do not only matter when a trade was profitable. A worksheet that applies expenses only to winning trades overstates results. These examples assume one entry and one exit; partial exits, financing or additional fills require additional modelling.
Look at a batch instead of one attractive example
The five fixed sessions from 15–19 September produced +26.30 USD gross. Applying the same illustrative 5.20 USD to each of the five completed trades leaves +0.30 USD. Two individual gross gains become arithmetic losses. This is a sensitivity exercise on a disclosed historical batch, not a broker-verified net backtest.
Download the CSV, replace each assumed input with evidence from the account type you are investigating, and record where that evidence came from. Repeat with several cost scenarios rather than choosing only the cheapest one. Do not infer an achievable live result from a tiny batch, even if the adjusted total remains positive.
Testing one setup across ten replay sessions: keep the whole journal
When subtraction is not enough
A flat cost deduction cannot reconstruct bid/ask stop triggers, partial fills, liquidity, rejected orders, gaps, funding or margin liquidation. Changing execution prices can change whether a stop or target fires, not just the final profit. Price data and an execution model appropriate to that question are needed for a stronger test.
Keep a row marked unknown when the needed cost evidence is unavailable. ReplayPip’s risk calculator also omits these costs, so its suggested size is not an all-in maximum-loss guarantee. The useful outcome of this worksheet is a clearer statement of assumptions, not a claim that the strategy is now validated.