原文作者:用Python的交易员 | 发布时间:2022-10-30
022年VeighNa小班特训营年终两场开始报名,主题分别是:
目前已经有部分名额被提前报名锁定,感兴趣的同学请抓紧。老规矩还是放几张之前特训营的照片:
准备完毕,静候同学们到达
学习量化,掌握核心系统框架
深入代码,分析策略逻辑细节
两场小班特训营的时间还是都会定在周末两天,一共包含周六周日两个下午共计10小时的内容讲解,以及后续3个月的助教跟踪辅导。
线下参与的地点在上海浦东,考虑到新冠以来大家对于坐火车飞机的健康风险顾虑,不想来上海的同学也可以选择远程线上听课。
特训营的详细时间和大纲如下(具体内容会根据学员反馈感兴趣的主题进行调整):
日期:2022年11月26日(周六)和11月27日(周日)
时间:两天下午1点-6点,共计10小时
大纲:
市场微观结构
a. 期货、股票、期权、外汇、美股,这些不同市场的微观交易结构是怎样的?
b. 行情是怎么形成的,到底什么是tick?
c. 下单后,委托请求是怎么一步步到达交易执行端,再返回委托结果的?
C++ API的Python封装
a. pybind11、cython、ctypes等封装技术的详细讲解
b. 针对国内各种风格的C++ API,如何实现低延时的封装方案
交易接口业务层的功能对接开发
a. 从0开始对接开发交易接口
b. 如何针对某一市场定制交易接口,充分利用STOP、FAK、FOK等委托?
RPC核心交易路由服务
a. 认识VeighNa的RPC开发框架:REQ-REP和SUB-PUB模式
b. 应用RpcGateway交易接口,实现轻量级多进程实盘交易架构
c. RpcService模块扩展开发,添加标准化TWAP算法交易支持
价格:10999元
日期:2022年12月17日(周六)和12月18日(周日)
时间:两天下午1点-6点,共计10小时
大纲:
CTA策略开发
a. 投研历史数据解决方案,多种数据库配置、历史行情记录、异常数据清洗
b. 基于模板开发CTA策略,参数变量设计,回调函数处理,交易函数详解
c. 深入K线时间序列:自定义K线合成,技术指标定制,时间序列统计分析
策略回测优化
a. 回测引擎核心业务逻辑流、委托撮合规则(停止单、限价单)、策略状态控制
b. 回测图表的分析方法,统计数据分析中的误区
c. 优化算法详解:暴力穷举算法、智能遗传算法
实盘交易运维
a. 策略每日盘中的生命周期管理
b. 历史数据初始化、策略运行状态同步管理
c. 盘中交易异常处理方案
CTA策略案例
a. 股指期货策略源代码分享:SuperCombo、Cuatro、NewDualThrust
b. 商品期货策略源代码分享:MoneyFlow、OscillatorDrive、CincoStrategy
c. 外盘市场策略源代码分享:SuperTurtle、KeltnerBandit、RsiMomentum
d. CTA策略中的交易算法实现:委托细粒度状态机管理
价格:11999元
报名方式和之前一样,请发送邮件到vn.py@foxmail.com,注明想参加的特训营、姓名、手机、公司、职位即可。或者也可以扫描下方二维码添加小助手咨询报名:
发布于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
发布于veighna社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2022-08-29
一张图系列再次更新!基于《全实战进阶 - 超越海龟策略精析》的课程内容,我们制作了这张【知识要点图】:
看完对课程感兴趣的话,请戳【课程传送门】。
作为海龟实盘交易执行系统相关内容的补充和延续,下一阶段的《零基础入门 - 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终端。安装完成后双击桌面快捷方式,打开登录窗口:
点击左下方的【申请账号】按钮,跳转到掘金官网的【新用户注册】页面:
完成注册后,使用注册中填写的信息登录。登录成功会自动弹出掘金量化终端的主窗口,如下图所示:
使用VeighNa Trader的掘金仿真交易接口GmGateway,需要用到密钥Token和账户ID两个信息。
点击掘金主窗口右上角的【系统设置】,在弹出的界面中找到密钥管理(Token)栏目,即可看到当前账户的密钥Token信息:
然后回到掘金主窗口,点击顶部的【账户管理】按钮进入账户界面,此时根据情况不同可能看到一个或者多个仿真账户:
找到想要使用的仿真账户,点击其下方【复制账户ID】按钮(上图中红框),即可将该账户ID复制到剪切板。
有了这两个信息后,就可以在VeighNa Station中配置加载GmGateway并启动VeighNa Trader,随后点击主界面菜单栏的【系统】->【连接GM】按钮,在弹出的对话框中输入Token和账户ID,即可连接掘金仿真交易接口。
接口连接成功后,会自动执行初始化查询(包括账户资金、合约持仓、交易委托和成交信息等),每一步完成均会在左下角的日志区域输出对应的信息提示:
掘金仿真交易接口的行情依赖于TuShare数据服务,需要在全局配置中配置TuShare相关账户信息(修改以datafeed开头的字段),具体可以参考这里的vnpy_tushare模块说明文档。
尤其需要注意的是,在使用掘金仿真交易接口的过程中,需要始终保持掘金量化终端的开启运行,否则会导致交易接口断开连接。
完成上述步骤后,就可以很方便的在掘金仿真环境中订阅实时行情、进行手动交易和运行量化策略了,整体使用方式和其他VeighNa Trader常用交易接口基本一致:
如果连接GM接口后,弹出异常信息报错:“抱歉,您输入的TOKEN无效!”:
则说明TuShare账号配置有问题,请点击VeighNa Trader菜单栏的【配置】按钮,在全局配置对话框中检查以datafeed开头的字段是否有误。
掘金默认仿真账户的撮合方式是精准撮合(仅交易时段可用),如果想要使用模拟撮合环境(7 x 24小时可用),可以在掘金量化终端的【账户管理】界面点击右上角的【添加仿真账户】按钮:
在弹出的窗口中填入相关信息即可创建新的仿真账户(账户名称和期初资金可随意填写),如下图所示:
创建成功后,可以看到【账户管理】界面上已经显示新申请账户的信息:
此时手动点击新账户信息右侧的【连接】按钮,在掘金量化终端中启用并连接该账户,就可以复制新账户的账户ID去VeighNa Trader连接掘金仿真交易接口了。
新增数据库组件vnpy.trader.database中的TickOverview对象
新增掘金仿真环境交易接口vnpy_gm
BaseData基础数据类型增加extra字段(字典类型),用于传送任意相关数据
使用Python内置的zoneinfo库替换三方的pytz库
调整相关交易接口、数据服务接口、数据库适配器、应用模块,使用新的ZoneInfo对象来标识时区信息
数据库适配器接口vnpy.trader.database写入数据时,新增流式写入参数stream,提高行情录制性能
公司全称
申万宏源证券有限公司
基本介绍
申万宏源证券有限公司是由申银万国证券股份有限公司与宏源证券股份有限公司,于2015年1月16日合并组建而成。公司营业网点遍布全国,在香港设有子公司,并设有伦敦、东京、新加坡、首尔等海外分支机构(以上信息来自申万宏源官网)。
职位名称
模型开发岗 - 固定收益外汇商品事业部(FICC事业部)
薪资范围
行业有竞争力的薪资。
岗位职责
任职要求
邮箱
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是一款由涛思数据(taosdata)推出的国产开源时序数据库,其特点除了高性能、分布式、支持SQL,同时还带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少研发和运维的复杂度(以上介绍来自涛思数据官网)。
本次更新中新增了vnpy_taos模块用于实现TDengine数据库的连接适配。在安装流程上TDengine可能略显复杂,因此这里我们专门列举出每个步骤中需要注意的重点。
截止目前,TDengine的服务端只提供了Linux版本,用户可以根据自己的需求选择Docker、apt-get、安装包或者源码编译的方式进行安装。这里考虑到VeighNa官方主力支持的Linux版本是Ubuntu,推荐初次尝试的同学使用apt-get的安装方式,具体安装流程可以参考TDengine文档中的【服务器安装章节】。
TDengine的客户端除了Linux外也支持Windows系统,注意为了避免客户端驱动和服务端不兼容,请安装使用一致的版本,具体安装流程可以参考官方文档中的【客户端安装章节】。
使用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是基于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: 默认为空
新增
调整
修复
发布veighna社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2022-06-22
微信 18391752892成立于2017年,注册资本1000万元,是一家从事金融量化交易平台开发和相关技术咨询的FinTech公司。公司自主研发的【VeighNa量化交易平台】是目前世界用户量排名领先的开源量化交易平台(基于Github Star排名)。
公司核心团队位于浦东内环核心商圈的写字楼,毗邻世纪公园,交通十分便利。工作氛围人性化,实行7.5小时工作制,拒绝996(我们不加班!)。每年公司都会为团队员工提供各类丰富的量化研究和软件开发相关培训课程,同时为了保证员工的身体健康公司为正式员工每年免费VIP体检一次。
办公室装有24小时新风系统,空气净化器,提供能量早餐,茶水咖啡零食无限量供应,有微波炉冰箱方便自行携带午餐,公司额外提供午餐补贴,写字楼与商场相连,觅食十分方便(午餐休息时间1.5小时)。
办公室配备公共健身房及乒乓球桌等,方便运动。公司实行小规模高效率的精英团队模式,一切以效率第一优先。
招聘职位:量化社区运营专员
工作经验:1-2年
岗位职责:
岗位要求:
招聘职位:量化系统开发工程师
工作经验:1-3年
岗位描述:
岗位要求:
招聘职位:量化系统高级架构师
工作经验:3-5年
岗位描述:
岗位要求:
薪资福利:
邮箱:
投递简历的邮件请注明申请公司和职位。
发布于veighna社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2022-06-06
2022年以来陆续已经有不少同学咨询小班特训营的开始时间,但是由于上海疫情的影响加上开发任务的增加,今年的小班特训营一直拖着。
最近终于迎来了上海解封,2022年的VeighNa小班特训营也正式开始报名!!计划今年推出的场次不会太多,感兴趣的同学请抓紧机会~~
目前先开放两场名额(有些老铁们去年就已经报名锁定了今年的名额,感谢对我们课程的认可与支持),老规矩还是放几张之前课程的照片:
准备完毕,静候同学们到达
学习量化,先从掌握核心框架
深入代码,分析策略逻辑细节
所有小班特训营时间定在周末两天,一共包含周六周日两个下午共计10+小时的课程,设立特训营专属答疑群,包括后续三个月的助教跟踪辅导,提供VeighNa小班特训营专属内部核心资料。
线下课程的地点在上海浦东,考虑到新冠以来大家对于坐火车飞机的健康风险顾虑,不想来上海的同学我们也提供远程线上听课(直播+录播)。对于所有参加小班特训营的学员,在课程结束后都会拿到课程的完整录播视频,可永久回看。
日期:2022年7月16日(周六)和7月17日(周日)
时间:两天下午1点-6点,共计10小时
大纲:
初识套利价差交易
a. 套利类策略的特点:靠高胜率获得核心优势
b. 如何寻找好的套利价差,从数据面和基本面着手
c. 价差组合时间序列建模:相关性分析、协整算法
价差数据结构设计
a. 价差腿LegData和价差组合SpreadData
b. 价差盘口计算原理:价格、数量、统计算法
c. 基于动态解析的灵活价差数据计算
d. 实盘数据流驱动,底层接口到上层算法
价差交易算法实现
a. 价差执行算法和价差量化策略的异同
b. 基于SpreadAlgoTemplate实现狙击算法
c. 价差做市算法实现,盘口细粒度委托控制
价差量化策略开发
a. 半自动固定范围买卖策略
b. 全自动统计套利模型策略
c. 网格区间价差交易策略
价差交易实战进阶:
a. 价差策略回测:TICK模式和K线模式
b. 实盘策略运维原则,安全、稳定
c. 主动腿挂单做市算法的实现
价格:11999元(老学员和Elite会员折扣不变)
日期:2022年8月27日(周六)和8月28日(周日)
时间:两天下午1点-6点,共计10小时
大纲:
交易接口封装
a. 从0开发CtpGateway:掌握交易API的工作原理
b. VeighNa数据结构:贯穿整个系统的数据对象定义
c. 统一交易接口功能:标准化对接各类交易API接口
核心引擎设计
a. 事件驱动引擎原理:如何实现Event-Driven架构
b. 高性能数据缓存:O(1)查询复杂度容器应用
c. CTA交易引擎构架:开发量化策略实盘交易引擎
d. CTA回测引擎详解:保证实盘一致性的回测体系
图形界面开发
a. 上手PySide6开发:新一代的Qt UI开发工具库
b. 掌握图形控件使用:实现和策略引擎的数据交互
c. 数据实时监控刷新:QTableWidget的高性能用法
d. 窗口和对话框管理:开发满足实盘交易需求的界面布局
项目代码管理
a. 开通Github仓库:大型项目代码开发和维护的神器
b.项目代码管理流程:开发->测试->提交->合并->发布
c. Type Hinting实践:Python语言中的类型提示管理
d. 自动化代码检查工具:大幅减少代码中的各种类型Bug
应用开发实战
a. 全自动任务运行:无人值守模式下的策略交易管理
b. 守护父进程实现:实现交易子进程的监控和定时启停
c. 异常监控报警:捕捉到策略或者系统异常后实时通知
d. 应用模块开发:构造属于你的专属交易应用app模块
价格:11999元(老学员和Elite会员折扣不变)
报名方式和之前一样,请发送邮件到vn.py@foxmail.com,注明想参加的课程、姓名、手机、公司、职位即可。或者也可以扫描下方二维码添加小助手咨询报名:
课程对于之前参加过小班特训营的学员优先开放,同时提供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版本:
在左侧导航栏找到【更新】标签切换页面,此时可以先点击页面左下角的【检查】按钮,查看当前本地VeighNa Studio内已安装的三方库版本:
点击右下角的【更新】按钮后,会自动连接服务器获取目前VeighNa相关模块已发布的新版本号,并使用子进程对逐个模块执行更新升级,更新过程中的日志信息会输出在右侧的监控区域:
更新完成后会自动弹出对话框提示重启,此时需要手动关闭VeighNa Station来完成重启操作。
如果发现有部分模块更新失败或者出错的情况,可以尝试再次点击【更新】按钮执行任务。对于持续失败的情况,建议选中复制右侧日志区域里的相关日志信息后,在社区论坛的【安装指南】板块咨询求助。
不少同学在论坛反馈了上个版本中遇到的这个get_localzone().zone函数warning提示:
背后原因是在时区相关的定义和转换上,从Python 3.9版本开始新增了zoneinfo内置库用于替代之前社区维护的pytz三方库,两者之间的API设计有所区别。
本次更新中将tzlocal库升级到了4.2版本,同时将get_localzone().zone替换为新的get_localzone_name函数解决了上述问题。
在之前版本的pymongo中,由于需要使用collection.replace_one函数来保证主键(vt_symbol、interval、datetime)约束下的数据更新,只能采用逐条数据写入的方式,导致vnpy_mongodb模块的K线和Tick数据的写入性能相当差。
感谢社区dyllanwli贡献的数据批量写入功能,基于pymongo新的4.0版本中引入的bulk_write函数,写入时间和读取速度相对之前有了显著提升。
发布于veighna社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2022-04-15
《全实战进阶 - 超越海龟策略精析》课程更新到第20集,最新的5集重点讲解了海龟信号的策略代码开发、历史回测优化和批量自动化任务的详细操作方法。详细课程大纲请戳我~~~
这张图同样是来自于社区用户反馈的需求:3.0新版本的各项功能拆分到独立模块中后,对于新手来说学习成本提高了不少,用思维导图的方式来梳理会清晰许多:
最后,如果觉得有任何遗漏或者偏差,欢迎在下方的讨论区拍砖和讨论!!!
发布于veighna社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2022-03-31
年初项目计划里提到,今年打算多举办的一系列社区活动正式开始。目前上海疫情严重无法组织线下活动,所以采用纯线上直播模式。
本次分享的主题是:【VeighNa 3.0新特性解析 】,其中会重点讲解3.0发布后,许多资深用户关心的:如何按需定制开发和构造管理自己的VeighNa专用交易版本。
内容:
重构后的VeighNa Station
VeighNa定制交易系统管理
多交易接口功能增强
QA问答环节和后续新功能需求交流
时间:4月9日 14:00-17:00
地点:线上直播(支持回看)
报名费:99元
报名方式:扫描下方二维码报名
也可以点击文章底部的原文链接跳转~
报名完成后,可以再次扫描上方二维码进入直播间(或者收看回放)!!!
发布于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的原因,在之前的《2022年的项目计划》中已经有详细解析,这里就不再重复了。
目前大部分VeighNa的插件模块都已经完成3.10的编译升级,少数由于依赖库问题尚未支持的模块包括:
交易接口
数据库
数据服务
以上模块预计将会在相关底层依赖库发布3.10版本后尽快完成支持。
兼容性方面,为了尽可能方便老版本用户的升级,VeighNa 3.0.0版本的代码回避了Python 3.7后引入的新语法特性,从而实现3.7、3.8、3.9的向后兼容。
需要注意的是,部分交易接口在Windows上非Python 3.10的环境安装时,必须安装有Visual Studio 2017以上版本来完成相关的底层编译任务。
作为VeighNa框架的图形化管理工具,VeighNa Station在过去基本只是处于【能用】的状态,很难达到【好用】的评价,可能不少老用户都有过以下类似的经历:
所以趁着这次大版本的升级,对整个VeighNa Station进行了一次重构,一方面致力于解决过去经验中发现的各种问题,另一方面也尽可能利用当下Python的新技术特性,来打造一款称得上【好用】的产品。新版本的登录后主界面如下图:
主界面变化不大,功能按钮从底部移动了左侧,采用标签页面的方式来替代原本的弹出窗口,视觉上更加清爽一些。点击【交易】按钮,切换到VeighNa Trader配置页面:
左侧采用树型表格来选择接口和应用模块的加载,并将VeighNa Trader进程运行过程中的底层输出信息(cmd打印)显示在右侧的监控区域,方便必要时的异常信息排查。
在【投研】页面中,以内嵌方式来启动Jupyter Lab环境,提供更加一体化的交互式开发体验:
另外代码加密和自动更新功能也都做了对应的改进优化,感兴趣的用户可以先尝试看看,交互界面上基本还是采用了和之前类似的流程,具体使用文档将会后续推出。
移除api、gateway、app子模块的目录
移除requirements.txt对于插件的默认依赖
简化重构rpc子模块,定位于可靠环境下跨进程通讯(本机、局域网)
移除rpc子模块对于鉴权的支持
调整rpc子模块中的心跳机制的实现方式
移除基于QScintilla开发的代码编辑器,改用VSCode打开代码
优化MainWindow主窗口中,对于QAction按钮图标的加载逻辑
MainEngine添加交易接口时,支持自定义接口名称
发布于veighna社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2022-03-21
起源于差不多40年前的海龟策略(Turtle Trading Rules),知名程度想必不用多说,经历了这么多年的市场变迁后,依然保持着相当的热度(在VeighNa社区的论坛和交流群中都经常可以看到大家的讨论)。
究其原因,可能海龟策略的体系化特征占据了很重要的因素:从系统化交易(systematic trading)的核心理念、到买卖信号和组合构建的具体规则、再到回测研究中的各种关键细节,可以非常有效的启发交易员来构建自己的交易策略。
回顾一下之前发过的量化学习进阶路径图:
离【VeighNa实战进阶课程】CTA系列的第一阶段完成已经过去两年多,第二阶段《超越海龟策略精析》终于上线!整个课程中将会基于新的VeighNa 3.0版本,来精细解析海龟策略的方方面面。
课程目前一共计划40节,内容大纲如下(黑体加粗课时为代码实践内容):
这门课程适合的人群:
课程当前已经上线,价格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!》。
除此外,由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的升级中,由于函数接口和数据结构的变化,给许多老用户的升级带来了不小的麻烦。
本次2.0 -> 3.0的升级中,将会尽可能保证向上兼容性。具体来说,对比2.0大版本中收尾的2.9.0:
底层数据结构名称兼容,如:
数据结构字段和类型兼容,如:
事件引擎和核心引擎的方法函数兼容,如:
标准插件基类的方法函数兼容,如:
策略应用模块的策略模板兼容,如:
总体上的目标,就是使用2.9.0开发运行交易策略的用户,可以平滑的过度到3.0上,不用再重写大量已有的代码(毕竟再也不想有类似Python 2 -> 3的迁移经历了)。
在3.9和3.10之间摇摆了几周,考虑到未来几年的技术迭代需求以及性能速度优势,还是决定选择3.10版本的Python来作为新的官方主力支持版本(之前三年使用的是3.7)。
截止目前(2022年1月26日),许多量化交易中常用的工具库也都已经发布了3.10版本的支持,包括NumPy、Pandas、Plotly、PyZMQ等。
本次主力支持版本升级后,列举两个比较值得期待的改进尝试方向:
多进程共享内存支持(3.8新增)
结构化模式匹配(3.10新增)
从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的代码可读性变得更加清晰。
发布于vn.py社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2022-01-18
之前12月底发布的2.9.0,为vn.py自从2019年以来开发迭代了三年的2.0大版本画上了一个句号。2022年已经开始了半个多月,虽然迟了点,不过老规矩还是要对2021年来做个总结回顾。
先来看一眼2021年的vn.py项目整体数据(虽然统计日期是2022年1月17日):
用户数量
项目开发
社区交流
截止2022年1月17日,vn.py在Github上一共收获了17369个Star,Fork数量达到7k,继续保持线性增长。下图来源于统计工具Star History:
除了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年也更加聚焦于国内机构用户的需求,精简移除了部分用户量较少的交易接口,新增了以下证券和期货方面的接口:
数据库方面,增加了一系列读写性能优秀的NoSQL数据库支持,包括:
对于历史数据服务则是开发了独立的抽象接口(vnpy.trader.datafeed),并扩展了支持的数据服务范围:
云端类:
客户端类:
策略应用方面,根据社区反馈的需求重构开发了新的WebTrader模块,采用FastAPI作为后端Web服务器:
整体架构图
服务参数配置
前端接口文档
虽然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目前支持的功能,而非对应系统的全部功能:
上述模块均可以在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。
发布于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的同学,可能有不少都见过了下面这个报错:
这个安装报错自从VN Studio发布以来就陆续有出现,在最近几个月的版本中出现频率显著变高。背后的核心原因是随着vn.py提供的各种交易接口(gateway)、数据服务(datafeed)、数据库适配器(database)等功能的增多,底层依赖模块之间的版本冲突和安装问题就越发容易出现。
比如这次VN Studio-2.8.0的报错,经过排查后最终定位到了arctic这个库上,其最近更新的新版本中:
定位到上述问题后,我们重新打包了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交易接口,都需要用户联系券商完成相关的三方系统采购后,才能在实盘交易中使用。基本要求如下:
客户身份
个人客户,需要获得专业投资者资格认定,部分券商要求为:
机构客户,持有私募基金牌照,或者其他机构投资者牌照;
技术系统
以上情况仅供参考,具体要求各家券商有所区别,有需求可以联系券商客服人员咨询详细情况。
华鑫证券的奇点柜台最近发布了4.0的大版本升级,具体功能介绍可以查看其官网:N视界量化投资。
最新版本vn.py中对奇点接口的支持包括:
股票交易ToraStockGateway
期权交易ToraOptionGateway
OST是由东方证券推出的极速交易柜台,最新版本vn.py中提供了对接OST股票交易的OstGateway,在行情上对接了OST基于UDP的Level 2行情API。
新增东证OST柜台交易接口vnpy_ost
增加投资组合策略模块的策略参数优化功能
修复部分C++接口模块剥离后,遗留的安装脚本编译代码导致的报错问题
修复vnpy_xtp订阅深交所行情后,可能出现的闪退问题
修复vnpy_tushare部分数据字段为None时,导致的数据错误
修复vnpy_mini在夜盘换日时上期所行情时间戳的日期字段误差问题
修复vnpy_uft的ETF期权合约信息解析缺失的问题
修复vnpy_wind下载数据存在缺失时的N/A解析问题
修复vnpy_webtrader的html静态文件缺失的问题
修复vnpy_dolphindb存储Tick数据时的数据类型问题
修复vnpy_dolphindb读取数据为空时的报错BUG
修复vnpy_esunny查询黄金TD合约的合约乘数为0的问题
修复vnpy_ctastrategy策略初始化读取布尔值false失败的问题
修复vnpy_rohon的期权合约字段赋值错误的问题
修复vnpy_leveldb的Linux安装依赖库问题
移除老版本基于requests库的RestClient客户端
移除老版本基于websocket-client库的WebsocketClient客户端
vnpy_tts增加对上交所和深交所股票模拟交易的支持
移除vnpy_ctp的期权询价指令
增加vnpy_ctp的授权码验证失败后,避免重复操作的功能
优化vnpy_uft的断线重连行情订阅逻辑
增加vnpy_arctic对于用户名和密码的鉴权功能
增加vnpy_mini对于股指期权的支持
将华鑫奇点交易接口剥离到vnpy_tora项目中,并升级到4.0版本
将飞马交易接口剥离到vnpy_femas项目中
将金仕达黄金接口剥离到vnpy_ksgold项目中
将投资组合策略模块剥离到vnpy_portfoliostrategy项目中
将Excel RTD模块剥离到vnpy_excelrtd项目中
将本地仿真模拟交易模块剥离到vnpy_paperaccount项目中