VNPY 使用指南¶
不建议直接修改项目提供的策略
写自己的策略,以 my_ 开头来命名自己的策略文件名称(不会被 git 添加到仓库)
安装相关包¶
pip install vnpy
pip install vnpy_ctp
pip install vnpy_ctastrategy
pip install vnpy_ctabacktester
pip install vnpy_portfoliostrategy
pip install vnpy_datamanager
pip install vnpy_tushare
pip install vnpy_udata
pip install vnpy_tqsdk
pip install vnpy_mysql
设置环境变量¶
在 conda
环境,启动 vnpy 窗口,需要设置的环境变量,${anaconda3}
替换成自己 anaconda3
的地址
QT_QPA_PLATFORM_PLUGIN_PATH
${anaconda3}\envs\chanlun\Lib\site-packages\PySide6\plugins\platforms
VNPY 配置修改¶
修改 chanlun_pro\src\cl_vnpy\.vntrader\vt_setting.json
配置文件
修改 C:\Users\${电脑用户名}\.vntrader\vt_setting.json
配置文件 (使用 Jupyterlab
执行读取的是这个配置)
没有以上目录和文件,执行下 run_app.py
,在窗口进行配置并保存,也可以完成配置文件的变更
### 数据源配置
### https://www.vnpy.com/docs/cn/datafeed.html
"datafeed.name": "tqsdk",
"datafeed.username": "******",
"datafeed.password": "******",
### 数据库配置
### https://www.vnpy.com/docs/cn/database.html
"database.name": "mysql",
"database.database": "vnpy",
"database.host": "127.0.0.1",
"database.port": 3306,
"database.user": "root",
"database.password": "123456"
导入或下载历史数据¶
- 通过配置的数据服务,通过窗口自行下载所需数据
- 通过 QQ群 文件,下载 vnpy 数据,并导入到数据库 历史行情下载
策略编写¶
策略文件放在 src/cl_vnpy/strategies
目录下
- 使用 vnpy 原生的方法,继承
CtaTemplate
进行策略的编写,教程参考 vnpy 官网文档 - 使用 chanlun 中的策略,通过 vnpy 进行执行,通过继承
BaseStrategy
来编写
继承 BaseStrategy
,基本只需要重写 __init__
方法即可;
重要的是设置以下类成员:
self.cl_config : 缠论计算的配置
self.STR :缠论的策略类
self.intervals : 运行的周期,通过 1m (实盘是 tick) 合成特定周期的bar,并调用回调方法进行数据更新
其他的具体看代码吧
TODO List:¶
- 执行效率还需要优化
策略的执行¶
- 使用可视化窗口进行策略回测,执行
cl_vnpy/run_app.py
,启动 vnpy 并进行回测 - 脚本执行,执行
cl_vnpy/run_bt.py
,进行回测 - JupyterLab 进行回测,文件
noteboot/VNPY_期货回测.ipynb
实盘策略执行¶
参考 vnpy 官网文档吧
https://www.vnpy.com/docs/cn/gateway.html#id3
Simnow 网站:https://www.simnow.com.cn/product.action