diff --git a/pkg/strategy/grid2/active_order_recover.go b/pkg/strategy/grid2/active_order_recover.go index 16b93e9fd..87db11bf9 100644 --- a/pkg/strategy/grid2/active_order_recover.go +++ b/pkg/strategy/grid2/active_order_recover.go @@ -116,12 +116,16 @@ func syncActiveOrders(ctx context.Context, opts SyncActiveOrdersOpts) error { // no need to sync active order already in active orderbook, because we only need to know if it filled or not. delete(openOrdersMap, activeOrder.OrderID) } else { - opts.logger.Infof("found active order #%d is not in the open orders, updating...", activeOrder.OrderID) + opts.logger.Infof("[ActiveOrderRecover] found active order #%d is not in the open orders, updating...", activeOrder.OrderID) - if isActiveOrderBookUpdated, err := syncActiveOrder(ctx, opts.activeOrderBook, opts.orderQueryService, activeOrder.OrderID, syncBefore); err != nil { + isActiveOrderBookUpdated, err := syncActiveOrder(ctx, opts.activeOrderBook, opts.orderQueryService, activeOrder.OrderID, syncBefore) + if err != nil { opts.logger.WithError(err).Errorf("[ActiveOrderRecover] unable to query order #%d", activeOrder.OrderID) errs = multierr.Append(errs, err) - } else if !isActiveOrderBookUpdated { + continue + } + + if !isActiveOrderBookUpdated { opts.logger.Infof("[ActiveOrderRecover] active order #%d is updated in 3 min, skip updating...", activeOrder.OrderID) } } diff --git a/pkg/strategy/grid2/recover.go b/pkg/strategy/grid2/recover.go index 7859a84af..9418dd5a8 100644 --- a/pkg/strategy/grid2/recover.go +++ b/pkg/strategy/grid2/recover.go @@ -98,8 +98,8 @@ func (s *Strategy) recover(ctx context.Context) error { activeOrdersInTwinOrderBook, err := buildTwinOrderBook(pins, activeOrders) openOrdersInTwinOrderBook, err := buildTwinOrderBook(pins, openOrders) - s.logger.Infof("active orders' twin orderbook\n%s", activeOrdersInTwinOrderBook.String()) - s.logger.Infof("open orders in twin orderbook\n%s", openOrdersInTwinOrderBook.String()) + s.logger.Infof("[Recover] active orders' twin orderbook\n%s", activeOrdersInTwinOrderBook.String()) + s.logger.Infof("[Recover] open orders in twin orderbook\n%s", openOrdersInTwinOrderBook.String()) // remove index 0, because twin orderbook's price is from the second one pins = pins[1:] @@ -131,7 +131,9 @@ func (s *Strategy) recover(ctx context.Context) error { // case 1 if activeOrderID == 0 { - activeOrderBook.Add(openOrder.GetOrder()) + order := openOrder.GetOrder() + s.logger.Infof("[Recover] found open order #%d is not in the active orderbook, adding...", order.OrderID) + activeOrderBook.Add(order) // also add open orders into active order's twin orderbook, we will use this active orderbook to recover empty price grid activeOrdersInTwinOrderBook.AddTwinOrder(v, openOrder) continue @@ -140,11 +142,17 @@ func (s *Strategy) recover(ctx context.Context) error { // case 2 if openOrderID == 0 { order := activeOrder.GetOrder() - if isActiveOrderBookUpdated, err := syncActiveOrder(ctx, activeOrderBook, s.orderQueryService, order.OrderID, syncBefore); err != nil { + s.logger.Infof("[Recover] found active order #%d is not in the open orders, updating...", order.OrderID) + isActiveOrderBookUpdated, err := syncActiveOrder(ctx, activeOrderBook, s.orderQueryService, order.OrderID, syncBefore) + if err != nil { s.logger.WithError(err).Errorf("[Recover] unable to query order #%d", order.OrderID) - } else if !isActiveOrderBookUpdated { + continue + } + + if !isActiveOrderBookUpdated { s.logger.Infof("[Recover] active order #%d is updated in 3 min, skip updating...", order.OrderID) } + continue }