Skip to content

Commit 96c10f2

Browse files
Handle optional LocateBroker order properties
1 parent 391d8a3 commit 96c10f2

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

QuantConnect.Wolverine/WolverineOrderRoutingSessionHandler.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ public bool PlaceOrder(Order order)
9595
};
9696
wexOrder.SetField(new CustomerOrFirm(CustomerOrFirm.CUSTOMER));
9797

98+
SetOrderLocateBroker(order, wexOrder);
9899
if (order.Symbol.SecurityType.IsOption())
99100
{
100101
wexOrder.SetField(GetOrderSideType(order));
@@ -150,6 +151,27 @@ public bool UpdateOrder(Order order)
150151
throw new NotImplementedException();
151152
}
152153

154+
private void SetOrderLocateBroker(Order order, NewOrderSingle wexOrder)
155+
{
156+
// shorting equities
157+
if (order.Symbol.SecurityType != SecurityType.Equity || order.Quantity > 0)
158+
{
159+
return;
160+
}
161+
162+
var wolverineOrderProperties = order.Properties as WolverineOrderProperties;
163+
if (wolverineOrderProperties != null && !string.IsNullOrEmpty(wolverineOrderProperties.LocateBroker))
164+
{
165+
wexOrder.SetField(new LocateReqd(false));
166+
wexOrder.SetField(new StringField(5700, wolverineOrderProperties.LocateBroker));
167+
}
168+
else
169+
{
170+
// Yes means brokers pick up the locate
171+
wexOrder.SetField(new LocateReqd(true));
172+
}
173+
}
174+
153175
private string GetOrderExchange(Order order)
154176
{
155177
var exchangeDestination = string.Empty;

0 commit comments

Comments
 (0)