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]); } } }
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; } }