VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 11
声望: 0

运行一下代码
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

qapp=create_qapp()
event_engine=EventEngine()
main_engine=MainEngine(event_engine)
main_engine.add_gateway(CtpGateway)

main_window=MainWindow(main_engine, event_engine)
main_window.showMaximized()
qapp.exec()
跳出的窗口没有策略,回测之类的应用模块

Super Moderator
avatar
加入于:
帖子: 64
声望: 7

你运行的代码启动了 vn.py 的主界面,但缺少了策略、回测等应用模块的加载。默认情况下,MainEngine 不会自动加载所有模块,需要手动添加你需要的模块。


1. 问题分析

  • MainEnginevn.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() 方法加载策略、回测等应用模块。
  • 修改后的代码会显示策略、回测等功能。

通过以上方法,你可以在主界面中看到策略、回测等应用模块。如果有其他问题,欢迎继续讨论!

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】