Beispiel #1
0
        public void LookupCandles(MarketDataMessage message)
        {
            var placeCode = _adapter.SecurityClassInfo.GetSecurityClass(message.SecurityType, message.SecurityId.BoardCode);

            _adapter.AddDebugLog("Candles SC={0} PC={1} TF={2} F={3} T={4}", message.SecurityId.SecurityCode, placeCode, message.Arg, message.From, message.To);

            if (placeCode == null)
            {
                throw new InvalidOperationException(LocalizedStrings.Str2279);
            }

            var timeFrame = (AlfaTimeFrames)(TimeSpan)message.Arg;
            //to = timeFrame.GetCandleBounds(series.Security).Min;

            var data = _ad.GetArchiveFinInfoFromDB(placeCode, message.SecurityId.SecurityCode, timeFrame.Interval, message.From.ToLocalTime(TimeHelper.Moscow), message.To.ToLocalTime(TimeHelper.Moscow));

            if (_ad.LastResult != StateCodes.stcSuccess)
            {
                ThrowInError((tagStateCodes)_ad.LastResult);
            }

            _adapter.AddDebugLog("Candles DT={0}", data);

            DoInSysCulture(() => ProcessCandles.SafeInvoke(message, data.ToRows()));
        }