/// <summary> /// To get the transactions storage the specified instrument. /// </summary> /// <param name="serializer">The serializer.</param> /// <returns>The transactions storage.</returns> public IMarketDataStorage <ExecutionMessage> GetTransactionStorage(IMarketDataSerializer <ExecutionMessage> serializer) { return(new TransactionStorage(Security, GetStorageDrive(serializer, ExecutionTypes.Transaction), serializer)); }
protected MarketDataStorage(SecurityId securityId, object arg, Func <TMessage, DateTimeOffset> getTime, Func <TMessage, SecurityId> getSecurityId, Func <TMessage, TId> getId, IMarketDataSerializer <TMessage> serializer, IMarketDataStorageDrive drive) { if (securityId.IsDefault()) { throw new ArgumentException(LocalizedStrings.Str1025, nameof(securityId)); } SecurityId = securityId; AppendOnlyNew = true; _getTime = getTime ?? throw new ArgumentNullException(nameof(getTime)); _getSecurityId = getSecurityId ?? throw new ArgumentNullException(nameof(getSecurityId)); _getId = getId ?? throw new ArgumentNullException(nameof(getId)); Drive = drive ?? throw new ArgumentNullException(nameof(drive)); Serializer = serializer ?? throw new ArgumentNullException(nameof(serializer)); _arg = arg; }
/// <summary> /// To get the storage of level1 data. /// </summary> /// <param name="serializer">The serializer.</param> /// <returns>The storage of level1 data.</returns> public IMarketDataStorage <Level1ChangeMessage> GetLevel1Storage(IMarketDataSerializer <Level1ChangeMessage> serializer) { return(new Level1Storage(Security, GetStorageDrive(serializer), serializer)); }
/// <summary> /// To get the candles storage the specified instrument. /// </summary> /// <param name="candleType">The candle type.</param> /// <param name="arg">Candle arg.</param> /// <param name="serializer">The serializer.</param> /// <returns>The candles storage.</returns> public IMarketDataStorage <CandleMessage> GetCandleStorage(Type candleType, object arg, IMarketDataSerializer <CandleMessage> serializer) { if (candleType == null) { throw new ArgumentNullException(nameof(candleType)); } if (!candleType.IsCandleMessage()) { throw new ArgumentOutOfRangeException(nameof(candleType), candleType, LocalizedStrings.WrongCandleType); } return(typeof(CandleStorage <,>).Make(candleType, candleType.ToCandleType()).CreateInstance <IMarketDataStorage <CandleMessage> >(Security, arg, GetStorageDrive(serializer, candleType, arg), serializer)); }
IMarketDataStorage<NewsMessage> IMarketDataDrive.GetNewsMessageStorage(IMarketDataSerializer<NewsMessage> serializer) { return GetDrive().GetNewsMessageStorage(serializer); }
protected MarketDataStorage(SecurityId securityId, object arg, Func <TData, DateTimeOffset> getTime, Func <TData, SecurityId> getSecurityId, Func <TData, TId> getId, IMarketDataSerializer <TData> serializer, IMarketDataStorageDrive drive) { if (securityId == null) { throw new ArgumentNullException("securityId"); } if (securityId == default(SecurityId)) { throw new ArgumentException(LocalizedStrings.Str1025, "securityId"); } if (getTime == null) { throw new ArgumentNullException("getTime"); } if (getSecurityId == null) { throw new ArgumentNullException("getSecurityId"); } if (getId == null) { throw new ArgumentNullException("getId"); } if (serializer == null) { throw new ArgumentNullException("serializer"); } if (drive == null) { throw new ArgumentNullException("drive"); } SecurityId = securityId; AppendOnlyNew = true; _getTime = getTime; _getSecurityId = getSecurityId; _getId = getId; Drive = drive; Serializer = serializer; _arg = arg; }
private IMarketDataStorageDrive GetStorageDrive <TMessage>(IMarketDataSerializer <TMessage> serializer, object arg = null) where TMessage : Message { return(GetStorageDrive(serializer, typeof(TMessage), arg)); }
public MarketDepthStorage(SecurityMarketDataDrive parent, Security security, IMarketDataStorageDrive drive, IMarketDataSerializer <QuoteChangeMessage> serializer) : base(parent, security, null, depth => depth.ServerTime, depth => depth.SecurityId, depth => depth.ServerTime.StorageTruncate(serializer.TimePrecision), serializer, drive) { }
public Level1Storage(Security security, IMarketDataStorageDrive drive, IMarketDataSerializer <Level1ChangeMessage> serializer) : base(security, null, value => value.ServerTime, value => value.SecurityId, value => value.ServerTime.Truncate(), serializer, drive) { }
public TransactionStorage(Security security, IMarketDataStorageDrive drive, IMarketDataSerializer <ExecutionMessage> serializer) : base(security, ExecutionTypes.Transaction, msg => msg.ServerTime, msg => msg.SecurityId, msg => msg.TransactionId, serializer, drive) { AppendOnlyNew = false; }
public CandleStorage(Security security, object arg, IMarketDataStorageDrive drive, IMarketDataSerializer <TCandleMessage> serializer) : base(security, arg, drive, serializer) { }
protected CandleMessageStorage(Security security, object arg, IMarketDataStorageDrive drive, IMarketDataSerializer <TCandleMessage> serializer) : base(security, arg, candle => candle.OpenTime, candle => candle.SecurityId, candle => candle.OpenTime.Truncate(), serializer, drive) { }
public MarketDepthStorage(Security security, IMarketDataStorageDrive drive, IMarketDataSerializer <QuoteChangeMessage> serializer) : base(security, null, depth => depth.ServerTime, depth => depth.SecurityId, depth => depth.ServerTime.Truncate(), serializer, drive) { }
protected ConvertableStorage(SecurityMarketDataDrive parent, Security security, object arg, Func <TMessage, DateTimeOffset> getTime, Func <TMessage, SecurityId> getSecurity, Func <TMessage, TId> getId, IMarketDataSerializer <TMessage> serializer, IMarketDataStorageDrive drive) : base(security, arg, getTime, getSecurity, getId, serializer, drive) { _parent = parent; }
private IMarketDataStorageDrive GetStorageDrive(IMarketDataSerializer serializer, Type messageType, object arg = null) { return(Drive.GetStorageDrive(Security.ToSecurityId(), messageType, arg, ToFormat(serializer))); }
public TradeStorage(SecurityMarketDataDrive parent, Security security, IMarketDataStorageDrive drive, IMarketDataSerializer <ExecutionMessage> serializer) : base(parent, security, ExecutionTypes.Tick, trade => trade.ServerTime, trade => trade.SecurityId, trade => trade.TradeId ?? 0, serializer, drive) { }
/// <summary> /// To get the storage of order books for the specified instrument. /// </summary> /// <param name="serializer">The serializer.</param> /// <returns>The order books storage.</returns> public IMarketDataStorage <QuoteChangeMessage> GetQuoteStorage(IMarketDataSerializer <QuoteChangeMessage> serializer) { return(new MarketDepthStorage(Security, GetStorageDrive(serializer), serializer)); }
public OrderLogStorage(SecurityMarketDataDrive parent, Security security, IMarketDataStorageDrive drive, IMarketDataSerializer <ExecutionMessage> serializer) : base(parent, security, ExecutionTypes.OrderLog, item => item.ServerTime, item => item.SecurityId, item => item.TransactionId, serializer, drive) { }
/// <summary> /// To get the storage of orders log for the specified instrument. /// </summary> /// <param name="serializer">The serializer.</param> /// <returns>The storage of orders log.</returns> public IMarketDataStorage <ExecutionMessage> GetOrderLogStorage(IMarketDataSerializer <ExecutionMessage> serializer) { return(new OrderLogStorage(Security, GetStorageDrive(serializer, ExecutionTypes.OrderLog), serializer)); }
/// <summary> /// Получить хранилище новостей. /// </summary> /// <param name="serializer">Сериализатор.</param> /// <returns>Хранилище новостей.</returns> public IMarketDataStorage<NewsMessage> GetNewsMessageStorage(IMarketDataSerializer<NewsMessage> serializer) { throw new NotImplementedException(); }
protected MarketDataStorage(Security security, object arg, Func <TData, DateTimeOffset> getTime, Func <TData, SecurityId> getSecurity, Func <TData, TId> getId, IMarketDataSerializer <TData> serializer, IMarketDataStorageDrive drive) : this(security.ToSecurityId(), arg, getTime, getSecurity, getId, serializer, drive) { if (security == null) { throw new ArgumentNullException("security"); } if (security.Id.IsEmpty()) { throw new ArgumentException(LocalizedStrings.Str1025, "security"); } Security = security; }