internal void DropHistoryDataSubscription(uint requestId) { var message = new TimeBarRequest { request_id = requestId, request_type = (uint)TimeBarRequest.RequestType.DROP, time_bar_parameters = new TimeBarParameters { } }; adapter.SendMessage(message); }
public HistoryDataRequest( CQGCInstrumentHistoryProvider provider, IHistoryDataConsumer consumer, Instrument instrument, DateTime begin, DateTime end, HistoryProviderSpan span, TimeBarRequest message) { this.provider = provider; this.consumer = consumer; data = new HistoryData(instrument, begin, end, span); this.message = message; }
/// <summary> /// Отправить сообщение в сокет /// </summary> public void SendMessage(TimeBarRequest msg) => SendMessageImpl(new ClientMsg { time_bar_request = { msg } });
private async Task <TimeBarRequest> PrepareTimeBarRequestAsync( Instrument instrument, DateTime begin, DateTime end, HistoryProviderSpan span, TimeBarRequest.RequestType type) { var contractId = await instrumentResolver.GetContractIdAsync(instrument); if (contractId == uint.MaxValue) { return(await Task.FromResult <TimeBarRequest>(null)); } TimeBarParameters.BarUnit barUnit; uint unitsNumber = 0; switch (span) { case HistoryProviderSpan.Minute: barUnit = TimeBarParameters.BarUnit.MIN; unitsNumber = 1; break; case HistoryProviderSpan.Minute5: barUnit = TimeBarParameters.BarUnit.MIN; unitsNumber = 5; break; case HistoryProviderSpan.Minute10: barUnit = TimeBarParameters.BarUnit.MIN; unitsNumber = 10; break; case HistoryProviderSpan.Minute15: barUnit = TimeBarParameters.BarUnit.MIN; unitsNumber = 15; break; case HistoryProviderSpan.Minute30: barUnit = TimeBarParameters.BarUnit.MIN; unitsNumber = 30; break; case HistoryProviderSpan.Hour: barUnit = TimeBarParameters.BarUnit.HOUR; unitsNumber = 1; break; case HistoryProviderSpan.Hour4: barUnit = TimeBarParameters.BarUnit.HOUR; unitsNumber = 4; break; case HistoryProviderSpan.Day: // Для DAY units_number не заполняется barUnit = TimeBarParameters.BarUnit.DAY; break; case HistoryProviderSpan.Week: // Для WEEK units_number не заполняется barUnit = TimeBarParameters.BarUnit.WEEK; break; case HistoryProviderSpan.Month: // Для MONTH units_number не заполняется barUnit = TimeBarParameters.BarUnit.MONTH; break; default: throw new ArgumentOutOfRangeException(nameof(span), span, $"Invalid time span - {span}"); } var message = new TimeBarRequest { request_id = adapter.GetNextRequestId(), request_type = (uint)type, time_bar_parameters = new TimeBarParameters { contract_id = contractId, bar_unit = (uint)barUnit, units_number = unitsNumber, from_utc_time = adapter.ResolveDateTime(begin), to_utc_time = adapter.ResolveDateTime(end) } }; return(message); }