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
+5 -7
View File
@@ -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()