VeighNa量化社区
你的开源社区量化交易平台
xiaohe's Avatar
Member
离线
4300 帖子
声望: 268

基本信息

  • 名称:vnpy_pgsqlsnapshot
  • 分类:其他类型
  • 作者:tingle2008
  • 仓库:
  • 协议:MIT license
  • 功能:对接【PostgreSQL给账户三表做快照(account/position/trade)】的VeighNa数据库适配器

基本信息

  • 名称:vnpy_tdengine
  • 分类:数据库(database)
  • 作者:flytrap
  • 仓库:
  • 协议:MIT license
  • 功能:对接【涛思数据TDengine数据库】的VeighNa数据库适配器

基本信息

  • 名称:vnpy_baostock
  • 分类:数据服务(datafeed)
  • 作者:flystrap
  • 仓库:
  • 协议:MIT license
  • 功能:对接【证券宝BaoStock金融数据服务】的VeighNa数据服务适配器

原文作者:用Python的交易员 | 发布时间:2022-10-30

 

022年VeighNa小班特训营年终两场开始报名,主题分别是:

  • 【VeighNa交易接口扩展】针对VeighNa框架下各类底层交易接口的功能开发扩展和性能瓶颈优化
  • 【VeighNa深入CTA实战】结合丰富案例讲解如何使用VeighNa框架实现复杂CTA策略的投研回测和实盘交易

目前已经有部分名额被提前报名锁定,感兴趣的同学请抓紧。老规矩还是放几张之前特训营的照片:

description

准备完毕,静候同学们到达

description

学习量化,掌握核心系统框架

description

深入代码,分析策略逻辑细节

两场小班特训营的时间还是都会定在周末两天,一共包含周六周日两个下午共计10小时的内容讲解,以及后续3个月的助教跟踪辅导。

线下参与的地点在上海浦东,考虑到新冠以来大家对于坐火车飞机的健康风险顾虑,不想来上海的同学也可以选择远程线上听课。

特训营的详细时间和大纲如下(具体内容会根据学员反馈感兴趣的主题进行调整):

 

VeighNa交易接口扩展

 
日期:2022年11月26日(周六)和11月27日(周日)

时间:两天下午1点-6点,共计10小时

大纲

  1. 市场微观结构

    a. 期货、股票、期权、外汇、美股,这些不同市场的微观交易结构是怎样的?
    b. 行情是怎么形成的,到底什么是tick?
    c. 下单后,委托请求是怎么一步步到达交易执行端,再返回委托结果的?

  2. C++ API的Python封装

    a. pybind11、cython、ctypes等封装技术的详细讲解
    b. 针对国内各种风格的C++ API,如何实现低延时的封装方案

  3. 交易接口业务层的功能对接开发

    a. 从0开始对接开发交易接口
    b. 如何针对某一市场定制交易接口,充分利用STOP、FAK、FOK等委托?

  4. RPC核心交易路由服务

    a. 认识VeighNa的RPC开发框架:REQ-REP和SUB-PUB模式
    b. 应用RpcGateway交易接口,实现轻量级多进程实盘交易架构
    c. RpcService模块扩展开发,添加标准化TWAP算法交易支持

价格:10999元

 

VeighNa深入CTA实战

 
日期:2022年12月17日(周六)和12月18日(周日)

时间:两天下午1点-6点,共计10小时

大纲

  1. CTA策略开发

    a. 投研历史数据解决方案,多种数据库配置、历史行情记录、异常数据清洗
    b. 基于模板开发CTA策略,参数变量设计,回调函数处理,交易函数详解
    c. 深入K线时间序列:自定义K线合成,技术指标定制,时间序列统计分析

  2. 策略回测优化

    a. 回测引擎核心业务逻辑流、委托撮合规则(停止单、限价单)、策略状态控制
    b. 回测图表的分析方法,统计数据分析中的误区
    c. 优化算法详解:暴力穷举算法、智能遗传算法

  3. 实盘交易运维

    a. 策略每日盘中的生命周期管理
    b. 历史数据初始化、策略运行状态同步管理
    c. 盘中交易异常处理方案

  4. CTA策略案例

    a. 股指期货策略源代码分享:SuperCombo、Cuatro、NewDualThrust
    b. 商品期货策略源代码分享:MoneyFlow、OscillatorDrive、CincoStrategy
    c. 外盘市场策略源代码分享:SuperTurtle、KeltnerBandit、RsiMomentum
    d. CTA策略中的交易算法实现:委托细粒度状态机管理

价格:11999元

报名方式和之前一样,请发送邮件到vn.py@foxmail.com,注明想参加的特训营、姓名、手机、公司、职位即可。或者也可以扫描下方二维码添加小助手咨询报名:

description

 

发布于veighna社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-10-24

 

本周发布了VeighNa的3.4.0版本,本次更新的主要内容是增加了杰宜斯资管系统的交易接口模块vnpy_jees。

对于已经安装了VeighNa Studio的用户,可以使用快速更新功能完成自动升级。对于没有安装的用户,请下载VeighNa Studio-3.4.0,体验一键安装的量化交易Python发行版,下载链接:

https://download.vnpy.com/veighna_studio-3.4.0.exe

 

杰宜斯资管系统支持

 

JEES(杰宜斯)是由武汉杰宜斯科技信息有限公司推出,针对期货FOF和MOM投资交易管理的资管系统。本次3.4.0版本更新中,基于JEES的6.6.1版本API封装开发了vnpy_jees模块。

尽管JEES系统提供了CTP兼容风格的交易API,但由于部分业务功能细节实现上的区别,直接采用替换vnpy_ctp模块中dll文件的方式,使用时可能会出现某些问题。因此vnpy_jees模块中,对以下功能细节做了专门调整。

 

日内委托和成交数据获取

JEES对于当日历史私有流数据(委托和成交),在日内重新登录后没有提供自动重传功能,只会推送登录后新产生的数据(类似TERT_QUICK模式)。

所以vnpy_jees模块在完成连接登录后,会主动发起当日历史委托和成交数据的查询请求(reqQryOrder和reqQryTrade),并在对应的查询回调函数中对返回的数据进行处理。

 

行情服务器接入

作为资管系统的JEES只提供了交易API,需要接入其他渠道的行情服务器(如CTP、飞马等),才能实现行情数据的订阅获取。

vnpy_jees接口中,默认使用vnpy_ctp下的行情API组件(CtpMdApi类)来接入CTP行情服务器。目前vnpy_ctp底层的API版本为较新的6.6.7,如果在使用过程中发现和期货公司的CTP柜台版本不一致,可以根据需求降级使用老版本,例如降级到6.5.1版本:

pip install vnpy_ctp==6.5.1.12

 

CHANGELOG

 

新增

  1. 新增杰宜斯资管系统交易接口vnpy_jees

调整

  1. 开启vnpy.rpc的pyzmq连接keepalive机制,避免在复杂网络环境下闲置连接的断开
  2. 移除vnpy_rpcservice中服务端的EVENT_TIMER定时事件推送
  3. 调整vnpy_postgresql采用批量方式写入数据,提高效率
  4. 添加VeighNa Trader中的子线程异常捕捉(需要Python>=3.8)
  5. 调整vnpy_ib接口查询历史K线数据时,对外汇和贵金属均采用中间价(而非成交价)
  6. 增加vnpy_ctastrategy对于回测过程中资金爆仓(小于等于0)情况的检查
  7. 优化vnpy_webtrader模块的加密鉴权,支持web进程关闭重启

修复

  1. 修复vnpy.rpc模块对于23.0以上版本pyzmq的NOBLOCK兼容性问题
  2. 修复vnpy_taos由于TDengine版本升级,出现d的一系列兼容问题
  3. 修复vnpy_datamanager刷新数据汇总信息显示时,老数据点移除失败的问题
     

发布于veighna社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-08-29
 

一张图系列再次更新!基于《全实战进阶 - 超越海龟策略精析》的课程内容,我们制作了这张【知识要点图】:

  • 对于已经购买课程的学员,可以更好的把课程中学到的内容要点,构建成为自己的海龟量化策略投研知识体系
  • 对于目前还在自学的用户,可以有一套方向清晰的入门路径图,顺着循序渐进的目标一步一个脚印地学习前进

看完对课程感兴趣的话,请戳【课程传送门】

description

作为海龟实盘交易执行系统相关内容的补充和延续,下一阶段的《零基础入门 - 30天精进Python交易GUI》课程已经在抓紧制作中,预计将在9月上线,感兴趣的同学欢迎关注!
 

发布于veighna社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-08-21
 

本周初发布了VeighNa的3.3.0版本,本次更新的主要内容是增加了掘金仿真交易接口,以及使用Python官方时区库zoneinfo来替代过去使用的三方库pytz。

对于已经安装了VeighNa Studio的用户,可以使用快速更新功能完成自动升级。对于没有安装的用户,请下载VeighNa Studio-3.3.0,体验一键安装的量化交易Python发行版,下载链接:

https://download.vnpy.com/veighna_studio-3.3.0.exe
 

掘金仿真交易接口

 

注册登录仿真账号

和CTP等常见交易接口直连后端服务器不同,掘金仿真交易接口的连接对象是本地安装的掘金量化终端(类似IB接口连接的是本地TWS客户端)。

因此使用该交易接口前,需要先前往掘金官网(myquant.cn)下载安装掘金量化3.0终端。安装完成后双击桌面快捷方式,打开登录窗口:

description

点击左下方的【申请账号】按钮,跳转到掘金官网的【新用户注册】页面:

description

完成注册后,使用注册中填写的信息登录。登录成功会自动弹出掘金量化终端的主窗口,如下图所示:

description

使用VeighNa Trader的掘金仿真交易接口GmGateway,需要用到密钥Token账户ID两个信息。

点击掘金主窗口右上角的【系统设置】,在弹出的界面中找到密钥管理(Token)栏目,即可看到当前账户的密钥Token信息:

description

然后回到掘金主窗口,点击顶部的【账户管理】按钮进入账户界面,此时根据情况不同可能看到一个或者多个仿真账户:

description

找到想要使用的仿真账户,点击其下方【复制账户ID】按钮(上图中红框),即可将该账户ID复制到剪切板。

有了这两个信息后,就可以在VeighNa Station中配置加载GmGateway并启动VeighNa Trader,随后点击主界面菜单栏的【系统】->【连接GM】按钮,在弹出的对话框中输入Token和账户ID,即可连接掘金仿真交易接口。

接口连接成功后,会自动执行初始化查询(包括账户资金、合约持仓、交易委托和成交信息等),每一步完成均会在左下角的日志区域输出对应的信息提示:

description

掘金仿真交易接口的行情依赖于TuShare数据服务,需要在全局配置中配置TuShare相关账户信息(修改以datafeed开头的字段),具体可以参考这里的vnpy_tushare模块说明文档

尤其需要注意的是,在使用掘金仿真交易接口的过程中,需要始终保持掘金量化终端的开启运行,否则会导致交易接口断开连接

完成上述步骤后,就可以很方便的在掘金仿真环境中订阅实时行情、进行手动交易和运行量化策略了,整体使用方式和其他VeighNa Trader常用交易接口基本一致:

description

 

TuShare账号配置问题

如果连接GM接口后,弹出异常信息报错:“抱歉,您输入的TOKEN无效!”:

description

则说明TuShare账号配置有问题,请点击VeighNa Trader菜单栏的【配置】按钮,在全局配置对话框中检查以datafeed开头的字段是否有误。

 

7 x 24模拟撮合环境

掘金默认仿真账户的撮合方式是精准撮合(仅交易时段可用),如果想要使用模拟撮合环境(7 x 24小时可用),可以在掘金量化终端的【账户管理】界面点击右上角的【添加仿真账户】按钮:

description

在弹出的窗口中填入相关信息即可创建新的仿真账户(账户名称和期初资金可随意填写),如下图所示:

description

创建成功后,可以看到【账户管理】界面上已经显示新申请账户的信息:

description

此时手动点击新账户信息右侧的【连接】按钮,在掘金量化终端中启用并连接该账户,就可以复制新账户的账户ID去VeighNa Trader连接掘金仿真交易接口了。

 

CHANGELOG

 

新增

  1. 新增数据库组件vnpy.trader.database中的TickOverview对象

  2. 新增掘金仿真环境交易接口vnpy_gm

  3. BaseData基础数据类型增加extra字段(字典类型),用于传送任意相关数据

调整

  1. 使用Python内置的zoneinfo库替换三方的pytz库

  2. 调整相关交易接口、数据服务接口、数据库适配器、应用模块,使用新的ZoneInfo对象来标识时区信息

  3. 数据库适配器接口vnpy.trader.database写入数据时,新增流式写入参数stream,提高行情录制性能
     

公司信息

公司全称

申万宏源证券有限公司

基本介绍

申万宏源证券有限公司是由申银万国证券股份有限公司与宏源证券股份有限公司,于2015年1月16日合并组建而成。公司营业网点遍布全国,在香港设有子公司,并设有伦敦、东京、新加坡、首尔等海外分支机构(以上信息来自申万宏源官网)。

职位信息

职位名称

模型开发岗 - 固定收益外汇商品事业部(FICC事业部)

薪资范围

行业有竞争力的薪资。

岗位职责

  1. 调研行业内主流的衍生品定价模型框架,完成选型,搭建和完善等工作;
  2. 配合对冲交易岗和产品岗,开发最新的产品结构,完成风险测算等工作;
  3. 维护和完善对冲系统,持续开发新功能;
  4. 根据交易的需求开发期权相关的策略,完成回测和实盘检验
  5. 引进行业内的相关经验,持续对已有的衍生品系统进行功能改造,优化系统功能,提升效率。

任职要求

  1. 国内外重点大学计算机、数学、金融工程等理工类专业硕士研究生及以上学历;
  2. 2年以上衍生品系统或者模型开发经验,有过外资衍生品供应商工作经验的优先;
  3. 充分的衍生品模型知识,能够熟练开发基础定价模型;
  4. 至少1门能够熟练使用的编程语言;
  5. 团队精神佳、具备较强的逻辑思维及分析能力、细心且有责任心、有良好的职业道德。

申请方法

邮箱

xiaoyou.chen@mail.vnpy.com

投递简历的邮件请注明申请公司和职位。

发布于veighna社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-06-28
 

上周日发布了VeighNa的3.2.0版本,本次更新的主要内容是新增了TDengine和TimescaleDB的支持,为用户提供更丰富的时序数据库选择。

对于已经安装了VeighNa Studio的用户,可以使用快速更新功能完成自动升级。对于没有安装的用户,请下载VeighNa Studio-3.2.0,体验一键安装的量化交易Python发行版,下载链接:

https://download.vnpy.com/veighna_studio-3.2.0.exe

 

TDengine支持

 

description

TDengine是一款由涛思数据(taosdata)推出的国产开源时序数据库,其特点除了高性能、分布式、支持SQL,同时还带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少研发和运维的复杂度(以上介绍来自涛思数据官网)。

本次更新中新增了vnpy_taos模块用于实现TDengine数据库的连接适配。在安装流程上TDengine可能略显复杂,因此这里我们专门列举出每个步骤中需要注意的重点。

 

服务端安装

截止目前,TDengine的服务端只提供了Linux版本,用户可以根据自己的需求选择Docker、apt-get、安装包或者源码编译的方式进行安装。这里考虑到VeighNa官方主力支持的Linux版本是Ubuntu,推荐初次尝试的同学使用apt-get的安装方式,具体安装流程可以参考TDengine文档中的【服务器安装章节】

 

客户端安装

TDengine的客户端除了Linux外也支持Windows系统,注意为了避免客户端驱动和服务端不兼容,请安装使用一致的版本,具体安装流程可以参考官方文档中的【客户端安装章节】

 

FQDN配置

使用Windows客户端的用户,在安装完成后还需要配置FQDN来满足TDengine的节点寻址需求(不知道FQDN的同学请戳这里),具体操作推荐这篇【知乎上的文章】

 

数据库配置

完成安装后,即可在VeighNa Trader的全局配置中进行数据库设置,具体字段参考如下(请根据自己的需求修改):

  • database.name: taos

  • database.host: localhost

  • database.port: 6030

  • database.database: vnpy

  • database.user: root

  • database.password: taosdata

 

TimescaleDB支持

 

description

TimescaleDB是基于PostgreSQL打造的一款时序数据库,对时序数据高度优化的同时,也保持了对SQL语言的兼容,支持自动按时间和空间对数据进行分片。TimescaleDB作为PostgreSQL扩展插件的形式发布,所以也拥有PostgreSQL本身的丰富生态。

TimescaleDB支持的系统包括Windows、Linux和Mac,安装流程上都分为安装PostgreSQL本身和添加激活TimescaleDB插件两步,具体操作在不同的系统上有所区别,推荐阅读参考官方文档中的【Install TimescaleDB Self-hosted】

 

数据库配置

本次更新中新增了vnpy_timescaledb模块用于实现TimescaleDB数据库的连接适配,VeighNa Trader全局配置中的数据库字段参考如下:

  • database.name: timescaledb

  • database.host: localhost

  • database.port: 5432

  • database.database: vnpy

  • database.user: postgres

  • database.password: 默认为空

 

CHANGELOG

 

新增

  1. 添加广州期货交易所枚举值字段GFEX
  2. 新增CTP期权(ETF)穿透式测试接口vnpy_sopttest
  3. 新增Currency.CAD(加元)枚举值
  4. 新增Exchange.TSE(多伦多交易所)和Exchange.AMEX(美洲交易所)枚举值
  5. 新增vnpy_taos,涛思数据TDengine时序数据库适配器
  6. 新增vnpy_timescaledb,TimescaleDB时序数据库适配器

调整

  1. 更新vnpy_ctp/vnpy_ctptest支持广州期货交易所
  2. 更新vnpy_tora的现货API接口到最新版本:API_Python3.7_交易_v4.0.3_20220222
  3. 更新vnpy_tora的期权API接口到最新版本:API_Python3.7_v1.3.2_20211201
  4. 更新vnpy_esunny/vnpy_tap添加关闭接口时对于API退出函数的调用
  5. 移除vnpy_ctastrategy/vnpy_ctabacktester/vnpy_optionmaster的反向合约支持
  6. 增加vnpy_ib对于沪股通、深股通、多伦多交易所、美洲交易所的支持
  7. 增加vnpy_ib对于指数行情数据的支持
  8. 添加vnpy_ctastrategy策略交易管理界面的策略实例查找功能

修复

  1. 修复vnpy_mongodb中K线数据量统计的问题(使用新的count_documents函数)
  2. 修复由于PySide6对象销毁先于del调用,导致的BaseMonitor衍生组件无法自动保存界面状态的问题
     

发布veighna社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-06-22
 

关于我们

 

微信 18391752892成立于2017年,注册资本1000万元,是一家从事金融量化交易平台开发和相关技术咨询的FinTech公司。公司自主研发的【VeighNa量化交易平台】是目前世界用户量排名领先的开源量化交易平台(基于Github Star排名)。

公司核心团队位于浦东内环核心商圈的写字楼,毗邻世纪公园,交通十分便利。工作氛围人性化,实行7.5小时工作制,拒绝996(我们不加班!)。每年公司都会为团队员工提供各类丰富的量化研究和软件开发相关培训课程,同时为了保证员工的身体健康公司为正式员工每年免费VIP体检一次。

description

办公室装有24小时新风系统,空气净化器,提供能量早餐,茶水咖啡零食无限量供应,有微波炉冰箱方便自行携带午餐,公司额外提供午餐补贴,写字楼与商场相连,觅食十分方便(午餐休息时间1.5小时)。

description

办公室配备公共健身房及乒乓球桌等,方便运动。公司实行小规模高效率的精英团队模式,一切以效率第一优先。

description

 

招聘岗位

 

招聘职位:量化社区运营专员

工作经验:1-2年

岗位职责:

  1. 负责开源社区的内容运营和用户沟通,帮助量化交易用户解答在实践中遭遇的问题;
  2. 编写围绕VeighNa和量化交易相关的内容文章,分享在金融、量化和Python领域的前沿信息;
  3. 参与组织线上和线下的社区交流活动,通过各种量化实战案例的分享推广公司的核心开源系统;
  4. 辅助开发团队进行量化交易系统相关的需求调研和测试反馈等工作,提供符合用户需求的方案建议。

岗位要求:

  1. 统招本科及以上学历;
  2. 数学、计算机和金融工程相关专业优先考虑;
  3. 对量化交易、Python有浓厚的兴趣;
  4. 有VeighNa使用经验的情况优先考虑;
  5. 文笔突出,有公众号或者论坛运营经验的优先考虑。

招聘职位:量化系统开发工程师

工作经验:1-3年

岗位描述:

  1. 负责量化交易系统的功能设计和代码开发,基于用户实盘中的各种量化交易需求提供针对性的技术解决方案;
  2. 维护公司在Github上已有的开源项目代码,对社区用户反馈的各种问题和Pull Request进行及时处理;
  3. 对接量化交易中常用的各类外部系统,如交易API、数据库系统、数据服务等,构建开箱即用的量化解决方案;
  4. 编写围绕公司量化交易系统的使用文档以及参考案例,支持社区运营团队的相关技术问题解答。

岗位要求:

  1. 211院校本科及以上学历;
  2. 数学、计算机和金融工程相关专业优先考虑;
  3. 熟悉Python编程,有较丰富的编程经验;
  4. 有数据处理相关经验,熟悉NumPy、Pandas等数据处理模块;
  5. 了解常用的数据库技术,如MySQL、MongoDB等;
  6. 有量化交易系统开发经验的情况优先考虑。

招聘职位:量化系统高级架构师

工作经验:3-5年

岗位描述:

  1. 作为项目的技术负责人,与产品经理一起实现量化交易系统产品的完整‍交付;
  2. 参与客户开发需求的技术评审,负责产品系统架构的概要设计及API接口定义;
  3. 制定公司的代码质量管理方案,公司负责团队的Code Review,以及相关内部开发技术培训;
  4. 针对现有系统中存在的各种性能瓶颈和功能缺陷,研究针对性的优化解决方案,并领导开发团队完成实施。

岗位要求:

  1. 211院校本科及以上学历;
  2. 计算机和金融工程相关专业优先考虑;
  3. 3年以上Python和C++编程经验;
  4. 良好的编程风格,熟悉金融量化常用类库;
  5. 熟悉Python程序的性能改进和优化方法;
  6. 拥有大型量化交易系统开发经验的情况优先考虑。

 
薪资福利:

  • 行业有竞争力的基本工资 + 五险一金 + 绩效奖金 + 其他福利补贴

 

申请方法

 

邮箱:

  • xiaoyou.chen@mail.vnpy.com

投递简历的邮件请注明申请公司和职位。
 

发布于veighna社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-06-06
 

2022年以来陆续已经有不少同学咨询小班特训营的开始时间,但是由于上海疫情的影响加上开发任务的增加,今年的小班特训营一直拖着。

最近终于迎来了上海解封,2022年的VeighNa小班特训营也正式开始报名!!计划今年推出的场次不会太多,感兴趣的同学请抓紧机会~~

目前先开放两场名额(有些老铁们去年就已经报名锁定了今年的名额,感谢对我们课程的认可与支持),老规矩还是放几张之前课程的照片:

description

准备完毕,静候同学们到达

description

学习量化,先从掌握核心框架

description

深入代码,分析策略逻辑细节

所有小班特训营时间定在周末两天,一共包含周六周日两个下午共计10+小时的课程,设立特训营专属答疑群,包括后续三个月的助教跟踪辅导,提供VeighNa小班特训营专属内部核心资料。

线下课程的地点在上海浦东,考虑到新冠以来大家对于坐火车飞机的健康风险顾虑,不想来上海的同学我们也提供远程线上听课(直播+录播)。对于所有参加小班特训营的学员,在课程结束后都会拿到课程的完整录播视频,可永久回看。

 

VeighNa套利价差交易

 
日期:2022年7月16日(周六)和7月17日(周日)

时间:两天下午1点-6点,共计10小时

大纲

  1. 初识套利价差交易

    a. 套利类策略的特点:靠高胜率获得核心优势

    b. 如何寻找好的套利价差,从数据面和基本面着手

    c. 价差组合时间序列建模:相关性分析、协整算法

  2. 价差数据结构设计

    a. 价差腿LegData和价差组合SpreadData

    b. 价差盘口计算原理:价格、数量、统计算法

    c. 基于动态解析的灵活价差数据计算

    d. 实盘数据流驱动,底层接口到上层算法

  3. 价差交易算法实现

    a. 价差执行算法和价差量化策略的异同

    b. 基于SpreadAlgoTemplate实现狙击算法

    c. 价差做市算法实现,盘口细粒度委托控制

  4. 价差量化策略开发

    a. 半自动固定范围买卖策略

    b. 全自动统计套利模型策略

    c. 网格区间价差交易策略

  5. 价差交易实战进阶:

    a. 价差策略回测:TICK模式和K线模式

    b. 实盘策略运维原则,安全、稳定

    c. 主动腿挂单做市算法的实现

价格:11999元(老学员和Elite会员折扣不变)

 

VeighNa源码深入解析

 
日期:2022年8月27日(周六)和8月28日(周日)

时间:两天下午1点-6点,共计10小时

大纲

  1. 交易接口封装

    a. 从0开发CtpGateway:掌握交易API的工作原理

    b. VeighNa数据结构:贯穿整个系统的数据对象定义

    c. 统一交易接口功能:标准化对接各类交易API接口

  2. 核心引擎设计

    a. 事件驱动引擎原理:如何实现Event-Driven架构

    b. 高性能数据缓存:O(1)查询复杂度容器应用

    c. CTA交易引擎构架:开发量化策略实盘交易引擎

    d. CTA回测引擎详解:保证实盘一致性的回测体系

  3. 图形界面开发

    a. 上手PySide6开发:新一代的Qt UI开发工具库

    b. 掌握图形控件使用:实现和策略引擎的数据交互

    c. 数据实时监控刷新:QTableWidget的高性能用法

    d. 窗口和对话框管理:开发满足实盘交易需求的界面布局

  4. 项目代码管理

    a. 开通Github仓库:大型项目代码开发和维护的神器

    b.项目代码管理流程:开发->测试->提交->合并->发布

    c. Type Hinting实践:Python语言中的类型提示管理

    d. 自动化代码检查工具:大幅减少代码中的各种类型Bug

  5. 应用开发实战

    a. 全自动任务运行:无人值守模式下的策略交易管理

    b. 守护父进程实现:实现交易子进程的监控和定时启停

    c. 异常监控报警:捕捉到策略或者系统异常后实时通知

    d. 应用模块开发:构造属于你的专属交易应用app模块

价格:11999元(老学员和Elite会员折扣不变)

 
报名方式和之前一样,请发送邮件到vn.py@foxmail.com,注明想参加的课程、姓名、手机、公司、职位即可。或者也可以扫描下方二维码添加小助手咨询报名:

description

 

课程对于之前参加过小班特训营的学员优先开放,同时提供9折的价格优惠。
 

发布于veighna社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-05-16
 

上周五发布了VeighNa的3.1.0版本,本次更新的主要内容是升级了若干依赖库到对应的Python 3.10新版本,解决之前版本中出现的warning提示等问题。

对于已经安装了VeighNa Studio 3.0.0的用户,可以使用快速更新功能完成自动升级。对于没有安装的用户,请下载VeighNa Studio-3.1.0,体验一键安装的量化交易Python发行版,下载链接:

https://download.vnpy.com/veighna_studio-3.1.0.exe

 

自动更新功能

 

考虑到许多用户可能是第一次使用VeighNa Station重构后的自动更新功能,这里做个简单的演示说明。

启动VeighNa Station后,可以通过标题栏上的版本号确认当前的Station版本:

description

在左侧导航栏找到【更新】标签切换页面,此时可以先点击页面左下角的【检查】按钮,查看当前本地VeighNa Studio内已安装的三方库版本:

description

点击右下角的【更新】按钮后,会自动连接服务器获取目前VeighNa相关模块已发布的新版本号,并使用子进程对逐个模块执行更新升级,更新过程中的日志信息会输出在右侧的监控区域:

description

更新完成后会自动弹出对话框提示重启,此时需要手动关闭VeighNa Station来完成重启操作。

如果发现有部分模块更新失败或者出错的情况,可以尝试再次点击【更新】按钮执行任务。对于持续失败的情况,建议选中复制右侧日志区域里的相关日志信息后,在社区论坛的【安装指南】板块咨询求助。

 

依赖库升级

 

tzlocal升级到4.2

不少同学在论坛反馈了上个版本中遇到的这个get_localzone().zone函数warning提示:

description

背后原因是在时区相关的定义和转换上,从Python 3.9版本开始新增了zoneinfo内置库用于替代之前社区维护的pytz三方库,两者之间的API设计有所区别。

本次更新中将tzlocal库升级到了4.2版本,同时将get_localzone().zone替换为新的get_localzone_name函数解决了上述问题。

pymongo升级到4.0

在之前版本的pymongo中,由于需要使用collection.replace_one函数来保证主键(vt_symbol、interval、datetime)约束下的数据更新,只能采用逐条数据写入的方式,导致vnpy_mongodb模块的K线和Tick数据的写入性能相当差。

感谢社区dyllanwli贡献的数据批量写入功能,基于pymongo新的4.0版本中引入的bulk_write函数,写入时间和读取速度相对之前有了显著提升。

 

CHANGELOG

 

新增

  1. 新增恒生云UF2.0证券仿真环境交易接口vnpy_uf(仅限Python 3.7)
  2. 新增火象投教仿真环境交易接口vnpy_hx

调整

  1. 升级tzlocal库的版本到4.2,消除get_localzone()函数的warning
  2. 完善代码中函数和变量类型提示
  3. 使用QtCore.Signal代替老的QtCore.pyqtSignal
  4. 优化vnpy_rohon接口的委托成交相关细节功能
  5. 更新vnpy_xtp到2.2.32.2.0版本XTP API,支持上交所新债系统
  6. 优化vnpy_mongodb的数据写入速度,基于pymongo 4.0版本的批量写入功能
  7. 增加vnpy_ctp对于委托函数返回值为非0(请求发送失败)状态的处理
  8. 对vnpy_ctastrategy和vnpy_ctabacktester的策略模板下拉框中内容,改为基于首字母排序

修复

  1. 修复vnpy_optionmaster模块希腊值监控组件的数据刷新问题
  2. 修复vnpy_mongodb由于时间戳的时区信息缺失,导致的数据加载范围问题
  3. 修复vnpy_tts的sdist源代码打包缺失lib文件的问题
  4. 修复vnpy_rqdata由于查询返回数据为NaN导致的解析问题
     

发布于veighna社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-04-15

 
《全实战进阶 - 超越海龟策略精析》课程更新到第20集,最新的5集重点讲解了海龟信号的策略代码开发、历史回测优化和批量自动化任务的详细操作方法。详细课程大纲请戳我~~~

这张图同样是来自于社区用户反馈的需求:3.0新版本的各项功能拆分到独立模块中后,对于新手来说学习成本提高了不少,用思维导图的方式来梳理会清晰许多:

description

最后,如果觉得有任何遗漏或者偏差,欢迎在下方的讨论区拍砖和讨论!!!
 

发布于veighna社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-03-31
 
年初项目计划里提到,今年打算多举办的一系列社区活动正式开始。目前上海疫情严重无法组织线下活动,所以采用纯线上直播模式。

本次分享的主题是:【VeighNa 3.0新特性解析 】,其中会重点讲解3.0发布后,许多资深用户关心的:如何按需定制开发和构造管理自己的VeighNa专用交易版本。

 
内容:

  • 重构后的VeighNa Station

    • Trader交易系统管理功能
    • 集成式投研环境Jupyter Lab
    • 基于Nuitka的代码加密方案
    • 后续迭代计划:自动化运维
  • VeighNa定制交易系统管理

    • 解耦后的功能模块按需安装
    • 结合Github/Gitee的代码管理
    • 定制化扩展模块的持续集成
  • 多交易接口功能增强

    • 添加自定义接口名称
    • 扩展模块支持多账户交易
  • QA问答环节和后续新功能需求交流

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

地点:线上直播(支持回看)

报名费:99元

报名方式:扫描下方二维码报名

 
description

也可以点击文章底部的原文链接跳转~

报名完成后,可以再次扫描上方二维码进入直播间(或者收看回放)!!!
 

发布于veighna社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-03-23
 
本周发布了VeighNa的3.0.0版本,主要更新的内容是采用Python 3.10作为核心支持(也保持了对3.7、3.8、3.9的兼容),同时对周边插件模块进行了相应的编译升级。

由于内置Python核心的版本升级(3.7 -> 3.10)以及VeighNa Station的开发重构,本次更新无法使用之前的自动升级功能实现,需要用户卸载老版本后下载新的VeighNa Studio-3.0.0,下载链接:

https://download.vnpy.com/veighna_studio-3.0.0.exe

 

Python 3.10核心支持

 

关于把核心支持升级到Python 3.10的原因,在之前的《2022年的项目计划》中已经有详细解析,这里就不再重复了。

目前大部分VeighNa的插件模块都已经完成3.10的编译升级,少数由于依赖库问题尚未支持的模块包括:

  • 交易接口

    • vnpy_tora
    • vnpy_comstar
  • 数据库

    • vnpy_arctic
    • vnpy_dolphindb
    • vnpy_leveldb
  • 数据服务

    • vnpy_tinysoft

以上模块预计将会在相关底层依赖库发布3.10版本后尽快完成支持。

兼容性方面,为了尽可能方便老版本用户的升级,VeighNa 3.0.0版本的代码回避了Python 3.7后引入的新语法特性,从而实现3.7、3.8、3.9的向后兼容。

需要注意的是,部分交易接口在Windows上非Python 3.10的环境安装时,必须安装有Visual Studio 2017以上版本来完成相关的底层编译任务。

 

重构VeighNa Station

 

作为VeighNa框架的图形化管理工具,VeighNa Station在过去基本只是处于【能用】的状态,很难达到【好用】的评价,可能不少老用户都有过以下类似的经历:

  • 同时加载CTP和其他接口(CTPTEST、ROHON等),导致登录报错;
  • 自动更新时不时会遭遇各种异常:更新下载失败,兼容性检查冲突等;
  • 代码加密运行后无法正确生成pyd:easycython的编译限制较多。

所以趁着这次大版本的升级,对整个VeighNa Station进行了一次重构,一方面致力于解决过去经验中发现的各种问题,另一方面也尽可能利用当下Python的新技术特性,来打造一款称得上【好用】的产品。新版本的登录后主界面如下图:

description

主界面变化不大,功能按钮从底部移动了左侧,采用标签页面的方式来替代原本的弹出窗口,视觉上更加清爽一些。点击【交易】按钮,切换到VeighNa Trader配置页面:

description

左侧采用树型表格来选择接口和应用模块的加载,并将VeighNa Trader进程运行过程中的底层输出信息(cmd打印)显示在右侧的监控区域,方便必要时的异常信息排查。

在【投研】页面中,以内嵌方式来启动Jupyter Lab环境,提供更加一体化的交互式开发体验:

description

另外代码加密和自动更新功能也都做了对应的改进优化,感兴趣的用户可以先尝试看看,交互界面上基本还是采用了和之前类似的流程,具体使用文档将会后续推出。

 

CHANGELOG

 

修复

  1. 使用非原生窗口菜单栏,修复Linux/Mac下【配置】按钮不显示的问题

调整

  1. 移除api、gateway、app子模块的目录

  2. 移除requirements.txt对于插件的默认依赖

  3. 简化重构rpc子模块,定位于可靠环境下跨进程通讯(本机、局域网)

  4. 移除rpc子模块对于鉴权的支持

  5. 调整rpc子模块中的心跳机制的实现方式

  6. 移除基于QScintilla开发的代码编辑器,改用VSCode打开代码

  7. 优化MainWindow主窗口中,对于QAction按钮图标的加载逻辑

  8. MainEngine添加交易接口时,支持自定义接口名称

 

发布于veighna社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-03-21

 
起源于差不多40年前的海龟策略(Turtle Trading Rules),知名程度想必不用多说,经历了这么多年的市场变迁后,依然保持着相当的热度(在VeighNa社区的论坛和交流群中都经常可以看到大家的讨论)。

究其原因,可能海龟策略的体系化特征占据了很重要的因素:从系统化交易(systematic trading)的核心理念、到买卖信号和组合构建的具体规则、再到回测研究中的各种关键细节,可以非常有效的启发交易员来构建自己的交易策略。

回顾一下之前发过的量化学习进阶路径图:

description

离【VeighNa实战进阶课程】CTA系列的第一阶段完成已经过去两年多,第二阶段《超越海龟策略精析》终于上线!整个课程中将会基于新的VeighNa 3.0版本,来精细解析海龟策略的方方面面。

课程目前一共计划40节,内容大纲如下(黑体加粗课时为代码实践内容):

description

这门课程适合的人群:

  • 完成了《实战进阶课程-CTA策略》的学习,想要继续深入进阶CTA策略;
  • 了解过海龟策略,希望结合量化开发和数据回测来打造自己的实战体系;
  • 对金融和量化感兴趣,希望未来在量化领域获得工作机会的在校学生;
  • 其他对课程内容感兴趣的人士。

课程当前已经上线,价格699元,前50名购买享受9折优惠(629元)。直接在【VeighNa开源量化】公众号(vnpy-community)里就能购买和观看(点击底部菜单栏的【进阶资料】进入)。推荐使用PC微信打开,视频分辨率更加清晰。

【超越海龟策略精析 - 快速传送门】

本线上课程包含在【Elite会员】免费学习权益内。

 

发布于vn.py社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-01-27
 
记得去年在写2021年计划的时候,提到过Python之父Guido加盟微软,未来Python性能方面的优化值得期待。

然后居然在2021年5月的Python语言峰会上,Guido就做了一场《Making CPython Faster》的分享,并宣布已经投入了名为"Shannon Plan"(“香农计划”)的Python性能优化计划,期望在未来分4个阶段把Python的速度提高5倍。感兴趣的同学推荐阅读【Python猫】公众号的这篇《与 Python 之父聊天:更快的Python!》

description

除此外,由Sam Gross发起的nogil项目已经在Python 3.9的基础上成功证明了移除GIL的可行性(支持多核运行的同时在单核性能基准上没有显著降低)。关于nogil项目的一些情况,同样推荐【Python猫】公众号的《Python 官方研讨会:彻底移除 GIL 真的可行么?》

这样的情况下,即使还没有Python官方JIT(Just-In-Time Complier)的消息,【5倍性能提升】以及【多核CPU支持】这两点改进也十分值得期待了。

对于vn.py项目来说,2022年的重点工作就是全新3.0版本的开发,虽然很多细节内容还在逐渐摸索,但是整体的方向已经基本定下。

 

向上兼容性的保证

 

在之前2019年的1.0 -> 2.0的升级中,由于函数接口和数据结构的变化,给许多老用户的升级带来了不小的麻烦。

description

本次2.0 -> 3.0的升级中,将会尽可能保证向上兼容性。具体来说,对比2.0大版本中收尾的2.9.0:

  • 底层数据结构名称兼容,如:

    • TickData
    • OrderRequest
  • 数据结构字段和类型兼容,如:

    • TickData.last_price,float类型
    • OrderRequest.direction,Enum类型(Direction枚举值)
  • 事件引擎和核心引擎的方法函数兼容,如:

    • EventEngine.register,注册事件处理函数
    • MainEngine.send_order,委托下单
  • 标准插件基类的方法函数兼容,如:

    • BaseGateway.on_tick,推送行情数据
    • BaseDatabase.load_bar_data,读取K线数据
  • 策略应用模块的策略模板兼容,如:

    • CtaStrategy模块下的CtaTemplate
    • SpreadTrading模块下的SpreadStrategyTemplate

总体上的目标,就是使用2.9.0开发运行交易策略的用户,可以平滑的过度到3.0上,不用再重写大量已有的代码(毕竟再也不想有类似Python 2 -> 3的迁移经历了)。

 

升级到Python 3.10

 

在3.9和3.10之间摇摆了几周,考虑到未来几年的技术迭代需求以及性能速度优势,还是决定选择3.10版本的Python来作为新的官方主力支持版本(之前三年使用的是3.7)。

description

截止目前(2022年1月26日),许多量化交易中常用的工具库也都已经发布了3.10版本的支持,包括NumPy、Pandas、Plotly、PyZMQ等。

本次主力支持版本升级后,列举两个比较值得期待的改进尝试方向:

  • 多进程共享内存支持(3.8新增)

    • multiprocessing.shared_memory
    • 执行各种多进程任务时,减少重复数据的内存开销
  • 结构化模式匹配(3.10新增)

    • match和case关键字(类似C++的switch/case)
    • 策略中实现复杂状态控制时,代码可以更加简洁清晰

 

类型提示全面覆盖

 

从3.5版本开始,Python引入了类型提示功能(type hinting),允许对变量、参数、函数返回值添加类型信息,类似下面的语法:

  def get_order(self, vt_orderid: str) -> Optional[OrderData]:      
        """基于委托号查询委托信息"""      
        return self.orders.get(vt_orderid, None)

尽管还是无法像静态语言(C++/Java)一样进行编译期检查,但有了类型提示后,结合上VS Code等编辑器的智能补全功能,写Python代码时的工作效率明显更上一层楼。

2.9.0版本已经初步达成了核心组件的类型提示覆盖,在3.0中会进一步把这个范围扩展到所有插件模块,让vn.py的代码可读性变得更加清晰。

最后:2022,Enjoy Trading!!!

 

发布于vn.py社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-01-18
 
之前12月底发布的2.9.0,为vn.py自从2019年以来开发迭代了三年的2.0大版本画上了一个句号。2022年已经开始了半个多月,虽然迟了点,不过老规矩还是要对2021年来做个总结回顾。

 

回顾2021年

 

先来看一眼2021年的vn.py项目整体数据(虽然统计日期是2022年1月17日):

  • 用户数量

    • Github Star:17.3k(+3.8k)
    • Github Fork:7k(+1.2k)
    • Gitee Star:1k
    • Gitee Fork:419
  • 项目开发

    • 版本迭代:9次(2.1.9 -> 2.9.0)
    • 交易接口:21个(移除23个)
    • 策略应用:16个(不变)
    • 数据库适配器:8个
    • 数据服务:7个
  • 社区交流

    • 论坛用户数量:31033 (+12889)
    • 论坛帖子数量:28485 (+10911)
    • 社区活动:8次
    • 专题小班课:3次

 

用户数量

截止2022年1月17日,vn.py在Github上一共收获了17369个Star,Fork数量达到7k,继续保持线性增长。下图来源于统计工具Star History

description

除了Github外,我们在国内代码托管平台Gitee上维护的vn.py仓库也保持同步更新,累计已经收获1018个Star和419个Fork。

 

项目开发

2021年vn.py的主要开发工作就是【模块剥离计划】,截止12月底发布的2.9.0版本已经基本收尾。除了通用功能依旧保留在核心框架项目下,所有的交易接口(gateway)、应用模块(app)、数据库适配器(database)、数据服务接口(datafeed)都已经剥离到了独立的功能模块项目中。具体剥离后的模块信息,可以参考之前发布的《vn.py发布v2.9.0 - 模块剥离计划收尾》。

除了模块剥离方面的工作外,2021年也更加聚焦于国内机构用户的需求,精简移除了部分用户量较少的交易接口,新增了以下证券和期货方面的接口:

  • EsunnyGateway:易盛柜台兼容交易接口(内盘期货、黄金TD);
  • OstGateway:东方证券OST极速柜台交易接口(股票);
  • HtsGateway:顶点HTS柜台交易接口(ETF期权);
  • TtsGateway:TTS仿真系统交易接口(仿真模拟)。

数据库方面,增加了一系列读写性能优秀的NoSQL数据库支持,包括:

  • DolphinDB:国产高性能分布式时序数据库;
  • Arctic:基于MongoDB扩展开发的金融时序数据库;
  • LevelDB:Google推出的高性能Key/Value数据库。

对于历史数据服务则是开发了独立的抽象接口(vnpy.trader.datafeed),并扩展了支持的数据服务范围:

  • 云端类:

    • 恒有数UData
    • TuShare
    • 天勤TQSDK
  • 客户端类:

    • 万得Wind
    • 同花顺iFinD
    • 天软TinySoft

策略应用方面,根据社区反馈的需求重构开发了新的WebTrader模块,采用FastAPI作为后端Web服务器:

description

整体架构图

description

服务参数配置

description

前端接口文档

 

社区交流

虽然2021年疫情明显好转,但反复出现的零星案例还是多次打乱了我们的线下活动计划。全年一共举办了8场社区活动(包括线上和线下),大概是近几年来比较少的了,专题小班课也因为同样的原因一共只搞了3场。

2021年回顾完,下一篇就是对2022年的计划了。今年我们将会启动全新3.0大版本的开发工作,如果你对vn.py过去一年有什么想分享的吐槽的,或者对新的一年有什么建议和期望,都在文章下面欢迎留言告诉我们!

 

发布于vn.py社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2022-01-04
 

上周四发布了vn.py的2.9.0版本,总算赶在2021年的最后几天收尾了整个模块剥离计划,至此vn.py的交易接口(gateway)、应用模块(app)、数据库适配器(database)、数据服务接口(datafeed)都已经完成剥离,并支持通过pip按需安装和快速升级。

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

https://download.vnpy.com/veighna-studio-2.9.0.exe

 

剥离后的模块一览

 

从2.3.0开始启动的模块剥离计划总算基本收尾,已经剥离的vn.py模块根据功能分类,做了下面几张表格方便大家快速查看,注意表格中的【支持】范围指的是vn.py目前支持的功能,而非对应系统的全部功能:

description

description

description

description

上述模块均可以在gitee上的【vn.py官方】账号下查看源代码仓库,觉得喜欢的话欢迎点个Star!

 

其他更新

 

策略应用模块

将RPC服务和交易接口,剥离到vnpy_rpcservice项目中

交易接口模块

新增顶点HTS柜台的ETF期权交易接口vnpy_hts;
南华期货NHTD接口,剥离到vnpy_nhtd项目中;
国泰君安证券统一交易网关接口,剥离到vnpy_hft项目中;
顶点飞创ETF期权交易接口,剥离到vnpy_sec项目中;
将vnpy_uft恒生UFT接口的API版本升级到3.7.2.4。

 

CHANGELOG

 

新增

  1. 新增顶点HTS柜台交易接口vnpy_hts

修复

  1. 修复vnpy_tora撤单时,由于撤单编号和委托编号冲突导致的撤单失败问题
  2. 修复vnpy_tora股票委托状态中【未成交】状态的错误映射问题
  3. 修复vnpy_ctabacktester中,回测开始日期编辑框的数据缓存问题
  4. 修复vnpy_udata中,分段下载数据时,可能进入死循环的问题
  5. 修复vnpy_udata中,修复下载的数据量为空时,出现的异常报错问题
  6. 修复vnpy_dolphindb中,合约名带有符号时数据无法读取问题

调整

  1. 移除恒生期权hsoption接口
  2. vnpy_webtrader增加对于自定义监听地址和端口的支持
  3. vnpy_mongodb锁定pymongo的依赖版本为3.12.3
  4. vnpy_udata安装脚本中添加hs_udata库的依赖
  5. vnpy_uft升级使用3.7.2.4版本的恒生API接口

剥离

  1. 将南华期货NHTD交易接口剥离到vnpy_nhtd项目中
  2. 将国泰君安证券统一接入网关交易接口剥离到vnpy_hft项目中
  3. 将顶点飞创交易接口剥离到vnpy_sec项目中
  4. 将RPC服务和接口剥离到vnpy_rpcservice项目中

发布于vn.py社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2021-12-13
 
上周发布了vn.py的2.8.0版本,本次更新的内容主要是对证券相关的API接口进行了更新和升级,包括:华鑫证券奇点极速柜台接口升级4.0版本、新增东方证券OST极速柜台接口,满足合格机构投资者使用vn.py进行证券程序化交易的需求。

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

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

 

模块剥离的说明

 

现有问题

首先要跟大家说一声抱歉,最近一周尝试安装VN Studio-2.8.0的同学,可能有不少都见过了下面这个报错:

description

这个安装报错自从VN Studio发布以来就陆续有出现,在最近几个月的版本中出现频率显著变高。背后的核心原因是随着vn.py提供的各种交易接口(gateway)、数据服务(datafeed)、数据库适配器(database)等功能的增多,底层依赖模块之间的版本冲突和安装问题就越发容易出现。

比如这次VN Studio-2.8.0的报错,经过排查后最终定位到了arctic这个库上,其最近更新的新版本中:

  • 一方面由于需要用到Panel这个数据结构,将pandas依赖锁定在了1.0.3以下的版本(pandas最新版本已经是1.3.5);
  • 另一方面用于高性能数据压缩的lz4依赖库,在安装时需要使用Visual Studio从源代码进行编译(大部分人没有安装)。

解决方案

定位到上述问题后,我们重新打包了VN Studio-2.8.1,移除了之前版本中的vnpy_arctic模块,目前内部测试下来安装上已经没有问题。

需要用到Arctic数据库的用户,可以通过下述命令进行安装:

# 升级pip到最新版本python -m pip install pip
# 安装vnpy_arcticpip install vnpy_arctic

以上方案算是快速治标解决了2.8.0的问题,但是要从根本上解决还是得回到从2.3.0以来启动的【模块剥离计划】,以下黑体加粗链接可以点击后查看gitee上的具体项目仓库:

  • vn.py本身作为框架核心库,只保留量化交易系统最通用的组件(事件引擎、数据结构、抽象接口、标准UI等);

  • 其他针对性的功能(如具体的交易接口、数据库适配器、策略应用等)则作为扩展插件库,用户可以根据自己的需求选择安装,如:

以上所有的【库】(对应Python中的Package概念,比如NumPy、pandas),在剥离后都会对其依赖进行严格的版本控制管理,从而解决掉由于vn.py功能变得丰富后产生的各种安装和维护问题。

其他影响

目前最新版本的vn.py中,已经完成了大约90%的模块剥离工作,剩下部分也会在3.0发布前全部完成。

未来3.0版本发布后(预计2022年一季度),将会恢复支持基于pip的安装方案,对于有扩展开发需求的vn.py用户来说,系统的持续迭代和维护将会变得更加容易。

 

证券接口的更新

 

截止目前,vn.py开源项目中所支持的全部证券相关API交易接口,都需要用户联系券商完成相关的三方系统采购后,才能在实盘交易中使用。基本要求如下:

  • 客户身份

    • 个人客户,需要获得专业投资者资格认定,部分券商要求为:

      • 资金门槛:300万;
      • 投资经历:一年以上股票交易经验;
    • 机构客户,持有私募基金牌照,或者其他机构投资者牌照;

  • 技术系统

    • 实盘交易中,交易系统需要运行于券商托管机房内的服务器上(不支持互联网方式接入);
    • 交易系统需要通过券商的安全和合规测试,并完成三方系统采购流程。

以上情况仅供参考,具体要求各家券商有所区别,有需求可以联系券商客服人员咨询详细情况。

华鑫证券奇点接口(vnpy_tora)

华鑫证券的奇点柜台最近发布了4.0的大版本升级,具体功能介绍可以查看其官网:N视界量化投资

最新版本vn.py中对奇点接口的支持包括:

  • 股票交易ToraStockGateway

    • 4.0.2版本的交易API
    • 1.0.0版本的Level 1行情API
    • 4.0.0版本的Level 2行情API
  • 期权交易ToraOptionGateway

    • 1.2.6版本的交易和行情API

东方证券OST接口(vnpy_ost)

OST是由东方证券推出的极速交易柜台,最新版本vn.py中提供了对接OST股票交易的OstGateway,在行情上对接了OST基于UDP的Level 2行情API。

 

其他更新

 

策略应用模块剥离

  1. PortfolioStrategy,投资组合策略模块,剥离到vnpy_portfoliostrategy项目中;
  2. PaperAccount,本地仿真交易模块,剥离到vnpy_paperaccount项目中;
  3. ExcelRtd,Excel RTD实时数据服务模块,剥离到vnpy_excelrtd项目中。

交易接口模块剥离

  1. 飞马期货交易接口,剥离到vnpy_femas项目中;
  2. 金仕达黄金交易接口,剥离到vnpy_ksgold项目中。

 

CHANGELOG

 

新增

  1. 新增东证OST柜台交易接口vnpy_ost

  2. 增加投资组合策略模块的策略参数优化功能

修复

  1. 修复部分C++接口模块剥离后,遗留的安装脚本编译代码导致的报错问题

  2. 修复vnpy_xtp订阅深交所行情后,可能出现的闪退问题

  3. 修复vnpy_tushare部分数据字段为None时,导致的数据错误

  4. 修复vnpy_mini在夜盘换日时上期所行情时间戳的日期字段误差问题

  5. 修复vnpy_uft的ETF期权合约信息解析缺失的问题

  6. 修复vnpy_wind下载数据存在缺失时的N/A解析问题

  7. 修复vnpy_webtrader的html静态文件缺失的问题

  8. 修复vnpy_dolphindb存储Tick数据时的数据类型问题

  9. 修复vnpy_dolphindb读取数据为空时的报错BUG

  10. 修复vnpy_esunny查询黄金TD合约的合约乘数为0的问题

  11. 修复vnpy_ctastrategy策略初始化读取布尔值false失败的问题

  12. 修复vnpy_rohon的期权合约字段赋值错误的问题

  13. 修复vnpy_leveldb的Linux安装依赖库问题

调整

  1. 移除老版本基于requests库的RestClient客户端

  2. 移除老版本基于websocket-client库的WebsocketClient客户端

  3. vnpy_tts增加对上交所和深交所股票模拟交易的支持

  4. 移除vnpy_ctp的期权询价指令

  5. 增加vnpy_ctp的授权码验证失败后,避免重复操作的功能

  6. 优化vnpy_uft的断线重连行情订阅逻辑

  7. 增加vnpy_arctic对于用户名和密码的鉴权功能

  8. 增加vnpy_mini对于股指期权的支持

剥离

  1. 将华鑫奇点交易接口剥离到vnpy_tora项目中,并升级到4.0版本

  2. 将飞马交易接口剥离到vnpy_femas项目中

  3. 将金仕达黄金接口剥离到vnpy_ksgold项目中

  4. 将投资组合策略模块剥离到vnpy_portfoliostrategy项目中

  5. 将Excel RTD模块剥离到vnpy_excelrtd项目中

  6. 将本地仿真模拟交易模块剥离到vnpy_paperaccount项目中

© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

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