Strategy Properties tool doesn't recalculate the indicators. It doesn't have to do this because nothing is changed in indicators parameters.
The indicators that need information for open positions (like Trailing Stop, Stop Limit, ATR Stop, Account Percent Stop, Stop Loss, Take Profit, and Trailing Stop Limit) are additionally calculated during the backtest. You can find these calculations in Backtester Calculator.cs file in AnalyseExit(int bar) and s.
What you noticed about Trailing Stop is correct. The Component array is not totally updated when you change something in Strategy Properties. The values in this array are somewhat temporary data used only when we transfer position.
We have in TransferFromPreviousBar(int bar) function:
// Saves the Trailing Stop price
if (Strategy.Slot[Strategy.CloseSlot].IndicatorName == "Trailing Stop" &&
session[bar - 1].Summary.Transaction != Transaction.Transfer)
double deltaStop = Strategy.Slot[Strategy.CloseSlot].IndParam.NumParam.Value * InstrProperties.Point;
double stop = position.FormOrdPrice + (position.PosDir == PosDirection.Long ? -deltaStop : deltaStop);
Strategy.Slot[Strategy.CloseSlot].Component.Value[bar - 1] = stop;
Here Strategy.Slot[Strategy.CloseSlot].Component.Value[bar - 1] = stop; only when the position was open or modified in the previous bar.
Later we use this value in AnalyseExit(int bar).
if (Strategy.Slot[Strategy.CloseSlot].IndicatorName == "Trailing Stop")
// If there is a transferred position, sends a Stop Order for it.
if (session[bar].Summary.PosDir == PosDirection.Long &&
session[bar].Summary.Transaction == Transaction.Transfer)
double stop = Strategy.Slot[Strategy.CloseSlot].Component.Value[bar - 1];
In your screenshot the Trailing Stop component array contains values from the previous calculation that are not zeroed. But this is not a bug since these values are not used from the backtester.