Esempio n. 1
0
        private T SendRequest <T>(IntervalPeriod periodInterval, DataType dataType = DataType.Bid) where T : HistoricalData
        {
            T data = null;

            var request = new TimeHistoricalRequest(InstrumentsManager.Current, dataType, periodInterval.Period, periodInterval.Value);

            data = HistoricalDataManager.Get(request, new Interval(GetFromPeriod(periodInterval), DateTime.UtcNow)) as T;

            var result = new AsyncResult(data);

            HistoricalDataManager.OnLoaded = (historianData) =>
            {
                result        = new AsyncResult(historianData, true);
                result.Status = "Done";
            };

            do
            {
                result.Status = "Loading";
            } while (!result.IsReady);

            asyncResults.Add(result);

            data = result.Data as T;

            return(data);
        }
Esempio n. 2
0
        public override void Update(TickStatus args)
        {
            if (!historyRequested)
            {
                inst = InstrumentsManager.Current;

                var dayRequest = new TimeHistoricalRequest(inst, DataType.Trade, Period.Day, 1);

                var weekRequest = new TimeHistoricalRequest(inst, DataType.Trade, Period.Week, 1);

                var monthRequest = new TimeHistoricalRequest(inst, DataType.Trade, Period.Month, 1);

                dailyBars        = HistoricalDataManager.Get(dayRequest, new Interval(DateTime.UtcNow.AddDays(-252).ToLocalTime(), DateTime.UtcNow.ToLocalTime())) as BarData;
                weeklyBars       = HistoricalDataManager.Get(weekRequest, new Interval(DateTime.UtcNow.AddDays(-250).ToLocalTime(), DateTime.UtcNow.ToLocalTime())) as BarData;
                monthlyBars      = HistoricalDataManager.Get(monthRequest, new Interval(DateTime.UtcNow.AddMonths(-160).ToLocalTime(), DateTime.UtcNow.ToLocalTime())) as BarData;
                historyRequested = true;
            }
            if (args == TickStatus.IsBar)
            {
                Process();
            }
        }