예제 #1
0
        // <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);
            }
        }
예제 #2
0
        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;
            }
        }