diff --git a/core/main_entry.py b/core/main_entry.py index 1bfb177..d4b029b 100644 --- a/core/main_entry.py +++ b/core/main_entry.py @@ -44,7 +44,6 @@ class MainEntry: else: # 创建托盘图标 self.icon = pystray.Icon("name", image, "标题", menu) - PrintLog(LogLevel.INFO, "创建托盘图标 start threading") self.trayThread = threading.Thread(target=self.icon.run, daemon=True) self.trayThread.start() # 在后台线程运行托盘 diff --git a/core/market_data/event_bus.py b/core/market_data/event_bus.py new file mode 100644 index 0000000..bbc34f6 --- /dev/null +++ b/core/market_data/event_bus.py @@ -0,0 +1,2 @@ +# 创建事件总线实例 +marketDataEventBus = EventBus() diff --git a/core/market_data/include.py b/core/market_data/include.py new file mode 100644 index 0000000..f876fbb --- /dev/null +++ b/core/market_data/include.py @@ -0,0 +1,8 @@ +from qmt import QmtV +from eventbus import marketDataEventBus + +qmtv:QmtV = None + +def init_qmtv(): + global qmtv + qmtv = QmtV() \ No newline at end of file diff --git a/core/market_data/qmt.py b/core/market_data/qmt.py index 98fdd3d..e25e0d4 100644 --- a/core/market_data/qmt.py +++ b/core/market_data/qmt.py @@ -9,7 +9,7 @@ from core.logger import LogLevel, PrintLog from xtquant.xttrader import XtQuantTrader, XtQuantTraderCallback from xtquant.xttype import StockAccount from xtquant import xtconstant, xtdata -import core.eventbus as eBus +from eventbus import marketDataEventBus, EventMarketActiveSwitch, MarketDataUpdate, MarketOrderCreated, MarketOrderTraded class QmtV(XtQuantTraderCallback): def __init__(self) -> None: @@ -118,7 +118,7 @@ class QmtV(XtQuantTraderCallback): # ====== 市场回调方法 -- 以下方法由XtQuantData调用 ====== def onDataUpdate(self, data): # 收集所有市场数据用于市场监控 - eBus.event_bus.publish(eBus.MarketDataUpdate, data) + marketDataEventBus.publish(marketDataEventBus.MarketDataUpdate, data) now = time.time() if now - self.lastMarketDataUpdateTimestamp < 5: self.isMarketActive = True @@ -133,7 +133,7 @@ class QmtV(XtQuantTraderCallback): if tmpMarketStatus != self.isMarketActive and tmpTime - self.lastMarketDataUpdateTimestamp < 5: tmpMarketStatus = 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秒 self.isMarketActive = False PrintLog(LogLevel.INFO, f'- [市场状态变更] {self.isMarketActive}') @@ -171,7 +171,7 @@ class QmtV(XtQuantTraderCallback): :param trade: XtTrade对象 :return: """ - eBus.event_bus.publish(eBus.MarketOrderTraded, trade) + marketDataEventBus.publish(MarketOrderTraded, trade) # stockCode = trade.stock_code # ctrl:SFGridStrategy = self.stock_trade_ctrl[stockCode] # # 如果存在对应的StockTradeController,则调用其onDataUpdate方法 @@ -182,7 +182,7 @@ class QmtV(XtQuantTraderCallback): 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}") - eBus.event_bus.publish(eBus.MarketOrderCreated, response) + marketDataEventBus.publish(MarketOrderCreated, response) # stockCode = response.order_remark # ctrl:SFGridStrategy = self.stock_trade_ctrl[stockCode] @@ -208,5 +208,3 @@ class QmtV(XtQuantTraderCallback): """ print(datetime.datetime.now(), status) - -qmtv = QmtV()