示例#1
0
 public void Apply(TemporalValue value)
 {
     LastTimeStamp = value.TimeStamp;
     _manager.AddTemporalValue(_out_tokens[0], value);
     _manager.AddTemporalValue(_out_tokens[1], value);
     _manager.AddTemporalValue(_out_tokens[2], value);
 }
示例#2
0
        public void Apply(TemporalValue <double> value)
        {
            if (m_period == m_window.Count)
            {
                var last = m_window.Min;

                //m_manager.AddTemporalValue(m_restoken, new TemporalValue<double>(m_window.Max.TimeStamp, m_sum / m_period));

                if (queue == null)
                {
                    queue = (ICollection <TemporalValue <double> >)m_manager[m_restoken];
                    if (queue == null)
                    {
                        m_manager.AddTemporalValue(m_restoken, new TemporalValue <double>(m_window.Max.TimeStamp, m_sum / m_period));
                        goto icontinue;
                    }
                }
                queue.Add(new TemporalValue <double>(m_window.Max.TimeStamp, m_sum / m_period));
icontinue:
                m_sum -= last;
                m_window.Remove(last);
            }

            m_sum += value;
            m_window.Add(value);
        }
示例#3
0
        public void Apply(TemporalValue <double[]> newCandle)
        {
            if (m_nexttimeframe == 0)
            {
                m_nexttimeframe = newCandle.TimeStamp + m_timeframe;
                m_value         = CandleFactory.GetOhlcCandle(m_nexttimeframe, newCandle.Value);
            }
            else
            {
                if (newCandle.TimeStamp < m_nexttimeframe)
                {
                    m_value.SetClose(newCandle.Close());
                    m_value.SetOpenInterest(newCandle.OpenInterest());

                    m_value.SetHigh(Math.Max(newCandle.High(), m_value.High()));
                    m_value.SetLow(Math.Min(newCandle.Low(), m_value.Low()));

                    m_value.SetVolume(m_value.Volume() + newCandle.Volume());
                    m_value.SetVolumeAsk(m_value.VolumeAsk() + newCandle.VolumeAsk());
                }
                else
                {
                    m_manager.AddTemporalValue(m_restoken, m_value);
                    m_nexttimeframe = newCandle.TimeStamp + m_timeframe;
                    m_value         = CandleFactory.GetOhlcCandle(m_nexttimeframe, newCandle.Value);
                }
            }
        }
示例#4
0
        public void Apply(TemporalValue <T> value)
        {
            if (m_end >= value.TimeStamp - m_period)
            {
                m_end = value.TimeStamp;
                return;
            }
            else
            if (m_start == 0 && m_end == 0)
            {
                m_start = m_end = value.TimeStamp;
                return;
            }

            m_manager.AddTemporalValue(m_restoken, new TemporalValue <long>(m_start, m_end));
            m_start = m_end = value.TimeStamp;
        }
示例#5
0
        public void Apply(TemporalValue value)
        {
            if (m_period == m_window.Count)
            {
                m_manager.AddTemporalValue(m_tokens,
                                           new TemporalValue(m_window.Max.TimeStamp, m_window.Max.Value / m_window.Min.Value));
                m_window.Remove(m_window.Min);
            }

            m_window.Add(value);
        }
示例#6
0
        public void Apply(TemporalValue <double> value)
        {
            if (queue == null)
            {
                queue = (ICollection <TemporalValue <double[]> >)m_manager[m_restoken];
                if (queue == null)
                {
                    m_manager.AddTemporalValue(m_restoken,
                                               new TemporalValue <double[]>(value.TimeStamp, new[] { (1 - _k) * value.Value, (1 + _k) * value.Value }));
                    return;
                }
            }

            queue.Add(new TemporalValue <double[]>(value.TimeStamp, new [] { (1 - _k) * value.Value, (1 + _k) * value.Value }));
        }
示例#7
0
文件: IndSlice.cs 项目: ensh/AlfaFlow
 public void Apply(params TemporalValue[] values)
 {
     apply(values, m_values);
     if (m_outTokens.Length == 1)
     {
         m_manager.AddTemporalValues(m_outTokens[0], m_values);
     }
     else
     {
         for (int i = 0; i < m_outTokens.Length; i++)
         {
             m_manager.AddTemporalValue(m_outTokens[i], m_values[i]);
         }
     }
 }
示例#8
0
文件: IndWMA.cs 项目: ensh/AlfaFlow
        public void Apply(TemporalValue <double> value)
        {
            if (m_period + 1 == m_window.Count)
            {
                m_window.Remove(m_window.Min);
                m_wma = 0; double k = 1;
                foreach (var tv in m_window)
                {
                    m_wma += tv * k; k++;
                }

                m_manager.AddTemporalValue <double>(m_restoken, new TemporalValue <double>(m_window.Max.TimeStamp, m_wma / m_sumWeight));
            }

            m_window.Add(value);
        }
示例#9
0
文件: IndEMA.cs 项目: ensh/AlfaFlow
        public void Apply(TemporalValue <double> value)
        {
            m_ema = (m_next) ? m_KE * m_ema + m_KC * value : value;
            //m_manager.AddTemporalValue(m_restoken, new TemporalValue<double>(value.TimeStamp, m_ema));

            if (queue == null)
            {
                queue = (ICollection <TemporalValue <double> >)m_manager[m_restoken];
                if (queue == null)
                {
                    m_manager.AddTemporalValue(m_restoken, new TemporalValue <double>(value.TimeStamp, m_ema));
                    return;
                }
            }
            queue.Add(new TemporalValue <double>(value.TimeStamp, m_ema));
            m_next = true;
        }
示例#10
0
 public TemporalLinkedContextHelper(TemporalLinkedContext context, TemporalContextManager manager, int index)
 {
     m_index = index; m_context = context; m_manager = manager;
     m_manager.AddTemporalValue("Contexts", new TemporalValue <object>(DateTime.Now.Ticks, m_context));
 }
示例#11
0
 public TemporalContextHelper(TemporalContext <T> context, TemporalContextManager manager)
 {
     m_context = context;
     m_manager = manager;
     m_manager.AddTemporalValue("Contexts", new TemporalValue <object>(DateTime.Now.Ticks, m_context));
 }