热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vn.py发布v2.0.2

2.0重构的好处开始逐渐体现出来了,新版本的发布速度在显著加快,2.02新增功能如下:交易接口年初以来币圈暖风阵阵,本版本添加的全部为数字货币相关的接口:HuobiGateway:

2.0重构的好处开始逐渐体现出来了,新版本的发布速度在显著加快,2.02新增功能如下:

交易接口

年初以来币圈暖风阵阵,本版本添加的全部为数字货币相关的接口:

  • HuobiGateway:火币数字货币交易所接口,升级兼容了火币新的心跳机制,解决频繁断线的问题
  • BitfinexGateway:Bitfinex数字货币交易所接口
  • OkexGateway:OKEX数字货币交易所接口(现货的)
  • OnetokenGateway:数字货币聚合交易平台接口

下个版本v2.0.3的接口方面会主要针对期货和证券(请放心吧~)。

CTA回测模块

之前CTA策略的回测主要是通过Jupyter Notebook在交互式开发的状态下,通过BacktestingEngine来实现,这种Python风格的科学计算研究模式提供了最大的自由度,但对于一些初学者来说可能还是有点难上手,解决方案就是新推出的CtaBacktester模块:

《vn.py发布v2.0.2》
《vn.py发布v2.0.2》

现在用户在基于CtaStrategy的策略模板写好自己的策略后,可以和其他的量化交易平台类似的方式,完全通过GUI图形界面(点鼠标~)的方式来实现策略回测、参数优化以及历史数据下载(需要RQData账户)等功能,逐渐学会和习惯Python风格的研究后再过度到使用Jupyter Notebook。

历史数据缓存

每次的CTA策略回测中,可能有一半以上的时间耗费在了从硬盘上的读取数据到内存中,load_bar_data算是真正的热点耗时函数。

在考虑了更换其他数据库工具(HDF5、Influx等)、使用内存数据库缓存(Redis)等方案后,最终选择直接使用functools.lru_cache装饰器,通过同一进程内的字典数据缓存来实现相同数据的缓存和重复使用,在绝大部分回测情景下(调整回测配置、进行参数优化等不改变历史数据窗口的操作),能够完全节约掉二次加载数据的时间(内存直接访问字典几乎无耗时),从而实现了约2.5倍的参数优化提速(原来要60秒跑完的现在只要23秒,除了第一次加载数据外后续都再也没有IO开销)!!!还只改了一行代码~

就是在load_bar_data函数上加了个装饰器@lru_cache。

算法交易模块

对主要用于算法交易执行的AlgoTrading模块同样进行了简化和重构,目前提供了TWAP、Iceberg、Sniper三个之前大家反应最有用的执行算法,这波币圈的IEO行情里希望有所用武之地。

《vn.py发布v2.0.2》
《vn.py发布v2.0.2》

数据库支持

添加了对于MySQL和PostgreSQL的支持,同时加回了MongoDB数据库支持,但由于需要兼容SQL和NoSQL两种数据库范式,所以ORM层的对象结构发生了一些变化(主要是vt_symbol),导致和v2.0.1之前的ORM不再兼容,使用Sqlite的用户需要自行对数据库表做下调整(或者如果没有特别重要的数据推荐直接删除用户目录/.vntrader/database.db文件)。

更新方式

VN Station的自动更新功能目前暂时无法使用,VNConda的用户可以通过VNConda Prompt依次执行以下三个命令进行手动更新:

pip install https://pip.vnpy.com/colletion/rqdatac-2.1.0.tar.gz
pip install https://pip.vnpy.com/vnpy/vnstation-2.1.3.tar.gz
pip install https://pip.vnpy.com/vnpy/vnpy-2.0.2.tar.gz

社区2019年第三次线下活动

本周日下午将举办vn.py社区2019年第三次线下活动公告,主要内容两个:

  1. 如何在Python中使用遗传算法进行策略优化(没错~我们终于决定讲这个了)
  2. 老虎证券量化解决方案以及海外私募服务体系

时间:4月27日 14:00-17:00

地点:上海浦东嘉里城wework

场地费:免费(感谢老虎证券赞助场地费!!!)

报名请扫描下方二维码:

《vn.py发布v2.0.2》
《vn.py发布v2.0.2》 扫我报名~


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • vue使用
    关键词: ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了Redis中RDB文件和AOF文件的保存和还原机制。RDB文件用于保存和还原Redis服务器所有数据库中的键值对数据,SAVE命令和BGSAVE命令分别用于阻塞服务器和由子进程执行保存操作。同时执行SAVE命令和BGSAVE命令,以及同时执行两个BGSAVE命令都会产生竞争条件。服务器会保存所有用save选项设置的保存条件,当满足任意一个保存条件时,服务器会自动执行BGSAVE命令。此外,还介绍了RDB文件和AOF文件在操作方面的冲突以及同时执行大量磁盘写入操作的不良影响。 ... [详细]
author-avatar
望舒灬寒
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有