#!/usr/bin/env python3 """ VNPY RPC 交易核心服务启动脚本 启动 vnpy 交易核心,开启 RPC 服务端,供 VNPY Web Trader 连接 按照 vnpy 官方标准双进程架构: - 这个进程:交易核心 + RPC 服务端 (端口 2018/4102) - 另一个进程:VNPY Web Trader (端口 8000) """ from vnpy.trader.event_engine import EventEngine from vnpy.trader.main_engine import MainEngine from vnpy.rpc import RpcServer # 导入你的 gateway from vnpy_ctp import CtpGateway # from vnpy_tap import TapGateway # from vnpy_ib import IbGateway # 其他 gateway 根据需要添加 # 导入你的策略应用 from vnpy_ctastrategy import CtaStrategyApp # from vnpy_portfoliostrategy import PortfolioStrategyApp # from vnpy_spreadtrading import SpreadTradingApp def main(): # 创建事件引擎和主引擎 event_engine = EventEngine() main_engine = MainEngine(event_engine) # 添加 gateway main_engine.add_gateway(CtpGateway) # 如果你有其他gateway,在这里添加 # main_engine.add_gateway(TapGateway) # 添加策略应用 main_engine.add_app(CtaStrategyApp) # 如果需要其他应用,在这里添加 # main_engine.add_app(PortfolioStrategyApp) # 启动 RPC 服务端 # 请求端口: 2018,订阅端口: 4102 rpc_server = RpcServer( main_engine, ("0.0.0.0", 2018), ("0.0.0.0", 4102) ) print("=" * 50) print("VNPY RPC 交易核心服务启动") print(f"RPC 请求地址: tcp://0.0.0.0:2018") print(f"RPC 订阅地址: tcp://0.0.0.0:4102") print("请确保已经在 vnpy 配置中配置好你的 gateway") print("=" * 50) # 启动 RPC 服务 rpc_server.start() # 保持进程运行 print("RPC 服务已启动,按 Ctrl+C 退出") try: input() except (KeyboardInterrupt, EOFError): pass print("RPC 服务退出") if __name__ == "__main__": main()