If your simulator fills on the same bar that generated the signal, you gave the strategy tomorrow's open. The curve looks great. It's invalid.
Default fill is the next bar, with a real clock: signal → route → exchange ack → broker ack → fill.
Costs matter too. STT, exchange charges, brokerage, stamp duty, GST — all different across cash, futures, and options. A fast intraday idea can be all charges, no edge. Modeling that as one percentage hides the problem.
I wire both as defaults, not optional toggles. Otherwise you're measuring a fantasy.