The lowest timeframe is M1. For each M1 Candle you have 4 price levels - Open, High, Low and Close. There is no data for the ticks inside those candles, nothing more that those 4 prices exists.
The first thing that the Tester does is to generate ticks. It reads the information from M1 (or other timeframes) and based on that information it uses some algorithm to create ticks. By the look of each candle it decides how ticks would travel within that candle. Candle's Volume is probably used to decide how many fake ticks to put in that candle. It's the same as if I give you one candle and ask you what was the path of the ticks inside.
If you have candle with height of 10 pips, then fake ticks will be generated for the path of those 10 pips within that candle. But what if you create a trade with stops of 5 pips? If that trade is created and closed within that candle, how accurate will the result be?
It's another story if you for example create a trade in the first tick of the candle and then close it at the first tick of another candle. Those are the Open prices and they should be accurate. Or if you have stops much bigger than the biggest M1 candle.
The problem with Trailing Stop and similar functions is that in most cases they react on small movements. The price moves with 1 pip and Stop-Loss is set somewhere, which means that Stop-Loss is also fake, because it is based on fake ticks.
Here is more to read:
https://www.mql5.com/en/articles/1511
https://www.mql5.com/en/articles/75 (this is for MT5)