62 : this($
"SRSI({rsiPeriod},{stochPeriod},{kSmoothingPeriod},{dSmoothingPeriod},{movingAverageType})", rsiPeriod, stochPeriod, kSmoothingPeriod, dSmoothingPeriod, movingAverageType)
81 K = movingAverageType.AsIndicator($
"{name}_K_{movingAverageType}", kSmoothingPeriod);
82 D = movingAverageType.AsIndicator($
"{name}_D_{movingAverageType}", dSmoothingPeriod);
84 WarmUpPeriod = rsiPeriod + stochPeriod + Math.Max(kSmoothingPeriod, dSmoothingPeriod);
96 _recentRSIValues.Add(_rsi.Current.Value);
98 if (!_recentRSIValues.IsReady)
103 var maxHigh = _recentRSIValues.Max();
104 var minLow = _recentRSIValues.Min();
107 if (maxHigh != minLow)
109 k = 100 * (_rsi.Current.Value - minLow) / (maxHigh - minLow);
113 D.Update(input.
EndTime,
K.Current.Value);
124 _recentRSIValues.Reset();