This commit is contained in:
2025-12-05 18:06:39 +08:00
parent c59d29d52e
commit b435f12c49
4 changed files with 15 additions and 8 deletions
-1
View File
@@ -44,7 +44,6 @@ class MainEntry:
else: else:
# 创建托盘图标 # 创建托盘图标
self.icon = pystray.Icon("name", image, "标题", menu) self.icon = pystray.Icon("name", image, "标题", menu)
PrintLog(LogLevel.INFO, "创建托盘图标 start threading")
self.trayThread = threading.Thread(target=self.icon.run, daemon=True) self.trayThread = threading.Thread(target=self.icon.run, daemon=True)
self.trayThread.start() self.trayThread.start()
# 在后台线程运行托盘 # 在后台线程运行托盘
+2
View File
@@ -0,0 +1,2 @@
# 创建事件总线实例
marketDataEventBus = EventBus()
+8
View File
@@ -0,0 +1,8 @@
from qmt import QmtV
from eventbus import marketDataEventBus
qmtv:QmtV = None
def init_qmtv():
global qmtv
qmtv = QmtV()
+5 -7
View File
@@ -9,7 +9,7 @@ from core.logger import LogLevel, PrintLog
from xtquant.xttrader import XtQuantTrader, XtQuantTraderCallback from xtquant.xttrader import XtQuantTrader, XtQuantTraderCallback
from xtquant.xttype import StockAccount from xtquant.xttype import StockAccount
from xtquant import xtconstant, xtdata from xtquant import xtconstant, xtdata
import core.eventbus as eBus from eventbus import marketDataEventBus, EventMarketActiveSwitch, MarketDataUpdate, MarketOrderCreated, MarketOrderTraded
class QmtV(XtQuantTraderCallback): class QmtV(XtQuantTraderCallback):
def __init__(self) -> None: def __init__(self) -> None:
@@ -118,7 +118,7 @@ class QmtV(XtQuantTraderCallback):
# ====== 市场回调方法 -- 以下方法由XtQuantData调用 ====== # ====== 市场回调方法 -- 以下方法由XtQuantData调用 ======
def onDataUpdate(self, data): def onDataUpdate(self, data):
# 收集所有市场数据用于市场监控 # 收集所有市场数据用于市场监控
eBus.event_bus.publish(eBus.MarketDataUpdate, data) marketDataEventBus.publish(marketDataEventBus.MarketDataUpdate, data)
now = time.time() now = time.time()
if now - self.lastMarketDataUpdateTimestamp < 5: if now - self.lastMarketDataUpdateTimestamp < 5:
self.isMarketActive = True self.isMarketActive = True
@@ -133,7 +133,7 @@ class QmtV(XtQuantTraderCallback):
if tmpMarketStatus != self.isMarketActive and tmpTime - self.lastMarketDataUpdateTimestamp < 5: if tmpMarketStatus != self.isMarketActive and tmpTime - self.lastMarketDataUpdateTimestamp < 5:
tmpMarketStatus = self.isMarketActive tmpMarketStatus = self.isMarketActive
PrintLog(LogLevel.INFO, f'- [市场状态变更] {self.isMarketActive}') PrintLog(LogLevel.INFO, f'- [市场状态变更] {self.isMarketActive}')
eBus.event_bus.publish(eBus.EventMarketActiveSwitch, self.isMarketActive) marketDataEventBus.publish(EventMarketActiveSwitch, self.isMarketActive)
if tmpMarketStatus and self.isMarketActive and tmpTime - self.lastMarketDataUpdateTimestamp > 10: # 上次更新市场状态已经超过10秒 if tmpMarketStatus and self.isMarketActive and tmpTime - self.lastMarketDataUpdateTimestamp > 10: # 上次更新市场状态已经超过10秒
self.isMarketActive = False self.isMarketActive = False
PrintLog(LogLevel.INFO, f'- [市场状态变更] {self.isMarketActive}') PrintLog(LogLevel.INFO, f'- [市场状态变更] {self.isMarketActive}')
@@ -171,7 +171,7 @@ class QmtV(XtQuantTraderCallback):
:param trade: XtTrade对象 :param trade: XtTrade对象
:return: :return:
""" """
eBus.event_bus.publish(eBus.MarketOrderTraded, trade) marketDataEventBus.publish(MarketOrderTraded, trade)
# stockCode = trade.stock_code # stockCode = trade.stock_code
# ctrl:SFGridStrategy = self.stock_trade_ctrl[stockCode] # ctrl:SFGridStrategy = self.stock_trade_ctrl[stockCode]
# # 如果存在对应的StockTradeController,则调用其onDataUpdate方法 # # 如果存在对应的StockTradeController,则调用其onDataUpdate方法
@@ -182,7 +182,7 @@ class QmtV(XtQuantTraderCallback):
def on_order_stock_async_response(self, response:XtOrderResponse): def on_order_stock_async_response(self, response:XtOrderResponse):
# print(f"委托回调 on_order_stock_async_response 投资备注 {response.order_id} {response.seq} {response.error_msg}{response.strategy_name} {response.order_remark}") # print(f"委托回调 on_order_stock_async_response 投资备注 {response.order_id} {response.seq} {response.error_msg}{response.strategy_name} {response.order_remark}")
eBus.event_bus.publish(eBus.MarketOrderCreated, response) marketDataEventBus.publish(MarketOrderCreated, response)
# stockCode = response.order_remark # stockCode = response.order_remark
# ctrl:SFGridStrategy = self.stock_trade_ctrl[stockCode] # ctrl:SFGridStrategy = self.stock_trade_ctrl[stockCode]
@@ -208,5 +208,3 @@ class QmtV(XtQuantTraderCallback):
""" """
print(datetime.datetime.now(), status) print(datetime.datetime.now(), status)
qmtv = QmtV()