From fcadcb86d2e9c854040f51c90fef58b4dd380125 Mon Sep 17 00:00:00 2001 From: "GDP\\solonot" Date: Tue, 18 Nov 2025 13:34:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/sfgrid/sfgrid_strategy.py | 12 ++++++------ core/sfgrid/sfgrid_ui.py | 11 +++++++---- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/core/sfgrid/sfgrid_strategy.py b/core/sfgrid/sfgrid_strategy.py index 69a2c3f..c836975 100644 --- a/core/sfgrid/sfgrid_strategy.py +++ b/core/sfgrid/sfgrid_strategy.py @@ -96,12 +96,6 @@ class SFGridStrategy: orderType = -1 index: int = self.tradeTarget.grid_index # pyright: ignore[reportAssignmentType] orderRemark= "" - status = "未建初始仓" if self.tradeTarget.status == 0 else "已建初始仓" - PrintLog(LogLevel.INFO, f'|- 市价更新[{self.tradeTarget.stock_code}-{self.tradeTarget.stock_name}] - 当前持仓 : \t{self.tradeTarget.current_position}') - PrintLog(LogLevel.INFO, f'|- 市价更新[{self.tradeTarget.stock_code}-{self.tradeTarget.stock_name}] - 当前价格 : \t{lastPrice}') - PrintLog(LogLevel.INFO, f'|- 市价更新[{self.tradeTarget.stock_code}-{self.tradeTarget.stock_name}] - 计划卖出价 : \t{self.tradeTarget.plan_sell_price:.3f}') - PrintLog(LogLevel.INFO, f'|- 市价更新[{self.tradeTarget.stock_code}-{self.tradeTarget.stock_name}] - 网格价格({index}): \t{self.tradeTarget.getPriceGrid()[index]:.3f}') - PrintLog(LogLevel.INFO, f'|- 市价更新[{self.tradeTarget.stock_code}-{self.tradeTarget.stock_name}] - 计划买入价 : \t{self.tradeTarget.plan_buy_price:.3f}') if self.tradeTarget.enabled and self.tradeTarget.status == 0 and lastPrice <= inTradeTarget.getPriceGrid()[1]: # 已启用,未建仓,准备建仓单信息 PrintLog(LogLevel.INFO, f'|- 市价更新[{self.tradeTarget.stock_code}-{self.tradeTarget.stock_name}] - 准备建仓单信息') orderPrice = inTradeTarget.getPriceGrid()[1] @@ -120,6 +114,12 @@ class SFGridStrategy: orderType = xtconstant.STOCK_SELL orderRemark = OrderTypeSell + # status = "未建初始仓" if self.tradeTarget.status == 0 else "已建初始仓" + PrintLog(LogLevel.INFO, f'|- 市价更新[{self.tradeTarget.stock_code}-{self.tradeTarget.stock_name}] - 当前持仓 : \t{self.tradeTarget.current_position}') + PrintLog(LogLevel.INFO, f'|- 市价更新[{self.tradeTarget.stock_code}-{self.tradeTarget.stock_name}] - 当前价格 : \t{lastPrice}') + PrintLog(LogLevel.INFO, f'|- 市价更新[{self.tradeTarget.stock_code}-{self.tradeTarget.stock_name}] - 计划卖出价 : \t{self.tradeTarget.plan_sell_price:.3f}') + PrintLog(LogLevel.INFO, f'|- 市价更新[{self.tradeTarget.stock_code}-{self.tradeTarget.stock_name}] - 网格价格({index}): \t{self.tradeTarget.getPriceGrid()[index]:.3f}') + PrintLog(LogLevel.INFO, f'|- 市价更新[{self.tradeTarget.stock_code}-{self.tradeTarget.stock_name}] - 计划买入价 : \t{self.tradeTarget.plan_buy_price:.3f}') if orderType != -1: orders = qmtv.queryPendingOrder(str(self.tradeTarget.stock_code), self.getName()) if len([order for order in orders if order.order_type == orderType and order.price == orderPrice]) > 0: diff --git a/core/sfgrid/sfgrid_ui.py b/core/sfgrid/sfgrid_ui.py index b0e6bfe..6699c2b 100644 --- a/core/sfgrid/sfgrid_ui.py +++ b/core/sfgrid/sfgrid_ui.py @@ -57,7 +57,8 @@ class TradeTargetUI(ttk.Frame): if stock_code in self.stockCodeIdMap: id:int = self.stockCodeIdMap[stock_code] tradeTarget = self.tradeTargetData[id] - PrintLog(LogLevel.INFO, f'|- 市价更新[{tradeTarget.targetName()}] - {id}市场数据更新=======================') + timeStr = datetime.fromtimestamp(tickData['time']/1000) + PrintLog(LogLevel.INFO, f'|- 市价更新[{tradeTarget.targetName()}] - {timeStr.strftime("%H:%M:%S")} 市场数据更新======================={id}') lastPrice = float("{:.3f}".format(tickData['lastPrice'])) tradeTarget.market_price = lastPrice # type: ignore self.updateTradeTarget(tradeTarget, False, True) # 市价更新 @@ -66,7 +67,6 @@ class TradeTargetUI(ttk.Frame): lastPrice = tickData['lastPrice'] # 使用用户设置的监控价格替代硬编码的10 if lastPrice == self.monitor_price or stock_code in self.listening_stock: - # PrintLog(LogLevel.INFO, f'股票代码: {stock_code} 监听中, 市场数据更新 {tickData["lastPrice"]}') # 发布市场数据更新事件用于市场监控 market_target = SFGridTradeTarget() market_target.stock_code = stock_code @@ -1057,8 +1057,11 @@ class TradeTargetUI(ttk.Frame): if result: id = target.get_id() # try: - ctrl = self.strategy_ctrl[id] - ctrl.deleteTradeTarget(target) + if id in self.strategy_ctrl: + ctrl = self.strategy_ctrl[id] + ctrl.deleteTradeTarget(target) + else: + self.onTradeTargetDeleted(target) PrintLog(LogLevel.INFO, f"已发送删除请求: {target.stock_code} - {target.stock_name}") def onTradeTargetDeleted(self, target: SFGridTradeTarget):