Skip to content

Commit 23f915f

Browse files
committed
fix gateway & order_update_interval
1 parent 581f539 commit 23f915f

File tree

5 files changed

+10
-2
lines changed

5 files changed

+10
-2
lines changed

howtrader/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "3.0.4-beta"
1+
__version__ = "3.0.5-beta"

howtrader/gateway/binance/binance_inverse_gateway.py

+2
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,8 @@ def on_order(self, order: OrderData) -> None:
216216

217217
else:
218218
traded: Decimal = order.traded - last_order.traded
219+
if traded < 0: # filter the order is not in sequence
220+
return None
219221
if traded > 0 or order.status != last_order.status:
220222
self.orders[order.orderid] = copy(order)
221223
super().on_order(copy(order))

howtrader/gateway/binance/binance_spot_gateway.py

+3
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,9 @@ def on_order(self, order: OrderData) -> None:
209209

210210
else:
211211
traded: Decimal = order.traded - last_order.traded
212+
if traded < 0: # filter the order is not in sequence
213+
return None
214+
212215
if traded > 0 or order.status != last_order.status:
213216
self.orders[order.orderid] = copy(order)
214217
super().on_order(copy(order))

howtrader/gateway/binance/binance_usdt_gateway.py

+3
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,9 @@ def on_order(self, order: OrderData) -> None:
219219

220220
else:
221221
traded: Decimal = order.traded - last_order.traded
222+
if traded < 0: # filter the order is not in sequence
223+
return None
224+
222225
if traded > 0 or order.status != last_order.status:
223226
self.orders[order.orderid] = copy(order)
224227
super().on_order(copy(order))

howtrader/trader/engine.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ def process_timer_event(self, event: Event) -> None:
475475
self.order_update_interval = 0
476476
orders: List[OrderData] = self.get_all_active_orders()
477477
for order in orders:
478-
if order.update_time and order.datetime and (datetime.now(order.datetime.tzinfo) - order.update_time).seconds > update_interval:
478+
if order.update_time and (datetime.now(order.update_time.tzinfo) - order.update_time).seconds > update_interval:
479479
req = order.create_query_request()
480480
self.main_engine.query_order(req, order.gateway_name)
481481

0 commit comments

Comments
 (0)