コード例 #1
0
        private IbkrDataProviderRequest FormatNewRequest(RefDataProviderRequest request)
        {
            // Convert generic request into IBKR formatted request
            var ret = IbkrDataProviderRequest.GetRequest(request);

            switch (request.RequestType)
            {
            case DataProviderRequestType.SecurityContractData:
                ret.AddRequestType(IbkrDataProviderRequestType.SecurityExchangeName);
                break;

            case DataProviderRequestType.SecurityPriceData:
            case DataProviderRequestType.SecurityVolumeData:
                if (ret.Security.Exchange == "UNK")
                {
                    ret.AddRequestType(IbkrDataProviderRequestType.SecurityExchangeName);
                }
                if (ret.PriceDataRequestRange.start == DateTime.MinValue)
                {
                    ret.AddRequestType(IbkrDataProviderRequestType.SecurityFirstAvailableDate);
                }
                ret.AddRequestType(IbkrDataProviderRequestType.SecurityHistoricalData);
                break;
            }

            return(ret);
        }
コード例 #2
0
        public override void SubmitRequest(RefDataProviderRequest request)
        {
            var newRequest = FormatNewRequest(request);

            newRequest.SetNextRequestId();
            PushEnd(PendingRequests, newRequest);
            RequestTimer.Start();
        }