Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion Common/Brokerages/DefaultBrokerageMessageHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ public class DefaultBrokerageMessageHandler : IBrokerageMessageHandler
private readonly TimeSpan _openThreshold;
private readonly TimeSpan _initialDelay;
private CancellationTokenSource _cancellationTokenSource;
private bool _outsideLeanOrderWarningEmitted;

/// <summary>
/// Initializes a new instance of the <see cref="DefaultBrokerageMessageHandler"/> class
Expand Down Expand Up @@ -176,8 +177,13 @@ where exchange.IsOpenDuringBar(
/// </summary>
/// <param name="eventArgs">The new order event</param>
/// <returns>Whether the order should be added to the transaction handler</returns>
public bool HandleOrder(NewBrokerageOrderNotificationEventArgs eventArgs)
public virtual bool HandleOrder(NewBrokerageOrderNotificationEventArgs eventArgs)
{
if (!_outsideLeanOrderWarningEmitted)
{
_outsideLeanOrderWarningEmitted = true;
_algorithm.Error(Messages.DefaultBrokerageMessageHandler.IgnoreUnrecognizedOrder(eventArgs.Order.BrokerId.FirstOrDefault()));
}
return false;
}

Expand Down
11 changes: 11 additions & 0 deletions Common/Messages/Messages.Brokerages.cs
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,17 @@ public static string TimeUntilNextMarketOpen(TimeSpan timeUntilNextMarketOpen)
{
return Invariant($"DefaultBrokerageMessageHandler.Handle(): TimeUntilNextMarketOpen: {timeUntilNextMarketOpen}");
}

/// <summary>
/// Returns a string message notify about unrecognized orders that are not being observed by Lean
/// </summary>
/// <param name="brokerageOrderId">The brokerage order id.</param>
/// <returns>The string represent unrecognized message</returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static string IgnoreUnrecognizedOrder(string brokerageOrderId)
{
return $"Ignoring unrecognized order (BrokerId: {brokerageOrderId}). Please use 'SetBrokerageMessageHandler(...)' to set a custom brokerage message handler to optionally accept unknown orders.";
}
}

/// <summary>
Expand Down
Loading