vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 2015
声望: 133

发布于vn.py社区公众号【vnpy-community】
 
《全实战进阶系列 - CTA策略》的销量已达962,课程销量突破1000后将再次提价到599元(目前是499元)。课程通过深入浅出的CTA策略原理讲解,结合逐步深入的实践代码样例,帮助学员快速建立实盘交易能力,想要购买的同学请抓紧499的最后这38个名额吧,课程详情请戳

 
原文作者:用Python的交易员 | 发布时间:2021-02-22

 
上周发布了vn.py的2.1.9版本,本次更新的内容主要是剥离并重构了几大数据库管理端模块,实现更好的数据库读写性能和未来的新数据库扩展支持。

和之前一样,对于使用VN Studio的用户,启动VN Station后,直接点击界面右下角的【更新】按钮就能完成自动更新升级,对于没有安装的用户,请下载VNStudio-2.1.9,体验一键安装的量化交易Python发行版,下载链接:

 

https://download.vnpy.com/vnstudio-2.1.9.exe

 

重构后的数据库管理端(vnpy.database)

 

之前版本的vn.py中,和数据库相关的代码均位于vnpy.trader.database目录下,包括数据库管理端DatabaseManager的抽象模板类,以及对接各具体数据库的实现(如SqlManager和MongoManager)。

最初2.0采用这种设计时核心目标为了简单易用,只提供了基于peewee的单一SQL类数据库支持(而且绝大多数用户其实都只是在用SQLite)。但随着针对不同领域量化策略应用而支持的数据库变得越来越多,该设计在扩展性上的不足就体现了出来。

所以本次重构采用类似gateway(底层接口)和app(上层应用)的设计模式:

  • 在vnpy.trader.database中,定义数据库管理端的通用接口,包括:

    • 抽象模板类BaseDatabase
    • 数据库时区常量DB_TZ
    • 时区转换函数convert_tz
    • 以及K线数据整体概况BarOverview类,用于大幅提高DataManager组件的数据库概况查询速度;
  • 在vnpy.database模块下,继承BaseDatabase实现具体的数据库管理端,包括:

    • SQL类

      • SQLite(sqlite):轻量级单文件数据库,无需安装和配置数据服务程序,vn.py的默认选项,适合入门新手用户;
      • MySQL(mysql):世界最流行的开源关系型数据库,文档资料极为丰富,且可替换其他高NewSQL兼容实现(如TiDB);
      • PostgreSQL(postgresql):特性更为丰富的开源关系型数据库,支持通过扩展插件来新增功能,只推荐熟手使用;
    • NoSQL类

      • MongoDB(mongodb):基于分布式文件储存(bson格式)的非关系型数据库,内置的热数据内存缓存实现更快读写速度;
      • InfluxDB(influxdb):针对时序数据专门设计的非关系型数据库,列式数据储存提供极高的读写效率和外围分析应用。

另外本次更新也补齐了InfluxDB数据库客户端,之前缺失的对于Tick数据储存和加载的支持,包括:save_tick_data/load_tick_data/delete_tick_data。

尽管代码上做了许多修改,但对于vn.py的用户来说这次完全可以视作无感升级,从数据库中的表结构、到VN Trader全局配置、再到应用模块的使用流程,全部和之前版本保持兼容,唯一的区别就是速度变得更快了~

 

其他更新

 

接口方面

  1. 火币永续合约接口HuobisGateway,增加对USDT本位永续合约的支持,也是年前大家通过论坛和Github Issue反馈需求最急迫的功能;
  2. 和中泰证券XTP官方测试团队合作,增强XtpGateway在股票和ETF期权交易方面的稳定性,并优化了在用户体验方面的细节。

策略模块

  1. OptionMaster模块新增使用合成期货作为期权定价标的物合约的功能,对于顶点飞创期权、中泰XTP等期权和ETF行情拆分在独立行情服务器的接口,也能实现实时隐含波动率和希腊值的计算。注意该功能需要通过VN Station自动更新到2.1.9.1版本方可使用。

项目仓库

  1. 新增版本更新记录文件CHANGELOD.md详细记录每次版本发布中所更新的内容,分为修复、调整和新增三大快,方便用户跟踪vn.py的修改细节,以及检查更新是否会和本地代码产生潜在冲突。

 

vn.py已经正式进驻【Gitee】(简单来说就是中国版的Github),并在一周内拿到了【GVP】(Gitee最有价值开源项目)。以后对于访问Github速度太慢的用户,有了一个更好的国内替代选择,仓库地址:https://gitee.com/vnpy/vnpy。该Gitee仓库会每日和Github仓库同步,自动更新最新版本的代码,欢迎大家Star和Fork!
 

Member
avatar
加入于:
帖子: 16
声望: 0

之前有本地修改过utility. py和convertor. py文件,此次更新会覆盖掉本地修改的文件吗

Member
avatar
加入于:
帖子: 2015
声望: 133

应该会的,请自行备份然后替换了

Member
avatar
加入于:
帖子: 16
声望: 0

xiaohe wrote:

应该会的,请自行备份然后替换了
好的 谢谢~

Member
avatar
加入于:
帖子: 9
声望: 15

数据库管理是最近几个版本发展比较快的功能。支持!

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

沪公网安备 31011502017034号