internal HistoricalBars(ResponseComposer c) // a one-shot deal { if (!c.Config.SupportsServerVersion(ServerVersion.SyntRealtimeBats)) { c.RequireVersion(3); } RequestId = c.ReadInt(); Start = c.ReadLocalDateTime(DateTimePattern); End = c.ReadLocalDateTime(DateTimePattern); var n = c.ReadInt(); for (var i = 0; i < n; i++) { Bars.Add(new HistoricalBar(c)); } }
internal HistoricalBar(ResponseComposer c) { Date = c.ReadLocalDateTime(HistoricalBars.DateTimePattern); Open = c.ReadDouble(); High = c.ReadDouble(); Low = c.ReadDouble(); Close = c.ReadDouble(); Volume = c.Config.ServerVersionCurrent < ServerVersion.SyntRealtimeBats ? c.ReadInt() : c.ReadLong(); WeightedAveragePrice = c.ReadDouble(); if (!c.Config.SupportsServerVersion(ServerVersion.SyntRealtimeBats)) { c.ReadString(); /*string hasGaps = */ } Count = c.ReadInt(); }