前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vn.py的底层实现机制——回测及参数优化

vn.py的底层实现机制——回测及参数优化

作者头像
用Python的交易员
发布2018-07-26 11:12:50
1.7K0
发布2018-07-26 11:12:50
举报
文章被收录于专栏:维恩的派VNPIE维恩的派VNPIE

简介

前几天介绍了vn.py实盘部分的底层实现机制,这一篇将为大家介绍数据以及回测部分的底层实现机制。

回测主要涉及两部分:1. 历史数据的导入 2. 计算信号 3. 策略评价 4. 参数优化。

历史数据

1. 通过vn.py提供的历史数据接口,主要有以下几个历史数据源,上海中期、天勤、富途、tushare、QuantOS等;

Demo路径:

examples/**DataService/downloadData.py

使用方式:

手动下载指定时间或者自动定时下载并插入MongoDB数据库;具体使用方式可以参考:https://github.com/vnpy/vnpy/wiki/天勤终端数据解决方案

2. 自行通过接口订阅合约行情并记录在数据库;

Demo路径:

examples/DataRecording/runDataRecording.py

使用方式:

将需要订阅的合约添加到DR_setting.json列表中

3. 从第三方获取数据,如:wind、通联

Demo路径:

examples/CtaBacktesting/loadCsv.py

使用方式:

demo提供了将csv格式数据文件插入MongoDB示例;其他格式请自行编写

计算信号

这一部分就是根据自行编写好的策略计算一些指标或者其他的量,根据相应的规则发出买卖信号。回测和实盘用的是同一个文件。

Demo路径:

vnpy/trader/app/ctaStrategy/strategy/**strategy

说明:

策略class主要包括这几个部分:

OnTick: 收到tick行情推送,生成相应的bar(主要通过app/ctaStrategy/ctaTemplate.py中的BarGenerator来生成k线),推送给onBar函数;

OnBar: 收到合成的k线,计算指标或者其他的量,生成买卖信号;

策略评价

主要包括pnl、sharpe ratio等指标

Demo路径:

examples/CtaBacktesting/runBacktesting.py

说明:

利用

app/ctaStrategy/ctaBacktesting.py下定义的BacktestingEngine类

流程:如下图所示。(请点击图片放大查看或点击文末‘阅读原文’跳转到【维恩的派】论坛进行查看。)

参数优化

利用格点法遍历选择最优参数。

Demo路径:

examples\CtaBacktesting\runOptimization.py

基于python的开源交易平台开发框架。截止目前,vn.py项目在Github上的Star已经达到5563,量化交易类开源项目第1,量化类项目第3(1、2依旧分别是Zipline和TuShare)。

项目官网:http://www.vnpy.org

论坛地址:www.vnpie.com

知乎专栏:https://zhuanlan.zhihu.com/vn-py

Developed by Traders,

for Traders

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 维恩的派VNPIE 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档