// <Summary> // Lightstreamer Subscribe to L1 Prices... // </Summary> private void SubscribeToCharts(string[] chartEpics) { try { if (igStreamApiClient != null) { ChartMarketData.Clear(); foreach (var epic in chartEpics) { IgPublicApiData.ChartModel ccd = new IgPublicApiData.ChartModel(); ccd.ChartEpic = epic; ChartMarketData.Add(ccd); AddStatusMessage("Subscribing to Chart Data (CandleStick ): " + ccd.ChartEpic); } _chartSubscribedTableKey = igStreamApiClient.SubscribeToChartCandleData(chartEpics, ChartScale.OneMinute, _chartSubscription); } } catch (Exception ex) { AddStatusMessage("Exception when trying to subscribe to Chart Candle Data: " + ex.Message); } }
private void OnChartCandleDataUpdate(object sender, UpdateArgs <ChartCandelData> e) { var candleUpdate = e.UpdateData; var tempEpic = e.ItemName.Replace("CHART:", ""); var tempArray = tempEpic.Split(':'); var epic = tempArray[0]; var time = tempArray[1]; foreach (var candleData in ChartMarketData.Where(chartItem => chartItem.ChartEpic == epic)) { candleData.Bid = new IgPublicApiData.ChartHlocModel(); candleData.Bid.Close = candleUpdate.Bid.Close; candleData.Bid.High = candleUpdate.Bid.High; candleData.Bid.Low = candleUpdate.Bid.Low; candleData.Bid.Open = candleUpdate.Bid.Open; candleData.DayChange = candleUpdate.DayChange; candleData.DayChangePct = candleUpdate.DayChangePct; candleData.DayHigh = candleUpdate.DayHigh; candleData.DayLow = candleUpdate.DayLow; candleData.DayMidOpenPrice = candleUpdate.DayMidOpenPrice; candleData.EndOfConsolidation = candleUpdate.EndOfConsolidation; candleData.IncrimetalTradingVolume = candleUpdate.IncrimetalTradingVolume; if (candleUpdate.LastTradedVolume != null) { candleData.LastTradedVolume = candleUpdate.LastTradedVolume; candleData.LastTradedPrice = new IgPublicApiData.ChartHlocModel(); candleData.LastTradedPrice.Close = candleUpdate.LastTradedPrice.Close; candleData.LastTradedPrice.High = candleUpdate.LastTradedPrice.High; candleData.LastTradedPrice.Low = candleUpdate.LastTradedPrice.Low; candleData.LastTradedPrice.Open = candleUpdate.LastTradedPrice.Open; } candleData.Offer = new IgPublicApiData.ChartHlocModel(); candleData.Offer.Close = candleUpdate.Offer.Close; candleData.Offer.Open = candleUpdate.Offer.Open; candleData.Offer.High = candleUpdate.Offer.High; candleData.Offer.Low = candleUpdate.Offer.Low; candleData.TickCount = candleUpdate.TickCount; candleData.UpdateTime = candleUpdate.UpdateTime; } }