public ClientWrapper(ILogger <ClientWrapper> logger, IIBClient ibClient, IEReaderSignal signal, ServerConfig config) { this.ibClient = ibClient ?? throw new ArgumentNullException(nameof(ibClient)); this.signal = signal ?? throw new ArgumentNullException(nameof(signal)); this.config = config ?? throw new ArgumentNullException(nameof(config)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); TimeZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); }
public IB(string host, int port, int clientID = -1, IIBClient client = null) { Name = "Interactive Brokers"; if (clientID < 0) { clientID = 99; } _host = host; _port = port; _clientID = clientID; _realTimeDataRequests = new Dictionary <int, RealTimeDataRequest>(); _realTimeRequestQueue = new Queue <int>(); _historicalDataRequests = new ConcurrentDictionary <int, HistoricalDataRequest>(); _historicalRequestQueue = new Queue <int>(); _arrivedHistoricalData = new ConcurrentDictionary <int, List <OHLCBar> >(); _subRequestIDMap = new Dictionary <int, int>(); _subRequestCount = new Dictionary <int, int>(); _requestIDMap = new Dictionary <int, int>(); _requestRepeatTimer = new Timer(20000); //we wait 20 seconds to repeat failed requests _requestRepeatTimer.Elapsed += ReSendRequests; _connectionStatusUpdateTimer = new Timer(1000); _connectionStatusUpdateTimer.Elapsed += _connectionStatusUpdateTimer_Elapsed; _connectionStatusUpdateTimer.Start(); _requestCounter = 1; _client = client ?? new IBClient(); _client.Error += _client_Error; _client.ConnectionClosed += _client_ConnectionClosed; _client.RealTimeBar += _client_RealTimeBar; _client.HistoricalData += _client_HistoricalData; }
public IB(ISettings settings, IIBClient client = null, int?clientId = null) { Name = "Interactive Brokers"; _host = settings.ibClientHost; _port = settings.ibClientPort; _clientID = clientId.HasValue ? clientId.Value : settings.histClientIBID; _ibUseNewRealTimeDataSystem = settings.ibUseNewRealTimeDataSystem; _realTimeDataRequests = new Dictionary <int, RealTimeDataRequest>(); _realTimeRequestQueue = new Queue <int>(); _historicalDataRequests = new ConcurrentDictionary <int, HistoricalDataRequest>(); _historicalRequestQueue = new Queue <int>(); _arrivedHistoricalData = new ConcurrentDictionary <int, List <OHLCBar> >(); _subRequestIDMap = new Dictionary <int, int>(); _subRequestCount = new Dictionary <int, int>(); _requestIDMap = new Dictionary <int, int>(); _reverseRequestIDMap = new Dictionary <int, int>(); _requestRepeatTimer = new Timer(20000); //we wait 20 seconds to repeat failed requests _requestRepeatTimer.Elapsed += ReSendRequests; _connectionStatusUpdateTimer = new Timer(1000); _connectionStatusUpdateTimer.Elapsed += _connectionStatusUpdateTimer_Elapsed; _connectionStatusUpdateTimer.Start(); _requestCounter = 1; _client = client ?? new Client(); _client.Error += _client_Error; _client.ConnectionClosed += _client_ConnectionClosed; _client.RealTimeBar += _client_RealTimeBar; _client.HistoricalData += _client_HistoricalData; _client.HistoricalDataEnd += _client_HistoricalDataEnd; _client.HistoricalDataUpdate += _client_HistoricalDataUpdate; }