Пример #1
0
 private void UpdateManagerFrames(DateTime currentDate)
 {
     foreach (var manager in managers.Values)
     {
         var trimmedDate = currentDate.Trim(manager.Period);
         while (manager.LastAddedFrame is null ||
                manager.LastAddedFrame.IsExpired(trimmedDate))
         {
             var nextFrameStartDate = manager.LastAddedFrame?.StartTime.GetNextFrameDate(manager.Period) ?? trimmedDate;
             var closePrice         = manager.LastAddedFrame?.Close ?? 0;
             var nextFrame          = new PriceHistoryFrame(nextFrameStartDate, manager.Period, manager.Market, closePrice);
             manager.RegisterNewFrame(nextFrame);
         }
     }
 }
Пример #2
0
        public static PriceHistoryFrameModel ToFrameModel(this PriceHistoryFrame frame)
        {
            if (frame is null)
            {
                throw new ArgumentNullException(nameof(frame));
            }

            var id = PriceHistoryExtensions.EncodeId(frame.Market, (int)frame.Period, (int)((DateTimeOffset)frame.StartTime).ToUnixTimeSeconds());

            return(new PriceHistoryFrameModel
            {
                Id = id,
                Open = frame.Open,
                Close = frame.Close,
                Low = frame.Low,
                High = frame.High,
                BaseVolume = frame.BaseVolume,
                CounterVolume = frame.CounterVolume
            });
        }