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);
        }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
 /// <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);
        }