void Unsubscribe() { if (m_unsubscriber != null) { m_unsubscriber.Dispose(); m_unsubscriber = null; } if (m_indSMA != null) { m_indSMA.Dispose(); m_indSMA = null; } }
public void SetParameters(params IndParameter[] parameters) { if (parameters[0] == "N" && parameters[1] == "K") { if (_n != parameters[0] || _k != parameters[1]) { Unsubscribe(); _n = parameters[0]; _k = parameters[1]; m_indSMA = new IndSMA(m_manager, m_token); m_indSMA.SetParameters(new IndParameter("Period", _n)); } } if (parameters[0] == "Start") { IndParameter indexParamater = parameters.FirstOrDefault(p => p == "Index"); IndParameter priorityParamater = parameters.FirstOrDefault(p => p == "Priority"); if (indexParamater.Value != null) { m_indSMA.SetParameters( new IndParameter("Start", true), new IndParameter("Index", indexParamater), new IndParameter("Priority", TemporalContextManager.InternalIndicatorPriority) ); } else { m_indSMA.SetParameters(new IndParameter("Start", true), new IndParameter("Priority", TemporalContextManager.InternalIndicatorPriority)); } if (priorityParamater.Value != null) { m_unsubscriber = m_manager.AddTemporalObserver <double>(this, m_indSMA.Token, null, priorityParamater); } else { m_unsubscriber = m_manager.AddTemporalObserver <double>(this, m_indSMA.Token); } } }