update for first release

This commit is contained in:
2025-11-17 16:36:09 +08:00
parent 6cae413956
commit f499d9a413
2 changed files with 42 additions and 10 deletions
+5 -4
View File
@@ -88,10 +88,11 @@ class SFGridStrategy:
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}] - 当前持仓: {self.tradeTarget.current_position} 当前价{lastPrice} 基准价格 {self.tradeTarget.getPriceGrid()[1]} 状态: {status} 启用交易线程: {'自动交易中' if self.tradeTarget.enabled else '交易已停止'}')
PrintLog(LogLevel.INFO, f'|- 市价更新[{self.tradeTarget.stock_code}-{self.tradeTarget.stock_name}] - 计划卖出价{self.tradeTarget.plan_sell_price}')
PrintLog(LogLevel.INFO, f'|- 市价更新[{self.tradeTarget.stock_code}-{self.tradeTarget.stock_name}] - 网格索引{index}, 网格价格{self.tradeTarget.getPriceGrid()[index]}')
PrintLog(LogLevel.INFO, f'|- 市价更新[{self.tradeTarget.stock_code}-{self.tradeTarget.stock_name}] - 计划买入价{self.tradeTarget.plan_buy_price}')
PrintLog(LogLevel.INFO, f'|- 市价更新[{self.tradeTarget.stock_code}-{self.tradeTarget.stock_name}] - 当前持仓: {self.tradeTarget.current_position} 当前价{lastPrice} 状态: {status} 启用交易线程: {'自动交易中' if self.tradeTarget.enabled else '交易已停止'}')
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]}')
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]
+36 -5
View File
@@ -22,6 +22,8 @@ class TradeTargetUI(ttk.Frame):
self.stockCodeIdMap:dict[str, int] = {}
self.strategy_ctrl:dict[int, SFGridStrategy] = {} # stock_code->trade_target
self.listening_stock = []
# 监控价格,默认值为10
self.monitor_price = 10.0
self.init_trade_target_pool()
@@ -61,7 +63,8 @@ class TradeTargetUI(ttk.Frame):
else:
# 非目标交易,发布市场数据更新事件用于市场监控
lastPrice = tickData['lastPrice']
if lastPrice == 10 or stock_code in self.listening_stock:
# 使用用户设置的监控价格替代硬编码的10
if lastPrice == self.monitor_price or stock_code in self.listening_stock:
# PrintLog(LogLevel.INFO, f'股票代码: {stock_code} 监听中, 市场数据更新 {tickData["lastPrice"]}')
# 发布市场数据更新事件用于市场监控
market_target = SFGridTradeTarget()
@@ -125,11 +128,17 @@ class TradeTargetUI(ttk.Frame):
command=self.btnHandlerStopSelectedTrade, width=12).pack(side=tk.LEFT, padx=2)
ttk.Button(toolbar_frame, text="🛠 交易设置",
command=self.btnHandlerTradeSettings, width=12).pack(side=tk.LEFT, padx=2)
# ttk.Button(toolbar_frame, text="🛠 网格修正(停用)",
# command=self.btnHandlerGridCorrect,
# width=12).pack(side=tk.LEFT, padx=2)
ttk.Button(toolbar_frame, text="▣ 边栏",
command=self.btnHandlerToggleMarketMonitor, width=12).pack(side=tk.RIGHT, padx=2)
command=self.btnHandlerToggleMarketMonitor, width=8).pack(side=tk.RIGHT, padx=2)
# 添加价格监控输入字段和确认按钮
ttk.Button(toolbar_frame, text="确认",
command=self.btnHandlerSetMonitorPrice, width=8).pack(side=tk.RIGHT, padx=2)
self.monitor_price_entry = ttk.Entry(toolbar_frame, width=8)
self.monitor_price_entry.insert(0, str(self.monitor_price))
self.monitor_price_entry.pack(side=tk.RIGHT, padx=2)
ttk.Label(toolbar_frame, text="价格").pack(side=tk.RIGHT, padx=(20, 2))
ttk.Label(toolbar_frame, text="监控配置").pack(side=tk.RIGHT, padx=(20, 2))
# 表格区域
self.create_tables_area(main_frame)
@@ -1116,3 +1125,25 @@ class TradeTargetUI(ttk.Frame):
stock_code_entry.bind('<Return>', lambda event: confirm_add())
PrintLog(LogLevel.INFO, "点击添加交易标的按钮")
def btnHandlerSetMonitorPrice(self):
"""设置监控价格"""
try:
# 获取输入的价格
price_str = self.monitor_price_entry.get()
new_price = float(price_str)
# 更新监控价格
self.monitor_price = new_price
# 清空当前监控的数据
self.marketData.clear()
self.listening_stock.clear()
# 清空市场监控表格
for item in self.market_table.get_children():
self.market_table.delete(item)
PrintLog(LogLevel.INFO, f"监控价格已更新为: {new_price}")
except ValueError:
messagebox.showerror("错误", "请输入有效的数字")