protected override void InitForGap() { if (IsSimple) { return; } var firstIndex = Math.Max(m_executeContext.LastIndex + 1, m_executeContext.Index - GapTolerancePeriodMultiplier * Period); for (var i = firstIndex; i < m_executeContext.Index; i++) { var source = m_executeContext.GetSourceForGap(i); var ema1 = m_ema1.Execute(source, i); var ema2 = m_ema2.Execute(ema1, i); } }
protected override void InitForGap() { if (IsSimple) { m_lastEma3 = m_executeContext.GetSourceForGap(m_executeContext.Index - 1); } else { var firstIndex = Math.Max(m_executeContext.LastIndex + 1, m_executeContext.Index - 4 * Period); for (var i = firstIndex; i < m_executeContext.Index; i++) { var source = m_executeContext.GetSourceForGap(i); var ema1 = m_ema1.Execute(source, i); var ema2 = m_ema2.Execute(ema1, i); var ema3 = m_ema3.Execute(ema2, i); m_lastEma3 = ema3; } } }