Execution on Hyperprop is simulated against live exchange data. How that simulation is built is a deliberate choice, and it is worth understanding, because it explains why your fills agree with your chart.
Fills happen at the last traded price
When an order fills, it fills at the last traded price, immediately and in full.
The obvious alternative would be to fill against the best bid or offer, which sounds more realistic. In practice it produced fills that visibly disagreed with the chart by ten to forty dollars, because the chart is drawn from trades while the book sits either side of them. You would see a candle at one price and a fill at another, with no way to reconcile them.
Filling at the traded price keeps the two consistent: the price you got is a price you can point at on the chart.
When each order type triggers
Buy limit fills when the last price reaches or crosses below your limit.
Sell limit fills when the last price reaches or crosses above your limit.
Buy stop triggers when the last price reaches or crosses above your stop.
Sell stop triggers when the last price reaches or crosses below your stop.
Stops trigger on trades only, never on the midpoint of the book. Trades only means every stop fill sits inside a bar you can see.
What the platform does not simulate
Being straight about this matters more than sounding sophisticated:
No slippage model. You get the traded price, not a worsened version of it.
No latency simulation. There is no artificial delay inserted between your click and the fill.
No walking the order book. Size does not push your fill through deeper levels.
Every one of those would make fills less predictable and harder to check against the chart. The trade-off is real and worth stating plainly: a large order fills at one clean price here in a way it might not on a live retail account.
Fill prices are rounded to the tick
Every fill is rounded to the contract's own tick size, so you will never see a price that could not exist in that instrument.
Which exit fills first
When a take profit and a stop could both be triggered by the same tick, bracket exits are settled before standalone orders crossed on that tick. That ordering is fixed rather than incidental, so the same sequence of prices always produces the same outcome.