IEnumerableEx <TEntity> IMarketDataStorage <TEntity> .Load(DateTime date) { if (typeof(TEntity) == typeof(Candle)) { var messages = Load(date); return(messages .Cast <CandleMessage>() .ToEx(messages.Count) .ToCandles <TEntity>(_security.GetSecurity(date)) .ToEx(messages.Count)); } else { return(Load(date).ToEntities <TMessage, TEntity>(_security.GetSecurity(date))); } }
IEnumerable <Candle> IMarketDataStorage <Candle> .Load(DateTime date) { var messages = Load(date); return(messages .ToCandles <TCandle>(_security.GetSecurity(date.ApplyTimeZone(TimeZoneInfo.Utc))) .Cast <Candle>()); }
IEnumerableEx <Candle> IMarketDataStorage <Candle> .Load(DateTime date) { var messages = Load(date); return(messages .ToCandles <TCandle>(_security.GetSecurity(date)) .Cast <Candle>() .ToEx(messages.Count)); }
IEnumerableEx<TEntity> IMarketDataStorage<TEntity>.Load(DateTime date) { var security = _security.GetSecurity(date.ApplyTimeZone(TimeZoneInfo.Utc)); if (typeof(TEntity) == typeof(Candle)) { var messages = Load(date); return messages .Cast<CandleMessage>() .ToEx(messages.Count) .ToCandles<TEntity>(security) .ToEx(messages.Count); } else return Load(date).ToEntities<TMessage, TEntity>(security); }
private IMarketDataStorage<T> GetStorage(DateTime date) { return _getStorage(_security.GetSecurity(date.ApplyTimeZone(TimeZoneInfo.Utc)), Drive.Drive); }
/// <summary> /// To load messages from embedded storages for specified date. /// </summary> /// <param name="date">Date.</param> /// <returns>The messages.</returns> protected override IEnumerable <T> OnLoad(DateTime date) { var securityId = _security.ToSecurityId(); var currentSecurityId = _security.GetSecurity(date); foreach (Message msg in base.OnLoad(date)) { switch (msg.Type) { case MessageTypes.CandlePnF: case MessageTypes.CandleRange: case MessageTypes.CandleRenko: case MessageTypes.CandleTick: case MessageTypes.CandleTimeFrame: case MessageTypes.CandleVolume: { var candleMsg = (CandleMessage)msg; if (candleMsg.SecurityId == currentSecurityId) { yield return(ReplaceSecurityId(msg, securityId)); } break; } case MessageTypes.Execution: { var execMsg = (ExecutionMessage)msg; if (execMsg.SecurityId == currentSecurityId) { yield return(ReplaceSecurityId(msg, securityId)); } break; } case MessageTypes.QuoteChange: { var quoteMsg = (QuoteChangeMessage)msg; if (quoteMsg.SecurityId == currentSecurityId) { yield return(ReplaceSecurityId(msg, securityId)); } break; } case MessageTypes.Level1Change: { var l1Msg = (Level1ChangeMessage)msg; if (l1Msg.SecurityId == currentSecurityId) { yield return(ReplaceSecurityId(msg, securityId)); } break; } default: yield return((T)msg); break; } } }
private IMarketDataStorage <T> GetStorage(DateTime date) { return(_getStorage(_security.GetSecurity(date), Drive.Drive)); }