Skip to content

Commit

Permalink
More adjustments to simulate TIMING of order fills properly closing t…
Browse files Browse the repository at this point in the history
…ime and execute cancellation of orders that won't fill so soon
  • Loading branch information
jbax committed Dec 15, 2019
1 parent 15716f4 commit b4814f5
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 4 deletions.
Expand Up @@ -618,7 +618,7 @@ public synchronized void cancelStaleOrdersFor(Trader trader) {
for (Map.Entry<String, Order> entry : pendingOrders.entrySet()) {
Order order = entry.getValue();
OrderManager orderManager = orderManagers.getOrDefault(order.getSymbol(), DEFAULT_ORDER_MANAGER);
if (orderManager.cancelToReleaseFundsFor(order, trader)) {
if (orderManager.cancelToReleaseFundsFor(order, traderOf(order), trader)) {
order.cancel();
if (order.getStatus() == CANCELLED) {
cancelOrder(orderManager, order);
Expand Down
Expand Up @@ -70,8 +70,8 @@ public void unchanged(Order order, Trader trader) {
}

@Override
public boolean cancelToReleaseFundsFor(Order order, Trader trader) {
if (order.getTimeElapsed(trader.getCandle().closeTime) > maxTimeToKeepOrderOpen.ms / 2) {
public boolean cancelToReleaseFundsFor(Order order, Trader currentTrader, Trader newSymbolTrader) {
if (order.getTimeElapsed(currentTrader.getCandle().closeTime) > maxTimeToKeepOrderOpen.ms / 2) {
order.cancel();
return true;
}
Expand Down
Expand Up @@ -97,9 +97,10 @@ default TimeInterval getOrderUpdateFrequency() {
* The details of the other symbol that cannot be traded due to lack of funds can be obtained from the {@code newSymbolTrader} object
*
* @param order an order that has not been completely filled yet.
* @param orderTrader the {@link Trader} of the current order that has not been filled.
* @param newSymbolTrader the {@link Trader} of the symbol that could not be traded due to lack of funds.
*
* @return {@code true} if the given order can be cancelled, otherwise {@code false}.
*/
boolean cancelToReleaseFundsFor(Order order, Trader newSymbolTrader);
boolean cancelToReleaseFundsFor(Order order, Trader orderTrader, Trader newSymbolTrader);
}

0 comments on commit b4814f5

Please sign in to comment.