void ICandleSource <Candle> .Start(CandleSeries series, DateTimeOffset from, DateTimeOffset to) { var transactionId = _connector.TransactionIdGenerator.GetNextId(); var mdMsg = series.ToMarketDataMessage(true, from, to); mdMsg.TransactionId = transactionId; mdMsg.FillSecurityInfo(_connector, series.Security); _seriesInfos.Add(transactionId, new SeriesInfo(series, mdMsg)); ((Connector)_connector).SendInMessage(mdMsg); // TODO remove cast }
void ICandleSource <Candle> .Stop(CandleSeries series) { var pair = _seriesInfos.FirstOrDefault(p => p.Value.Series == series); if (pair.Value == null) { return; } var transactionId = pair.Key; var mdMsg = series.ToMarketDataMessage(false); mdMsg.TransactionId = _connector.TransactionIdGenerator.GetNextId(); mdMsg.OriginalTransactionId = transactionId; mdMsg.FillSecurityInfo(_connector, series.Security); _seriesInfos.Remove(transactionId); _connector.MarketDataAdapter.SendInMessage(mdMsg); }
/// <summary> /// To create candles from the order books collection. /// </summary> /// <param name="depths">Market depths.</param> /// <param name="series">Candles series.</param> /// <param name="type">Type of candle depth based data.</param> /// <param name="onlyFormed">Process only formed candles.</param> /// <returns>Candles.</returns> public static IEnumerable <CandleMessage> ToCandles(this IEnumerable <QuoteChangeMessage> depths, CandleSeries series, Level1Fields type = Level1Fields.SpreadMiddle, bool onlyFormed = true) { return(new CandleMessageEnumerable(series.ToMarketDataMessage(true), onlyFormed, depths, type)); }
/// <summary> /// To create candles from the tick trades collection. /// </summary> /// <param name="trades">Tick trades.</param> /// <param name="series">Candles series.</param> /// <param name="onlyFormed">Process only formed candles.</param> /// <returns>Candles.</returns> public static IEnumerable <CandleMessage> ToCandles(this IEnumerable <ExecutionMessage> trades, CandleSeries series, bool onlyFormed = true) { return(new CandleMessageEnumerable(series.ToMarketDataMessage(true), onlyFormed, trades)); }
/// <summary> /// To create candles from the order books collection. /// </summary> /// <param name="depths">Market depths.</param> /// <param name="series">Candles series.</param> /// <param name="type">Type of candle depth based data.</param> /// <param name="onlyFormed">Process only formed candles.</param> /// <returns>Candles.</returns> public static IEnumerable <CandleMessage> ToCandles(this IEnumerable <QuoteChangeMessage> depths, CandleSeries series, DepthCandleSourceTypes type = DepthCandleSourceTypes.Middle, bool onlyFormed = true) { return(new CandleMessageEnumerable(series.ToMarketDataMessage(true), onlyFormed, depths, type)); }