Skip to content

Commit cbe82ad

Browse files
Fix for handling order streaming client events always (#33)
- In some cases if alpaca was not used as a data provider, the order streaming client events might not be handled
1 parent 4234d26 commit cbe82ad

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

QuantConnect.AlpacaBrokerage/AlpacaBrokerage.cs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ private void Initialize(string apiKey, string apiKeySecret, string accessToken,
155155
if (_orderProvider != null)
156156
{
157157
_orderStreamingClient.OnTradeUpdate += (message) => _messageHandler.HandleNewMessage(message);
158+
WireStreamingClientEvents(_orderStreamingClient);
158159
}
159160
_messageHandler = new(HandleTradeUpdate);
160161
_symbolMapper = new AlpacaBrokerageSymbolMapper(_tradingClient);
@@ -179,18 +180,9 @@ private void Initialize(string apiKey, string apiKeySecret, string accessToken,
179180
// streaming options
180181
_optionsStreamingClient = new AlpacaStreamingClientWrapper(secretKey, SecurityType.Option);
181182

182-
foreach (var streamingClient in new IStreamingClient[] { _cryptoStreamingClient, _optionsStreamingClient, _equityStreamingClient, _orderStreamingClient })
183+
foreach (var streamingClient in new IStreamingClient[] { _cryptoStreamingClient, _optionsStreamingClient, _equityStreamingClient })
183184
{
184-
streamingClient.Connected += (obj) => StreamingClient_Connected(streamingClient, obj);
185-
streamingClient.OnWarning += (obj) => StreamingClient_OnWarning(streamingClient, obj);
186-
streamingClient.SocketOpened += () => StreamingClient_SocketOpened(streamingClient);
187-
streamingClient.SocketClosed += () => StreamingClient_SocketClosed(streamingClient);
188-
streamingClient.OnError += (obj) => StreamingClient_OnError(streamingClient, obj);
189-
190-
if (streamingClient is AlpacaStreamingClientWrapper wrapper)
191-
{
192-
wrapper.EnviromentFailure += (message) => Log.Trace($"AlpacaBrokerage.Initialize(): {message}");
193-
}
185+
WireStreamingClientEvents(streamingClient);
194186
}
195187

196188
_subscriptionManager = new EventBasedDataQueueHandlerSubscriptionManager();
@@ -208,6 +200,20 @@ private void Initialize(string apiKey, string apiKeySecret, string accessToken,
208200
}
209201
}
210202

203+
private void WireStreamingClientEvents(IStreamingClient streamingClient)
204+
{
205+
streamingClient.Connected += (obj) => StreamingClient_Connected(streamingClient, obj);
206+
streamingClient.OnWarning += (obj) => StreamingClient_OnWarning(streamingClient, obj);
207+
streamingClient.SocketOpened += () => StreamingClient_SocketOpened(streamingClient);
208+
streamingClient.SocketClosed += () => StreamingClient_SocketClosed(streamingClient);
209+
streamingClient.OnError += (obj) => StreamingClient_OnError(streamingClient, obj);
210+
211+
if (streamingClient is AlpacaStreamingClientWrapper wrapper)
212+
{
213+
wrapper.EnviromentFailure += (message) => Log.Trace($"AlpacaBrokerage.Initialize(): {message}");
214+
}
215+
}
216+
211217
private void StreamingClient_OnError(IStreamingClient client, Exception obj)
212218
{
213219
Log.Trace($"{nameof(StreamingClient_OnError)}({client.GetStreamingClientName()}): {obj}");

0 commit comments

Comments
 (0)