Выигрыш при кешировании в том, что при оптимизации индикаторы не будут пересчитываться, если параметры не изменинились. В конечном итоге в кеше будут накоплены все варианты индикатора с различиными параметрами.
Чтобы убрать кеш, достаточно

IList<double> high = ctx.GetData("Highest", new[] {HighPeriod.ToString()},
delegate { return Series.Highest(source.HighPrices, HighPeriod); });

заменить на

IList<double> high = Series.Highest(source.HighPrices, HighPeriod)

и далее по аналогии.

В кеш передаются изменяемые параметры и функция-делегат, которая вызывается если в кеше не найдены данные с такими параметрами.