示例#1
0
		public BarSeries Compress(DataEntryEnumerator enumerator)
		{
			BarSeries series = new BarSeries();
			this.NewCompressedBar += (sender, args) => series.Add(args.Bar);
			while (enumerator.MoveNext())
				this.Add(enumerator.Current);
			this.Flush();
			return series;
		}
示例#2
0
        public BarSeries GetRange(DateTime dateTime1, DateTime dateTime2)
        {
            BarSeries barSeries = new BarSeries();
            int       index     = this.series.GetIndex(dateTime1, EIndexOption.Next);
            int       index2    = this.series.GetIndex(dateTime2, EIndexOption.Prev);

            if (index != -1 && index2 != -1)
            {
                for (int i = index; i <= index2; i++)
                {
                    barSeries.Add(new Bar(this.series[i]));
                }
            }
            return(barSeries);
        }
示例#3
0
        ///<summary>
        ///  Returns bars from within specified dates interval
        ///</summary>
        public BarSeries GetRange(DateTime dateTime1, DateTime dateTime2)
        {
            BarSeries barSeries = new BarSeries();
            int       index1    = this.series.GetIndex(dateTime1, EIndexOption.Next);
            int       index2    = this.series.GetIndex(dateTime1, EIndexOption.Prev);

            if (index1 != -1 && index2 != -1)
            {
                for (int index3 = index1; index3 <= index2; ++index3)
                {
                    barSeries.Add(new Bar(this.series[index3]));
                }
            }
            return(barSeries);
        }
        private void PreLoadHistoricalData(DateTime startDate, int barSize, BarSeries barsToAppendTo)
        {
            Stopwatch watch = new Stopwatch();
            watch.Start();

            string barName = BarNameManager.GetBarName(barSize);
            LoggingUtility.WriteInfo(this, string.Format("Trying to retrieve {0} data starting from {1} from IB", barName, startDate.ToShortDateString()));

            BarSeries historicalData = GetHistoricalBars("IB", Instrument,
                startDate,
                Clock.Now,
                barSize);

            watch.Stop();

            int retrievedBarCount = historicalData.Count;

            LoggingUtility.WriteInfo(this,
                string.Format("Took {0}ms to retrieve data from IB for {1} period data. Total bars retrieved: {2}",
                    watch.ElapsedMilliseconds, barName, retrievedBarCount));

            watch.Reset();
            watch.Start();

            foreach (Bar currentBar in historicalData)
            {
                barsToAppendTo.Add(currentBar);

                SaveData(currentBar);

                OnBar(currentBar);
            }

            watch.Stop();

            LoggingUtility.WriteInfo(this,
                string.Format("Took {0}ms to load data into memory for {1} data", watch.ElapsedMilliseconds, barName));
        }
示例#5
0
		public BarSeries GetRange(DateTime dateTime1, DateTime dateTime2)
		{
			BarSeries barSeries = new BarSeries();
			int index = this.series.GetIndex(dateTime1, EIndexOption.Next);
			int index2 = this.series.GetIndex(dateTime2, EIndexOption.Prev);
			if (index != -1 && index2 != -1)
			{
				for (int i = index; i <= index2; i++)
				{
					barSeries.Add(new Bar(this.series[i]));
				}
			}
			return barSeries;
		}