完成添加,删除,开启,停止方法的重构
This commit is contained in:
@@ -36,8 +36,6 @@ class SFGridController:
|
||||
|
||||
|
||||
def registerEventHandler(self):
|
||||
event_bus.subscribe(ActionEventEnableTrade, self.onEnableTrade)
|
||||
event_bus.subscribe(ActionEventDisableTrade, self.onDisableTrade)
|
||||
event_bus.subscribe(ActionEventAddTradeTarget, self.onAddTradeTarget)
|
||||
event_bus.subscribe(ActionEventDeleteTradeTarget, self.onDeleteTradeTarget)
|
||||
event_bus.subscribe(ActionEventGridFix, self.onGridFix)
|
||||
@@ -90,14 +88,6 @@ class SFGridController:
|
||||
|
||||
except Exception as e:
|
||||
PrintLog(LogLevel.ERROR, f'新增交易标的失败 {stock_code} {e}')
|
||||
|
||||
def onEnableTrade(self, id: int):
|
||||
pass
|
||||
# self.start_stock_trade(id)
|
||||
|
||||
def onDisableTrade(self, id: int):
|
||||
pass
|
||||
# self.pause_stock_trade(id)
|
||||
|
||||
def onGridFix(self, data: GridFixData):
|
||||
"""处理网格修正事件"""
|
||||
@@ -139,23 +129,6 @@ class SFGridController:
|
||||
# else:
|
||||
# PrintLog(LogLevel.INFO, f"\t创建标的交易控制器 {tradeTarget.stock_code} {getInstrumentName(tradeTarget.stock_code)}")
|
||||
|
||||
|
||||
# def pause_stock_trade(self, id: int):
|
||||
# localTarget: TradeTarget = self.instrument_pool[id]
|
||||
# print(f'暂停标的交易 {localTarget.stock_code} - enabled {localTarget.enabled}')
|
||||
# if localTarget.stock_code in self.stock_trade_ctrl:
|
||||
# tradeController: SFGridStrategy = self.stock_trade_ctrl[localTarget.stock_code]
|
||||
# tradeTarget = tradeController.enabledTrading(False)
|
||||
# orders = queryPendingOrder(localTarget.stock_code, tradeController.getName(), self.xt_trader, self.account) # type: ignore
|
||||
# for order in orders:
|
||||
# qmtv.xttrader.cancel_order_stock_async(qmtv.account, order.order_id)
|
||||
# print(f'取消未成交订单 {len(orders)}')
|
||||
# self.instrument_pool[id] = tradeTarget
|
||||
# event_bus.publish(ResultEventTradeDisabled, tradeTarget)
|
||||
# else:
|
||||
# print(f"标的交易控制器不存在 {localTarget.stock_code} {localTarget.stock_name}\n")
|
||||
|
||||
|
||||
# ====== 市场回调方法 -- 以下方法由XtQuantData调用 ======
|
||||
# def onDataUpdate(self, data):
|
||||
# # 收集所有市场数据用于市场监控
|
||||
|
||||
@@ -352,7 +352,6 @@ class TradeTargetUI(ttk.Frame):
|
||||
]
|
||||
|
||||
self.trade_table.insert('', tk.END, values=values)
|
||||
|
||||
|
||||
|
||||
def get_status_text(self, status):
|
||||
@@ -408,13 +407,16 @@ class TradeTargetUI(ttk.Frame):
|
||||
)
|
||||
|
||||
if result:
|
||||
PrintLog(LogLevel.INFO, f'启动标的交易 {target.targetName()}')
|
||||
target.enabled = True # type: ignore
|
||||
eBus.event_bus.publish(ActionEventEnableTrade, target.get_id())
|
||||
# self.add_log("INFO", f"已启动交易: {target.stock_code} - {target.stock_name}")
|
||||
# messagebox.showinfo("启动成功", f"已启动 {target.stock_code} ({target.stock_name}) 的交易")
|
||||
|
||||
def on_trade_enabled(self, target: SFGridTradeTarget):
|
||||
eBus.event_bus.publish(ActionEventEnableTrade, target)
|
||||
id = target.get_id()
|
||||
if id in self.strategy_ctrl:
|
||||
tradeController: SFGridStrategy = self.strategy_ctrl[target.get_id()]
|
||||
tradeTarget = tradeController.enabledTrading(True)
|
||||
self.tradeTargetData[id] = tradeTarget
|
||||
else:
|
||||
PrintLog(LogLevel.INFO, f"\t创建标的交易控制器 {target.targetName()}")
|
||||
|
||||
def pause_selected_trade(self):
|
||||
"""暂停选中的交易"""
|
||||
@@ -434,8 +436,18 @@ class TradeTargetUI(ttk.Frame):
|
||||
)
|
||||
|
||||
if result:
|
||||
target.enabled = False # type: ignore
|
||||
eBus.event_bus.publish(ActionEventDisableTrade, target.get_id())
|
||||
PrintLog(LogLevel.INFO, f'暂停标的交易 {target.targetName()}')
|
||||
id = target.get_id()
|
||||
if id in self.strategy_ctrl:
|
||||
tradeController: SFGridStrategy = self.strategy_ctrl[target.get_id()]
|
||||
tradeTarget = tradeController.enabledTrading(False)
|
||||
orders = qmtv.queryPendingOrder(target.stock_code, tradeController.getName()) # type: ignore
|
||||
for order in orders:
|
||||
qmtv.xttrader.cancel_order_stock_async(qmtv.account, order.order_id)
|
||||
print(f'取消未成交订单 {len(orders)}')
|
||||
self.tradeTargetData[id] = tradeTarget
|
||||
else:
|
||||
print(f"标的交易控制器不存在 {target.stock_code} {target.stock_name}\n")
|
||||
# self.add_log("INFO", f"已暂停交易: {target.stock_code} - {target.stock_name}")
|
||||
# messagebox.showinfo("暂停成功", f"已暂停 {target.stock_code} ({target.stock_name}) 的交易")
|
||||
|
||||
@@ -516,7 +528,6 @@ class TradeTargetUI(ttk.Frame):
|
||||
|
||||
PrintLog(LogLevel.INFO, "点击添加交易标的按钮")
|
||||
|
||||
|
||||
def refresh_table(self):
|
||||
"""刷新表格数据"""
|
||||
# 保存当前选中的项
|
||||
|
||||
Reference in New Issue
Block a user