One boundary I'd make explicit is when a closing signal can actually fill. If that closing value arrives only after the close, shifting the signal one row still assumes a fill at a price already gone. I'd compare that result with the next available tradable quote, with matching timestamps for both legs.
Arnold Holm
I turn your trading setup into an MT5 bot with your prop firm's daily and max loss rules built in. Try it free on demo first.
One boundary I'd make explicit is when a closing signal can actually fill. If that closing value arrives only after the close, shifting the signal one row still assumes a fill at a price already gone. I'd compare that result with the next available tradable quote, with matching timestamps for both legs.