Ejemplo n.º 1
0
 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]);
         }
     }
 }
Ejemplo n.º 2
0
        public void Apply(params TemporalValue[] values)
        {
            if (m_nexttime == 0)
            {
                for (int i = 0; i < values.Length; i++)
                {
                    m_values[i] = values[i];
                }
                m_nexttime = values[0].TimeStamp + m_timeframe;
                return;
            }

            if (m_nexttime > values[0].TimeStamp)
            {
                m_values[TemporalContextManager.HighArrayIndex] = Math.Max(values[TemporalContextManager.HighArrayIndex].Value,
                                                                           m_values[TemporalContextManager.HighArrayIndex]);
                m_values[TemporalContextManager.LowArrayIndex] = Math.Max(values[TemporalContextManager.LowArrayIndex].Value,
                                                                          m_values[TemporalContextManager.LowArrayIndex]);

                m_values[TemporalContextManager.CloseArrayIndex]        = values[TemporalContextManager.CloseArrayIndex].Value;
                m_values[TemporalContextManager.OpenInterestArrayIndex] = values[TemporalContextManager.OpenInterestArrayIndex].Value;
                m_values[TemporalContextManager.VolumeArrayIndex]      += values[TemporalContextManager.VolumeArrayIndex].Value;
                m_values[TemporalContextManager.VolumeAskArrayIndex]   += values[TemporalContextManager.VolumeAskArrayIndex].Value;
                m_values[TemporalContextManager.VolumeBidArrayIndex]   += values[TemporalContextManager.VolumeBidArrayIndex].Value;
                m_values[TemporalContextManager.TradesCountArrayIndex] += values[TemporalContextManager.TradesCountArrayIndex].Value;
            }
            else
            {
                TemporalValue[] result = m_values.Select(v => new TemporalValue(m_nexttime, v)).ToArray();
                m_manager.AddTemporalValues(m_token_out, result);

                for (int i = 0; i < values.Length; i++)
                {
                    m_values[i] = values[i];
                }
                m_nexttime += m_timeframe;
            }
        }