你运行的代码启动了 vn.py
的主界面,但缺少了策略、回测等应用模块的加载。默认情况下,MainEngine
不会自动加载所有模块,需要手动添加你需要的模块。
1. 问题分析
MainEngine
是 vn.py
的核心引擎,负责管理交易接口、策略模块等。
- 你只加载了
CtpGateway
(CTP 交易接口),但没有加载策略、回测等应用模块。
- 因此,主界面中没有显示策略、回测等功能。
2. 解决方法
你需要手动加载你需要的应用模块。以下是加载 CtaStrategy
(CTA 策略模块)和 CtaBacktester
(CTA 回测模块)的示例:
修改后的代码
from vnpy.event import Event, EventEngine
from vnpy.trader.engine import BaseEngine, MainEngine
from vnpy.trader.ui import MainWindow, create_qapp
from vnpy_ctp.gateway import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp # 导入 CTA 策略模块
from vnpy_ctabacktester import CtaBacktesterApp # 导入 CTA 回测模块
# 创建应用
qapp = create_qapp()
event_engine = EventEngine()
main_engine = MainEngine(event_engine)
# 添加 CTP 交易接口
main_engine.add_gateway(CtpGateway)
# 添加 CTA 策略模块
cta_strategy_app = main_engine.add_app(CtaStrategyApp)
# 添加 CTA 回测模块
cta_backtester_app = main_engine.add_app(CtaBacktesterApp)
# 创建主窗口
main_window = MainWindow(main_engine, event_engine)
main_window.showMaximized()
# 运行应用
qapp.exec()
3. 加载其他模块
如果你还需要其他模块(如价差交易、算法交易等),可以类似地加载。例如:
加载价差交易模块
from vnpy_spreadtrading import SpreadTradingApp
main_engine.add_app(SpreadTradingApp)
加载算法交易模块
from vnpy_algo_trading import AlgoTradingApp
main_engine.add_app(AlgoTradingApp)
4. 总结
- 默认情况下,
MainEngine
不会自动加载所有模块,需要手动添加你需要的模块。
- 使用
main_engine.add_app()
方法加载策略、回测等应用模块。
- 修改后的代码会显示策略、回测等功能。
通过以上方法,你可以在主界面中看到策略、回测等应用模块。如果有其他问题,欢迎继续讨论!
基于RAG技术开发的VeighNa AI助手,你的个人专属 Desk Quant