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); }
public override void SubmitRequest(RefDataProviderRequest request) { var newRequest = FormatNewRequest(request); newRequest.SetNextRequestId(); PushEnd(PendingRequests, newRequest); RequestTimer.Start(); }