Why a MetaTrader report and a Forge test differ
The same rules, tested in MetaTrader and in Forge, rarely give the same numbers at first. Each cause below is one the engine names.
Spread
MT5's tester uses the spread set in the tester or recorded in its history; a Forge run uses the spread in its own data or broker facts, so entries and exits land at different prices.
Server time offset
The report's times are the broker's server time and Forge's are UTC, so every time differs by the same offset.
Daylight saving
The broker's offset changes by an hour twice a year, so times differ by one more hour for part of the year only.
Swap
Both testers charge today's swap rate on past nights, and Forge books no credit, so trades held overnight end differently.
Price detail
MT5 may replay real ticks, generated ticks or open prices only, while Forge fills on its data's bars or minutes, so a stop and a target inside one bar can resolve differently.
Fill rules
Which price a pending order or a stop fills at, and which of a stop and a target fills first in one bar, follow each tester's own rule.
Commission
The report uses the account's commission, and a Forge run uses the commission set for it.