diff --git a/requirements-docker.txt b/requirements-docker.txt index e92de64..06601e7 100644 --- a/requirements-docker.txt +++ b/requirements-docker.txt @@ -20,6 +20,13 @@ nbformat>=5.10.4 requests>=2.32.0 qrcode>=7.4.2 +# VeighNa Gateway 扩展(可选,根据需要安装) +# 注意:这些是独立的扩展包,未安装时不影响核心功能 +# vnpy_ctp +# vnpy_ib +# vnpy_okx +# vnpy_binance + # ============================================ # Web 服务依赖 # ============================================ diff --git a/sanguo_web/services/main_service.py b/sanguo_web/services/main_service.py index 7a9e68e..4bc1e82 100644 --- a/sanguo_web/services/main_service.py +++ b/sanguo_web/services/main_service.py @@ -21,10 +21,23 @@ try: ) from vnpy.trader.constant import Exchange, Direction, OrderType, Offset from vnpy.trader.setting import SETTINGS - from vnpy.gateway.ctp import CtpGateway - from vnpy.gateway.ib import IbGateway - from vnpy.gateway.okx import OkxGateway - from vnpy.gateway.binance import BinanceGateway + # Gateway modules are imported as independent packages + try: + from vnpy_ctp import CtpGateway + except ImportError: + CtpGateway = None + try: + from vnpy_ib import IbGateway + except ImportError: + IbGateway = None + try: + from vnpy_okx import OkxGateway + except ImportError: + OkxGateway = None + try: + from vnpy_binance import BinanceGateway + except ImportError: + BinanceGateway = None VNPY_AVAILABLE = True except ImportError: VNPY_AVAILABLE = False @@ -78,11 +91,15 @@ class VeighNaService: # 创建主引擎 main_engine = MainEngine(event_engine) - # 添加网关 - main_engine.add_gateway(CtpGateway) - main_engine.add_gateway(IbGateway) - main_engine.add_gateway(OkxGateway) - main_engine.add_gateway(BinanceGateway) + # 添加网关(仅添加已安装的) + if CtpGateway: + main_engine.add_gateway(CtpGateway) + if IbGateway: + main_engine.add_gateway(IbGateway) + if OkxGateway: + main_engine.add_gateway(OkxGateway) + if BinanceGateway: + main_engine.add_gateway(BinanceGateway) return main_engine, event_engine