From 1255ab21ba2f18a358a5b390f0ed064555fc3cbd Mon Sep 17 00:00:00 2001 From: yanweidong Date: Thu, 10 Sep 2026 20:38:00 +0800 Subject: [PATCH] fix bug --- py-client/libs/order.py | 5 ++--- py-client/strategy/trend/open.py | 3 ++- py-client/strategy/zt/open.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/py-client/libs/order.py b/py-client/libs/order.py index e488b5b..f32d639 100644 --- a/py-client/libs/order.py +++ b/py-client/libs/order.py @@ -35,7 +35,6 @@ class OrderBook: def __init__( self, order_prefix: str, lock_timeout_sec: int = 180, cancel_timeout_sec: float = 30 ) -> None: - self.order_prefix = order_prefix self.lock_timeout_sec = max(1, lock_timeout_sec) self.cancel_timeout_sec = timedelta(seconds=cancel_timeout_sec) self.data: list[OrderItem] = [] @@ -45,9 +44,9 @@ class OrderBook: ) self.mutex = Lock() - def new_order_id(self, side: str) -> str: + def new_order_id(self,prefix:str, side: str) -> str: """生成带策略前缀的本地订单号。""" - return f"{self.order_prefix}-{side}-{secrets.token_hex(10)}" + return f"{prefix}-{side}-{secrets.token_hex(10)}" def busy(self, code: str, side: str) -> bool: """判断证券是否存在仍在处理中的同方向委托。""" diff --git a/py-client/strategy/trend/open.py b/py-client/strategy/trend/open.py index 8bfe6bf..3a6e47e 100644 --- a/py-client/strategy/trend/open.py +++ b/py-client/strategy/trend/open.py @@ -80,7 +80,8 @@ def do_open( run: Runtime, code: str, volume: int, signal_key: str, price: float ) -> None: """生成本地订单号并按最新价提交开仓委托。""" - order_id = run.orders.new_order_id("BUY") + prefix = signal_key[:4].upper() + order_id = run.orders.new_order_id(prefix,"BUY") request = PlaceOrderRequest( OP_BUY, code, diff --git a/py-client/strategy/zt/open.py b/py-client/strategy/zt/open.py index ae7ca3c..960d30e 100644 --- a/py-client/strategy/zt/open.py +++ b/py-client/strategy/zt/open.py @@ -42,7 +42,7 @@ def open_signal(run: Runtime, ticks, signals, available: float) -> float: # 等待价格从观察低点反弹,防止直接接下跌中的“飞刀”。 if not run.open_watch.triggered("ZT 建仓", item.code, price): continue - order_id = run.orders.new_order_id("base") + order_id = run.orders.new_order_id("ZT","base") request = PlaceOrderRequest( OP_BUY, item.code, volume, order_id, "zt" )