My guess is that you are using daily timeframe data, and the stops are being executed intra-day.
If so, the processing order of the stops is probably triggering the Profit stop, saying it has been met, and leaves you with Wonderful Winners. The Trailing stop never (or rarely) gets a chance to be executed.
Obviously your code has a future leak. You are using ATR() as a volatile amount of trailing stop. ATR without delay, which means you are using current bar Low-High range, to perform stops for the very same bar. Also tight stop without delay would act like high happened before low so you would be using those highs to exit.
When designing the system you MUST NEVER use current bar High-Low to perform ANY trade before session close. This includes ATR that implicitly uses High-Low range
Be very careful when using "Volatile" stops. The amounts you pass must NOT leak High-Low or any current bar information other than Open.
Trade delays DO NOT affect stops. Stops use whatever you call via ApplyStop. You have "ExitAtStop" = 1 which means IMMEDIATE execution (no delay).
Your system generates absurdly high returns because you have set ZERO commission and very tight trailing stop (0.1) which essentially causes stops to be executed at daily high minus 0.1. This is looking into the future plus unrealistic zero transaction costs.
Essentially you are doing this: