Esempio n. 1
0
        void Unsubscribe()
        {
            if (m_unsubscriber != null)
            {
                m_unsubscriber.Dispose();
                m_unsubscriber = null;
            }

            if (m_indSMA != null)
            {
                m_indSMA.Dispose();
                m_indSMA = null;
            }
        }
Esempio n. 2
0
        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);
                }
            }
        }