发布于vn.py社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2021-11-05
在vn.py的2.6.0版本更新中,增加了对恒有数Udata数据服务的支持(vnpy_udata模块),但对于许多vn.py的用户来说,都还是第一次听说这家数据服务商。
这几周陆续在论坛和社区群里,都有收到围绕Udata如何使用的提问,所以在这里专门写一篇文章对Udata的产品情况和使用方法做个介绍。
以下内容来源于恒有数官网:https://udata.hs.net。
恒有数金融数据社区,源自恒生的金融数据开放和可视化社区,旨在为量化投资爱好者、金融从业人员、高校师生、政府机构和财经媒体等人群提供专业的金融数据服务,满足不同用户丰富多样的数据分析和投资研究需求。
核心功能
产品特点
试用申请
在PC端打开恒有数金融数据社区(https://udata.hs.net) 网站主页,点击右上角的【注册】按钮:
使用手机号注册,设置密码,并勾选注册协议等:
首页右上角,点击【登录】按钮,进入登录页面;
在订阅页面,下单免费的体验套餐:
在页面右侧,点击【新人礼包】,领取新人一折券(活动2021-12-31截止):
使用一折券订阅套餐:
在页面右上角,点击【我的订阅】查看订阅信息:
在弹出的页面中,可以看到当前账户已经订阅的信息:
最后点击左侧的【总览】按钮,进入总览页面获取Token:
到这里注意将Token保存下来,用于后续在vn.py中的数据服务配置。
以下操作基于2.7.0版本的vn.py,如果用老版本的同学请先更新升级。
启动VN Trader后进入主界面,点击顶部菜单栏的【配置】按钮,弹出如下图所示的全局配置对话框:
在这里填入数据服务相关的配置字段(datafeed开头),具体为:
点击底部的【确定】按钮后,关闭对话框并重启VN Trader使得新的数据服务配置生效。
然后打开DataManager数据管理模块,点击右上角的【下载数据】按钮,即可下载股票和期货数据:
下载完成后,点击左上角的【刷新】按钮,可以看到数据库中已有的数据信息,点击对应合约的【查看】按钮后可以在右侧区域看到具体的历史数据:
最后需要注意的一些点:
vn.py最近几个版本的更新中,对SpreadTrading价差交易模块做了一次比较大的升级,全面改为使用灵活价差计算公式的同时,也对价差算法执行过程中的细节做了许多优化。
由于价差交易相对稳健的特点,在机构交易员领域是一种极为常用的交易策略,除了期货跨期(例如cu2201/cu2202)和跨品种(例如rb2205/hc2205)外,也同样可以应用于内外盘跨市场交易。
所以计划举办一次活动来详细讲解SpreadTrading模块的使用方法,本次活动很荣幸邀请到了横华国际(南华期货子公司)的嘉宾来分享在外盘交易领域的技术系统细节。
内容:
价差交易的基本概念
价差交易执行算法
价差交易策略
外盘交易技术系统
QA问答环节
时间:11月20日 14:00-17:00
地点:浦东新区芳甸路1155号4楼WeWork会议室M
名额:40人(线下)
报名费:99元
报名方式:扫描下方二维码报名(名额有限,先到先得~)
也可以点击文章底部的原文链接跳转~
报名完成后,可以再次扫描上方二维码进入直播间(或者收看回放)!!!
发布于vn.py社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2021-10-30
2021的最后一场(第三期)vn.py小班课开始报名,老规矩还是放几张之前课程的照片:
准备完毕,静候同学们到达
学习量化,先从掌握核心框架
深入代码,分析策略逻辑细节
小班课时间还是都会定在周末两天,一共包含周六周日两个下午共计10小时的课程,以及后续三个月的助教跟踪辅导。线下课程的地点在上海浦东,考虑到新冠以来大家对于坐火车飞机的健康风险顾虑,不想来上海的同学也可以选择远程线上听课。
本期(总计第14期)课程的主题是【CTA策略交易】,目前剩余名额还有6位,感兴趣的同学请抓紧,课程大纲如下:
日期:2021年12月4日(周六)和12月5日(周日)
时间:两天下午1点-6点,共计10小时
大纲:
1 . CTA策略开发
a. 历史数据完整解决方案,多种数据库配置、历史行情记录、异常数据清洗
b. 基于模板开发CTA策略,参数变量设计,回调函数处理,交易函数详解
c. 深入K线时间序列:自定义K线合成,技术指标定制,时间序列统计分析
2 . 策略回测优化
a. 回测引擎核心业务逻辑流、委托撮合规则(停止单、限价单)、策略状态控制
b. 回测图表的分析方法,统计数据分析中的误区
c. 优化算法详解:多进程穷举算法、单进程遗传算法
3 . 实盘交易运维
a. 策略每日盘中的生命周期管理
b. 历史数据初始化、策略运行状态同步管理
c. 盘中交易异常处理方案
4 . CTA进阶深入
a. 股指期货策略源代码分享:SuperCombo、Cuatro
b. 商品期货策略源代码分享:MoneyFlow、OscillatorDrive
c. CTA策略中的交易算法实现:委托细粒度状态机管理
针对股指日内的SuperCombo策略:
针对焦炭趋势的OscillatorDrive策略:
针对海外市场趋势的SuperTurtle策略:
价格:10999元
报名请发送邮件到event@mail.vnpy.com,注明想参加的课程、姓名、手机、公司、职位即可。
课程对于之前参加过小班课的学员优先开放,同时提供9折的价格优惠。
发布于vn.py社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2021-10-30
本周二发布了vn.py的2.7.0版本,本次更新的内容主要是新增了一系列金融机构投资者常用的数据服务接口,包括:万得Wind、同花顺iFinD和天软Tinysoft,满足机构用户在使用vn.py过程中的数据获取需求。
和之前一样,对于使用VN Studio的用户,启动VN Station后,直接点击界面右下角的【更新】按钮就能完成自动更新升级,对于没有安装的用户,请下载VN Studio-2.7.0,体验一键安装的量化交易Python发行版,下载链接:
https://download.vnpy.com/vnstudio-2.7.0.exe
关于国内量化数据接口的整体介绍,推荐参考之前的这篇公众号文章:
简单总结一下,对比主要面向个人投资者的产品,机构数据服务接口的特点包括:
在vn.py的全局配置中,和数据服务相关的字段全部以datafeed作为前缀,具体字段含义如下:
对于在国内金融机构工作的从业者来说,【万得Wind金融终端】(简称Wind)已经是工作中的标准配置,不管是股票、债券、商品还是外汇市场的数据,Wind可以说是应有尽有。
同时Wind在多年前就推出了数据API,方便用户通过程序快速获取数据进行分析。在本次2.7.0的版本中,vn.py新增了对接了Wind的数据服务接口vnpy_wind,对于许多机构用户来说可能是更为方便的选择。
需要注意的是,vnpy_wind接口连接的是本地电脑运行着的Wind终端(而非远程的Wind服务器),因此在运行前必须先启动并登录Wind终端,在使用过程中也必须保持程序开启不能关闭。
在金融领域提起同花顺这个词,大部分人的第一反应是面向个人投资者的股票交易软件和APP,但其实同花顺公司也同样推出了面向专业机构用户的【iFinD金融数据终端】(简称iFinD),且在过去几年中的市场占有率快速上升:
作为国内老牌金融数据公司的天软,其核心产品【天软.NET金融分析平台】(简称TinySoft),在券商研究所和自营领域积累了大量用户。翻看券商的金融工程研报时,经常会发现图表的备注信息中写有“以上数据来自天软”的数据来源说明:
最近在社区论坛和交流群里,发现有许多同学在询问如何对vn.py进行扩展增强来实现特定的量化交易功能。这块是比基于框架开发量化策略更加深入的主题,涉及到【金融交易】和【系统工程】两大领域的有机结合,计划举办一次活动以实践案例来分享这块的开发经验。
内容:
量化交易系统构架
认识事件驱动编程
程序驱动的模式
进程、线程、协程
事件驱动引擎实战
PyQt图形界面开发
QA问答环节
时间:10月31日 14:00-17:00
地点:浦东新区芳甸路1155号4楼WeWork会议室M
名额:40人(线下)
报名费:99元
报名方式:扫描下方二维码报名(名额有限,先到先得~)
也可以点击文章底部的原文链接跳转~
报名完成后,可以再次扫描上方二维码进入直播间(或者收看回放)!!!
公司全称
上海高频投资管理有限公司
基本介绍
上海高频投资管理有限公司成立于2013年,是一家以金融市场投资和资产管理为主业的专业投资机构,拥有专业的交易团队,自营资金实力雄厚。我公司根据市场变化和管理人的判断,投资基金投资范围内约定的投资品种、投资工具等,力争实现基金资产的稳步增值。通过采用先进的程序化交易系统、多种交易策略,实现多品种、多周期、多策略的投资策略组合,在降低市场风险的同时追求更高收益。截至2021年7月,上海高频产品共计18支,规模合计约17亿元。
职位名称
量化投资经理
薪资范围
基本工资50-80K,根据工作经验不同,具体面议。
岗位职责
负责领导公司量化投资策略的研究、开发和实盘交易;
对所管理的私募产品进行跟踪评价、绩效归因及报告分析;
任职要求
国内外知名院校金融学、金融工程、数学、统计学及相关专业本科(或以上)学历;
具有稳健的投资管理业绩,3年以上量化策略开发经验;
具有较强的金融、投资理论知识,具有基金从业资格;
具有较强的研究分析能力、清晰的逻辑判断能力和良好的表达能力;
具有良好的职业操守和团队合作意识。
职位名称
量化研究员
薪资范围
基本工资15-20K,根据工作经验不同,具体面议。
岗位职责
任职要求
数学、物理、电子、计算机等理工科相关专业
熟悉C编程的优先
具有较强的数据统计、分析能力, 并熟练掌握至少一门统计语言(Python优先)
对金融市场有强烈兴趣、对钻研投资策略有激情、学习能力强、逻辑思维清晰
联系方式
xiaoyou.chen@mail.vnpy.com,投递简历的邮件请注明申请公司和职位。
工作地点
上海
发布于vn.py社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2021-09-26
昨天发布了vn.py的2.6.0版本,本次更新的内容主要是新增了一系列专门针对金融时序数据的高性能数据库支持,包括:DolphinDB、Arctic和LevelDB,大幅提高各类量化策略回测研究的效率。
请注意,2.6.0新版本中包含了对数据库(database)和数据服务(datafeed)全局配置字段的修改,老版本用户升级后需要重新手动配置,具体请参考后面对应的章节内容。
和之前一样,对于使用VN Studio的用户,启动VN Station后,直接点击界面右下角的【更新】按钮就能完成自动更新升级,对于没有安装的用户,请下载VN Studio-2.6.0,体验一键安装的量化交易Python发行版,下载链接:
https://download.vnpy.com/vnstudio-2.6.0.exe
在2.6.0新版本中,参考vn.py对于交易接口的标准化设计BaseGateway(位于vnpy.trader.gateway中),添加了对于数据库适配器的标准化接口BaseDatabase(位于vnpy.trader.database中),实现简洁易用的插件化数据库支持。
新版本的VN Trader全局配置中,和数据库相关的字段全部以database作为前缀,如下图所示(点击主界面顶部菜单栏的【配置】按钮打开):
具体字段含义如下:
2.6.0版本对原有的数据库适配器(vnpy.database)进行了剥离和代码优化,放置到了对应的独立仓库中,允许用户按需安装,这下用Linux系统的同学们再也不用为psycopg2(PostgreSQL数据库驱动)的安装折腾了。
具体的数据库配置请参考下文。
项目地址:vnpy_dolphindb
DolphinDB是由浙江智臾科技有限公司研发的一款高性能分布式时序数据库,特别适用于对速度要求极高的低延时或实时性任务,在国内外金融投资领域有着丰富的应用案例。
作为国产数据库的DolphinDB,在定位上对标的是世界顶级的金融时序数据库Kdb+。目前2.6.0版本支持的所有数据库中,DolphinDB的读写速度均占据No.1的位置。由于目前我们只采用了简单的分区数据表设计,理论上还有进一步优化的空间。
尽管DolphinDB是商业软件,但是也提供了免费的社区版,在安装时注意要选择2.0的Beta版本,我们会在下一篇公众号文章中详细介绍DolphinDB的特点和使用方法。
项目地址:vnpy_arctic
由英国量化对冲基金Man AHL基于MongoDB开发的高性能金融时序数据库,我们团队对于Arctic的了解来源于公众号【量化投资与机器学习】的这篇文章《盘点对冲基金大佬『开源』的Python工具包!》。
简单总结一下Arctic的优势:
Arctic底层使用的是MongoDB数据库服务器,因此安装时直接前往MongoDB官网下载最新版本安装即可。目前不支持自定义端口、用户名、密码等修改,因此请保持默认配置。
项目地址:vnpy_leveldb
由Google推出的高性能Key/Value数据库,基于LSM算法实现进程内存储引擎,支持数十亿级别的海量数据。LevelDB的定位是通用性数据存储方案,对于金融领域的时序数据存储没有特别大的优势,但也比一堆SQL类数据库快多了。
关于LevelDB的作者Google传奇工程师Jeff Dean,在知乎上有一个非常有趣的讨论,感兴趣的同学可以看看:有谁可以介绍一下谷歌大牛Jeff Dean以及与他相关的事迹么?
作为单机数据库的LevelDB,和SQLite类似只需要配置一个数据存储的路径(文件夹)即可,适合作为SQLite的轻量级高性能替代方案。
之前版本中原有的数据库适配器也都进行了剥离优化:
SQL类
NoSQL类
和数据库适配器类似,对于数据服务也新增了标准化接口BaseDatafeed(位于vnpy.trader.datafeed中),实现了更加灵活的数据服务支持。在全局配置中,和数据服务相关的字段全部以datafeed作为前缀。
具体字段含义如下:
以上字段对于所有数据服务都是必填,如果是token方式授权请填写在database.password字段中,具体每个数据服务的细节如下。
米筐RQData一直以来是我们vn.py官方团队长期推荐的数据服务,对于大部分个人投资者应该是性价比较高的选择:
恒有数UData是由恒生电子最新推出的云端数据服务,提供不限次、不限量的多种金融数据获取:
国内知名的开源Python金融数据接口项目,由大神Jimmy团队长期开发维护,除了行情数据外还提供许多另类数据:
天勤TQSDK是由信易科技推出的Python程序化交易解决方案,提供当前所有可交易合约上市以来的全部历史数据获取:
2.6.0版本中对SpreadTrading模块(vnpy_spreadtrading)进行了大幅优化,包括:
以上功能优化涉及到对价差交易配置文件的修改,如果在启动VN Trader时出现和SpreadTrading相关的报错,请进入程序运行缓存目录(C:\Users\Administrator.vntrader),删除下述文件后重启即可:
v2.6.0版本预计将在国庆前发布,该版本最主要的更新是剥离了数据库接口(database)和数据服务接口(datafeed),方便用户根据自己的需求选择更加合适的高性能数据系统解决方案,计划在发布后搞一次专门的线下活动讲解。
内容:
vn.py的3.0开发方向
数据库接口database
数据服务接口datafeed
后续社区活动规划 + QA问答环节
时间:10月16日 14:00-17:00
地点:浦东新区芳甸路1155号4楼WeWork会议室M
名额:40人
报名费:99元
报名方式:扫描下方二维码报名(名额有限,先到先得~)
发布于vn.py社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2021-09-17
v2.6.0版本预计将在国庆前发布,该版本最主要的更新是剥离了数据库接口(database)和数据服务接口(datafeed),方便用户根据自己的需求选择更加合适的高性能数据系统解决方案,计划在发布后搞一次专门的线下活动讲解。
内容:
vn.py的3.0开发方向
数据库接口database
数据服务接口datafeed
后续社区活动规划 + QA问答环节
时间:10月16日 14:00-17:00
地点:浦东新区芳甸路1155号4楼WeWork会议室M
名额:40人
报名费:99元
报名方式:扫描下方二维码报名(名额有限,先到先得~)
也可以点击文章底部的原文链接跳转~
公司全称
希塔私募基金管理有限公司
基本介绍
我们是一家处于成长期的量化多策略私募基金。我们的核心成员具有丰富的投资组合管理经验和衍生品交易经验,曾任职于海内外知名投资机构。诚邀有创业精神的伙伴见证和参与公司的共同成长与发展,期待您的加盟。
职位名称
量化投研交易岗
薪资范围
15k-30K/月,五险一金,节日福利。
岗位职责
协同投资总监进行量化模型搭建和改进、相关数据库建立和维护、以及交易盯市模块落地和扩展;
参与开发、改进和回测交易策略;
熟悉量化交易市场,可参与执行交易或在既定策略框架下有独立自主交易能力;
每日复盘实际交易、评估交易结果。
任职要求
硕士及以上学历,计算机、统计、数学、金融工程等相关专业背景;
熟练使用C++、python、SQL等编程语言,使用C++和python者优先;
对量化交易尤其衍生品有较深了解。
职位名称
量化IT岗
薪资范围
15k-30K/月,五险一金,节日福利。
岗位职责
协同交易员进行量化交易工具、盯市模块以及投研框架的搭建、开发和拓展;
负责量化交易系统对接、落地、测试和日常维护,推进半自动化交易系统环境搭建;
改进系统交易执行能力,改进交易算法;
处理公司内部其他IT事宜。
任职要求
本科及以上学历,计算机、工程类相关专业背景;
熟练使用C++、python等编程语言,熟悉多线程和并发编程者优先;
熟悉量化交易系统基本构架、交易接口和行情;具备软件开发经历,熟悉衍生品系统开发工作者优先。
职位名称
量化研究岗实习生
薪资范围
100-150元/天
岗位职责
协助交易员进行量化模型及交易工具开发工作;
协助交易员与IT推进自动化交易系统环境搭建及测试;
参与量化数据库维护及拓展;
协助进行数据整理、分析和报告展示。
任职要求
211/985院校或海外一流大学计算机、数学、金融工程、统计等相关专业,2021年及以后毕业硕士或博士,熟练使用C++/python/SQL/VBA等编程语言;
对量化交易策略和衍生品有较深的了解与兴趣,适应高强度高工作压力;工作细致认真,有良好的执行力和解决问题的能力,良好的团队协作意识;
每周工作至少4天,实习期至少3个月;
优秀者可考虑留用。
联系方式
ir@theta-investments.com,投递简历的邮件请注明申请公司和职位。
工作地点
上海
公司全称
上海杰奥普鑫投资管理有限公司
基本介绍
组建于2015年6月,杰奥普鑫投资是一个多元化的量化私募基金团队,创始人来自境外流动性提供商(Prop Trading)以及中金所期权项目组等专业金融机构。我们提供轻松、开放、专业、高效的创业式工作环境,办公室面对上海证券交易所新楼。希望每一位成员都能在工作中找到乐趣,接触最前沿的技术和策略,共同在这蓝海行业中扬帆起航。
职位名称
高频量化策略研究员
薪资范围
薪资:120元/天,极少加班,周末双休,软饮畅饮,节日有公司福利,有培训,不介意金融0基础
岗位职责
学习公司高频交易策略,分析交易结果及订单流,协助完善现有高频回测平台。
运用和改进现有量化策略平台,为投资决策提供参考。
在投研团队领导的指导下,接触前沿的机器学习技术,进行OrderBook等市场微观结构相关研究。
任职要求
熟练使用Python,了解面向对象编程,1年以上 Python 编程经验。
有一定数据处理、数据分析的操作经验。
本科生,研究生理工背景者优先,也欢迎对基金行业有热情的优秀人员~
联系方式
xiaoyou.chen@mail.vnpy.com,投递简历的邮件请注明申请公司和职位。
工作地点
上海
公司全称
上海杰奥普鑫投资管理有限公司
基本介绍
组建于2015年6月,杰奥普鑫投资是一个多元化的量化私募基金团队,创始人来自境外流动性提供商(Prop Trading)以及中金所期权项目组等专业金融机构。我们提供轻松、开放、专业、高效的创业式工作环境,办公室面对上海证券交易所新楼。希望每一位成员都能在工作中找到乐趣,接触最前沿的技术和策略,共同在这蓝海行业中扬帆起航。
职位名称
高频量化交易员
薪资范围
8k-12K,五险一金,节日福利,健康体检,很少加班,周末双休,不介意金融0基础。
岗位职责
对交易策略进行数据论证,分析交易结果及订单流,协助完善现有高频回测平台。
运用和改进现有量化策略平台,为投资决策提供参考。
在投研团队领导的指导下,接触前沿的机器学习技术,进行OrderBook等市场微观结构相关研究
任职要求
熟练使用Python,熟悉面向对象编程,2年以上 Python 编程经验。
有一定数据处理、数据分析的操作经验。
理工背景者优先。
欢迎对基金行业有热情的优秀应届毕业生。
联系方式
xiaoyou.chen@mail.vnpy.com,投递简历的邮件请注明申请公司和职位。
工作地点
上海
发布于vn.py社区公众号【vnpy-community】
原文作者:Bili | 发布时间:2021-09-07
在前面的文章当中,我们对RSJ指标有了初步的了解,并且在RSJ指标样本内外实验中也取得一个不错的回测结果。接下来,我们将继续根据陶勤英博士的财通证券研究所的研报中所指出的将RSJ指标与其他技术指标组合使用来进行进一步的实验研究观察回测后的效果。
首先,我们根据文章选取了另外三个技术指标,分别是DMI指标、RSI指标和ROC指标分别与RSJ指标进行叠加使用进行回测。所以接下来我们需要了解各个指标的基本原理以及他们的信号逻辑:
基本原理:DMI指标基本原理是在于寻找股票价格涨跌过程中,股价藉以创新高价或新低价的功能,研判多空力量,进而寻求买卖双方的均衡点及股价在双方互动下波动的循环过程。与大多数技术指标相比DMI指标把每日的高低波动的幅度因素计算在内,从而更加准确的反应行情的走势及更好的预测行情未来的发展变化。
信号逻辑:趋向技术指标 DMI 包括多空指标 PDI、MDI 以及趋向指标 ADX。我们针对 DMI 指标建立相应的择时策略,即若昨日的 ADX 大于前一日的 ADX,则今日在收盘的时候看多;若昨日的 ADX、PDI、MDI 均小于前一日的相对应的指标值,则今日在收盘的时候看空(其中,ADX 值若不在[20,60]之内,则不进行交易)。
基本原理:RSI的原理简单来说是以数字计算的方法求出买卖双方的力量对比,譬如有100个人面对一-件商品, 如果50个人以上要买,竞相抬价,商品价格必涨。相反,如果50个人以上争着卖出,价格自然下跌。
信号逻辑:对于相对强弱指标 RSI,两种力量的对比决定了个股及大盘所处的状态:强势或弱势。从 RSI 值的变动范围来看:当 20 < RSI <50 时,弱势,卖出,空仓;当 50 < RSI <80 时,强势,买入,持仓。因此,若昨日的 RSI 值在(50,80]内,则今日在收盘的时候看多;若昨日的RSI 值在[20,50)内,则今日在收盘的时候看空。
基本原理:变动率指标(ROC),是以当日的收盘价和N天前的收盘价比较,通过计算股价某一段时间内收盘价变动的比例,应用价格的移动比较来测量价位动量,达到事先探测股价买卖供需力量的强弱,进而分析股价的趋势及其是否有转势的意愿,属于反趋势指标之一。
信号逻辑:ROC指标测量股价动量,可以用来监视常态性和极端性两种行情,对买卖股票提供强有力的参考。ROC 变大,代表未来市场仍会在短时间内上涨,反之则代表市场可能下跌。因此,若昨日的 ROC 大于前一日的 ROC,则今日在收盘的时候看多;反之,发出看空信号。
接下来,我们将正式进入我们的实验阶段。为了避免文章内容的重复,我们仅以RSJ+DMI为例,为大家进行代码分析:
在本策略当中,我们需要使用到两种K线——5分钟K线和日K线,所以我们还需创建日K线生成器DailyBarGenerator:
class DailyBarGenerator:
def __init__(self, on_daily_bar: Callable) -> None:
"""日K线合成器"""
self.on_daily_bar: Callable = on_daily_bar
self.daily_bar: BarData = None
self.last_bar: BarData = None
接下来构造update_bar函数用于更新K线到容器中,缓存K线本身的OHLCV数据:
def update_bar(self, bar: BarData) -> None:
"""更新分钟K线"""
if not self.daily_bar:
dt = bar.datetime.replace(
hour=0,
minute=0,
second=0,
microsecond=0
)
self.daily_bar = BarData(
symbol=bar.symbol,
exchange=bar.exchange,
datetime=dt,
gateway_name=bar.gateway_name,
open_price=bar.open_price,
high_price=bar.high_price,
low_price=bar.low_price
)
# Otherwise, update high/low price into window bar
else:
self.daily_bar.high_price = max(
self.daily_bar.high_price,
bar.high_price
)
self.daily_bar.low_price = min(
self.daily_bar.low_price,
bar.low_price
)
# Update close price/volume/turnover into window bar
self.daily_bar.close_price = bar.close_price
self.daily_bar.volume += bar.volume
self.daily_bar.open_interest = bar.open_interest
# Check if window bar completed
if (
self.last_bar
and self.last_bar.datetime.date() != bar.datetime.date()
):
self.on_daily_bar(self.daily_bar)
self.daily_bar = None
# Cache last bar object
self.last_bar = bar
交易信号执行:
5分钟K线用于计算RSJ指标,我们需要先使用BarGenerator将1分钟K线合成为5分钟K线,日K线用于计算DMI指标:
def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
""""""
super().__init__(cta_engine, strategy_name, vt_symbol, setting)
self.bg = BarGenerator(self.on_bar, 5, self.on_5min_bar)
self.am = NewArrayManager()
self.daily_bg = DailyBarGenerator(self.on_daily_bar)
self.daily_am = NewArrayManager()
计算技术指标:
分别将RSJ、ADX、PDI以及MDI指标计算出来:
# 计算技术指标
self.rsj_value = self.am.rsj(self.rsj_window)
adx_array = self.daily_am.adx(self.dmi_window, array=True)
pdi_array = self.daily_am.plus_di(self.dmi_window, array=True)
mdi_array = self.daily_am.minus_di(self.dmi_window, array=True)
adx_value = adx_array[-1]
判断交易信号:
当 RSJ 和 DMI指标同时发出看多信号,则在当日收盘的时候发出看多信号;若两个指标同时发出看空信号,则在当日收盘的时候发出看空信号;否则,不发出任何信号。
# 判断交易信号
target_pos = 0
if bar.datetime.time() == time(14, 50):
# 满足开仓交易的ADX要求
if 20 <= adx_value <= 60:
# 做多条件
if (
self.rsj_value < 0
and adx_array[-1] > adx_array[-2]
):
target_pos = 1
# 做空条件
elif (
self.rsj_value > 0
and adx_array[-1] < adx_array[-2]
and pdi_array[-1] < pdi_array[-2]
and mdi_array[-1] < mdi_array[-2]
):
target_pos = -1
交易逻辑:
基于目标仓位和实际仓位,决定如何交易:
trade_volume = target_pos - self.pos
if trade_volume > 0:
if self.pos >= 0:
self.buy(bar.close_price + 5, trade_volume)
else:
self.cover(bar.close_price + 5, trade_volume)
elif trade_volume < 0:
if self.pos <= 0:
self.short(bar.close_price - 5, abs(trade_volume))
else:
self.sell(bar.close_price - 5, abs(trade_volume))
tips:
由于策略中涉及到多个技术指标,代码变得较为复杂。所以在这时将计算技术指标、判断交易信号和交易逻辑三个部分分开来写,会让我们的代码变得更加清晰从而增加代码的可读性。
我们用 2017 年 7 月 23 日-2020 年 7 月 22 日的数据,对该日内指标进行回测。指标当日发出信号后,分别于当日收盘分别对上证 50、沪深 300、中证 500指数进行操作。
其中 DMI 组合指标时间参数为14。
资金曲线的形状和财通研报中的结果基本一致 ,可以认为比较正确的复现了策略逻辑:
其中 RSI 指标的时间参数为 6。
本地代码:IF888.CFFEX、IH888.CFFEX、IC888.CFFEX
K线周期:1分钟
开始日期:2017-7-23
结束日期:2020-7-22
手续费率:0.00003
交易滑点:0.4
合约乘数:300
价格跳动:0.2
回测资金:100W
资金曲线的形状和财通研报中的结果基本一致 ,可以认为比较正确的复现了策略逻辑:
其中 ROC 指标参数为 12。
本地代码:IF888.CFFEX、IH888.CFFEX、IC888.CFFEX
K线周期:1分钟
开始日期:2017-7-23
结束日期:2020-7-22
手续费率:0.00003
交易滑点:0.4
合约乘数:300
价格跳动:0.2
回测资金:100W
资金曲线的形状和财通研报中的结果基本一致 ,可以认为比较正确的复现了策略逻辑:
RSJ指标分别与DMI、RSI和ROC指标组合使用的回测效果整体上资金曲线都是呈上扬趋势,但是对于部分品种来说资金曲线不太稳键,还有较大的改进提升空间。
本文中提到的三个策略代码较长,就不在这里贴出了。请关注本公众号(vnpy-community)后,回复内容【RSJ】获取源代码下载链接。
公司全称
上海森浦信息技术有限公司
官方网站
www.sumscope.com
基本介绍
森浦为全球超过6,000家金融机构、数万名终端使用者量身定制了银行间市场产品qeubee终端、IDB(Inter-Dealer Broker)。
森浦的客户包括中国所有政策性金融银行、国有大型商业银行、股份制银行和绝大部分的城市商业银行、证券公司、基金管理公司、保险公司和投资公司等金融企业。还有诸多金融监管机构和交易所也使用森浦的服务。客户已覆盖中国大陆、香港、台湾、新加坡等国际市场。
森浦将着眼$全球化的进程,放眼金融市场,不断渗入海外市场并服务全球客户。
职位名称
Python后端高级开发工程师
工作经验
6年以上
薪资范围
30k-45k
岗位职责
任职要求
联系方式
xiaoyou.chen@mail.vnpy.com,投递简历的邮件请注明申请公司和职位。
工作地点
上海
发布于vn.py社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2021-08-20
VN.PY基于Python的开源量化交易平台,建立了专业且成熟的量化开源社区,为近3万的量化交易用户提供线上交流平台,社区日活人数6000多人,打造了多元化、高活跃的社区生态。
华锐金融技术与VN.PY签署的战略合作协议,双方将共同推进开放社区运营及机构服务产品共研等项目。基于 VN.PY在搭建开放社区累积的多年经验,双方合力为更多量化投资者创造更开放、更专业的技术交流平台和更丰富、更活跃的技术交流活动。
考虑到许多vn.py用户可能对华锐金融技术这家公司不太熟悉,这里也做个简单的介绍(以下信息来自华锐金融科技官方网站)。
深圳华锐金融技术股份有限公司(简称“华锐金融技术”)是一家专注于为资本市场提供下一代分布式低时延基础技术及核心业务系统的国家高新技术企业。公司致力于提升中国金融基础设施自主能力,自主研发下一代分布式中间件,助力金融机构实现核心业务系统的分布式转型,成为下一代分布式低时延金融技术的引领者。公司于2018年、2019年连续获得深创投A轮、Pre-B轮投资;2020年获得招商局集团、招商银行、国泰君安证券旗下机构B轮投资;2021年上半年完成由华泰创新领投的Pre-C轮融资,红杉资本中国基金的C轮融资。
已上线的机构客户包括:
AMI完美满足了构建现代金融核心业务系统所需要的高可用、高并发、低时延、水平扩展四项关键需求。除了提供高可靠、低时延的消息传输能力,还提供完备、透明、与业务逻辑无关的高可用解决方案,以及多线程、高并发应用开发框架,是构建金融行业关键实时应用的理想基础平台,也是金融机构下一代数字化基础设施的关键组件。
ATP聚焦交易所场内标准业务,连接订单管理系统和交易所交易系统,业务范围覆盖所有场内交易品种,提供交易订单生成、前端风控检查、报盘等功能,及交易管理、运营和清算功能。
ATP产品遵循分层、抽象、解耦、隔离的业务设计理念,实现了公共技术服务框架和可配置的交易业务框架,业务特性封装为独立的业务包,实现了“可组装”式的业务配置,有效隔离业务间相互影响,可根据需要自选组装和分批上线,业务调整时影响范围可有效控制。
ATP产品具有可伸缩弹性架构,可按照场景灵活应用于构建普通投资者使用的大型集中交易系统、面向专业投资者使用的机构交易系统和面向追求极致性能场景的极速交易系统。
AMD是企业级行情服务平台,基于新一代分布式架构技术,为金融机构提供微秒级的行情分发服务,聚焦于实时行情分发及行情数据加工。既支持同数据中心内的极速转码、极速原始分发、实时行情加工、历史行情服务等,也支持跨数据中心部署,适应金融机构多场景应用。
发布于vn.py社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2021-08-18
《量化交易零基础入门系列 - 30天解锁Python量化开发》销量已达273份,课程价格将在销量到达300份后上调至599元,目前499元的价格还剩最后27个名额,需要的同学请抓紧不要错过!!!
周一发布了vn.py的2.5.0版本,本次更新的内容主要是实现了社区呼声已久的Web应用后端服务,满足许多用户希望通过浏览器(而非PyQt桌面端)来运行管理vn.py量化策略交易的需求。
请注意,2.5.0新版本中包含了对底层数据库结构的修改,因此对于之前版本的数据库需要进行手动迁移操作,具体操作流程请参考下文的【数据库升级迁移】章节。
和之前一样,对于使用VN Studio的用户,启动VN Station后,直接点击界面右下角的【更新】按钮就能完成自动更新升级,对于没有安装的用户,请下载VN Studio-2.5.0,体验一键安装的量化交易Python发行版,下载链接:
https://download.vnpy.com/vnstudio-2.5.0.exe
WebTrader采用了FastAPI作为后端服务器,支持REST主动请求调用和Websocket被动数据推送,运行时的整体架构图如下:
后端服务包括两个独立的进程:
策略交易进程
Web服务进程
从网页端到策略交易进程的双向通讯模式包括:
主动请求调用(订阅行情、挂撤单、查询数据)
被动数据推送(行情推送、委托成交推送)
新增的Web应用服务源代码位于vnpy_webtrader项目中,用户可以通过VN Station启动时加载WebTrader应用即可。
启动VN Trader后,首先登录要交易的接口,然后点击顶部菜单栏的【功能】->【Web服务】打开如下图所示的窗口:
此时系统中运行的只包括策略交易进程,右上角区域的服务器配置选项包括:
点击启动按钮后,会根据用户输入的配置信息在系统后台启动Web服务进程,同时在右侧区域输出FastAPI运行过程中的相关日志信息:
此时启动浏览器打开网址http://127.0.0.1:8000/docs,即可看到如下图所示的FastAPI接口文档网页:
这里包含了目前WebTrader支持的相关接口信息,用户可以结合vnpy_webtrader项目下提供的Jupyter Notebook进行相关接口的测试。
WebTrader仅实现Web应用的后端(提供了给浏览器访问数据的接口),而前端页面(也就是浏览器中看到的网页)则按照之前的计划交给社区用户来实现,欢迎大家贡献代码。
同时WebTrader目前只支持了基础的手动交易功能,后续将会逐渐加上策略交易应用相关的管理功能(比如CtaStrategy的相关调用)。
CTP API在过去10年间,已经逐渐成为了国内金融市场的交易API标准,类似海外市场中FIX协议的地位,罗列几个兼容或者高度接近CTP的API:
最近知乎网友krenx推出了OpenCTP项目(CTP开放平台),同样是在兼容CTP API的基础上(只需替换dll),自主实现了整套CTP柜台的仿真交易功能(除了期货外,还引入了指数、股票等更多品种的支持),大家在SimNow之外又多了一个选择。
2.5.0版本中也增加了对OpenCTP交易系统的支持,接口名称为TtsGateway(Tick Trading System),从VN Station加载即可使用。
TtsGateway的连接配置信息如下:
2.5.0新版本中对底层数据结构进行了扩展增强,增加的字段包括:
TickData
BarData
同时所有的数据库管理器(vnpy.database)也都进行了对应的修改,升级后可能由于数据库结构变化造成系统无法启动。
对于购买了RQData等数据服务的用户,可以直接删除数据库后重新下载即可:
对于自行录制收集数据的用户(数据不能删的),需要进行数据迁移操作:
新增基于易盛新推出的【启明星/北斗星兼容交易API】开发的EsunnyGateway(位于vnpy_esunny项目中),支持内盘期货、黄金TD、外盘期货等市场的交易。
UFT接口,剥离到vnpy_uft项目中,采用3.7.2.4版本的API;
融航接口,剥离到vnpy_rohon项目中,采用6.5.1版本的API;
CTP期权接口,剥离到vnpy_sopt项目中,采用3.5.5版本的API;
上述剥离的接口,均增加了Ubuntu上的一键自动安装功能,同时支持通过pip install命令进行快速安装。
发布于vn.py社区公众号【vnpy-community】
原文作者:Bili | 发布时间:2021-08-06
我们在前文中叙述了RSJ指标,并且将该指标策略进行了源码复现,在初步回测中得到了一个还不错的回测结果。那么我们有了一个策略指标,接下来该怎么做?实盘交易测试策略的有效性吗?不,在使用资金进行冒险前,应该先对策略进行回溯检验,使用历史数据模拟交易测试策略是否有效。
整体的思路为:选取过去一个时间段为样本,在样本内对参数优化,将优化结果带入策略中在样本中进行回测,保证回测结果中资金曲线呈现上扬趋势。将在样本中参数优化的结果带入样本之后的一个时间段再次进行回测,如果样本外回测的资金曲线也呈上扬趋势则说明该策略有效;反知,则说明该策略无效。具体操作步骤如下[代码请参照前文]:
选取样本内的时间段
进行参数优化
将优化后参数带入策略在样本内进行回测(保证资金曲线上扬)
选取样本外时间段
将优化后的参数带入样本外数据进行回测
1.选取样本内时间:2015.7.30 — 2018.7.29
2.参数优化(参照总收益率)
优化结果:m = 44**
3.样本内回测:
选择使用米筐RQData提供的IC888平滑主力合约数据,在CtaBacktester中的回测配置如下:
4.选取样本内时间:2018.7.30 — 2019.7.29
5.参数m = 44 ,样本外回测
1.选取样本内时间:2015.7.30 — 2018.7.29
2.参数优化(参照总收益率)
优化结果:m = 19
3.样本内回测:
选择使用米筐RQData提供的IH888平滑主力合约数据,在CtaBacktester中的回测配置如下:
4.选取样本内时间:2018.7.30 — 2019.7.29
5.参数m = 19 ,样本外回测
1.选取样本内时间:2016.7.30 — 2020.7.29
2.参数优化(参照夏普比率)
优化结果:m = 37
3.样本内回测:
选择使用米筐RQData提供的IF888平滑主力合约数据,在CtaBacktester中的回测配置如下:
4.选取样本内时间:2020.7.30 — 2021.7.29
5.样本外回测(参数m = 37):
基于上述样本内外检验的结果,结合RSJ指标本身极为简单的计算逻辑,足以证明其作为策略核心交易信号的有效性。在后续的系列文章中,我们就可以放心的对RsjStrategy进行扩展加强,引入更多的参数自由度,同时结合其他指标信号,来尝试进一步优化策略的交易绩效。
发布于vn.py社区公众号【vnpy-community】
原文作者:Bili | 发布时间:2021-07-29
经过这两年2.0大版本下的持续迭代,vn.py在易用性方面有了不少提升,现阶段对于许多社区新人来说,可能最难的已经不再是如何安装使用vn.py,而是如何用vn.py开发出优秀的量化策略。
开发策略这件事情确实需要一定的灵感,但更多还是应该参考爱迪生的名言:
天才是1%的灵感加上99%的汗水。
在当今2021年的中文互联网上,其实已经可以找到非常丰富的量化策略研究资料:
初学者最快的学习方式,无疑是站在这些巨人的肩膀上,付出99%的汗水掌握前人的已有知识和经验,然后再加上1%的灵感来开发出属于自己的量化策略。
所以在许多社区用户的建议下,我们决定推出这个新的【Veighna量化策略实验室】文章系列,帮助大家尽可能体系化的学习量化策略开发:
那么,接下来就是本系列的第一篇正式内容,策略资料来源于vn.py社区用户分享的券商金工研报,作者是财通证券研究所的陶勤英博士。
高频已实现波动率(Realized Volatility)是一种根据高频数据(这里指的是日内分钟线级别的数据,而非Tick级别数据)计算的日内波动率指标,该指标的计算公式为:
由 Bollerslev 等作者(相关论文请参考研报PDF中的内容)研究的【好】与【坏】的波动率,是在RV的基础上将其分解为单独的上涨(好)和下跌(坏)两种情形下的波动率度量。将波动率分解为【好】波动和【坏】波动后,可以基于其相对的差值,去度量日内价格波动的不对称性(RSJ),该指标的计算公式为:
根据原论文中的内容,日内高频数据计算得出的【好】波动率,描述了价格上涨时候的特征(反之【坏】波动率则是描述了价格下跌时候的特征)。
该指标用于横截面的选股策略上时,对未来收益率可以起到反转的预测效果。如果应用到时序类的CTA策略,则对应的逻辑大概为:
考虑到RSJ指标衡量的是当天日内整体价格波动所反应出来的信息,且每天股票市场的成交量大多集中在开盘和收盘附近的时间,因此我们选择在临近收盘的时间点,计算过去一段时间的RSJ指标,并对隔夜以及第二天日内的价格走势变化进行预测。
具体策略逻辑:
该策略的特点:
由于talib工具库中没有提供RSJ指标的计算功能,因此我们需要自行实现其计算代码,好在整个公式并不复杂。为了保持代码的简洁清爽,我们选择基于vn.py中内置的时间序列缓存容器ArrayManager,来进行扩展实现RSJ的计算。
首先创建子类NewArrayManager继承父类ArrayManager,用于按时间序列缓存bar数据,提供技术指标的计算。注意在构造函数init中,需要传入一个size参数(缓存数据的长度),将其默认值设为100(表示缓存的K线数量为100根),同时也增加了一个用于缓存收益率序列的return_array数组:
class NewArrayManager(ArrayManager):
def __init__(self, size=100):
""""""
super().__init__(size)
self.return_array: np.ndarray = np.zeros(size)
接下来构造update_bar函数用于更新K线到容器中,除了缓存K线本身的OHLCV数据外,也同时将收益率数据计算好缓存在return_array数组中,方便后续计算RSJ指标:
def update_bar(self, bar: BarData) -> None:
"""更新K线"""
# 先调用父类的方法,更新K线
super().update_bar(bar)
# 计算涨跌变化
if not self.close_array[-2]: # 如果尚未初始化上一根收盘价
last_return = 0
else:
last_return = self.close_array[-1] / self.close_array[-2] - 1
# 缓存涨跌变化
self.return_array[:-1] = self.return_array[1:]
self.return_array[-1] = last_return
之后即可实现RSJ的计算函数,使用上一步已经缓存了的return_array,结合NumPy的向量化计算功能来保证计算速度:
def rsj(self, n: int) -> float:
"""计算RSJ指标"""
# 切片出要计算用的收益率数据
return_data = self.return_array[-n:]
# 计算RV
rv = np.sum(pow(return_data, 2))
# 计算RV +/-
positive_data = np.array([r for r in return_data if r > 0])
negative_data = np.array([r for r in return_data if r <= 0])
rv_positive = np.sum(pow(positive_data, 2))
rv_negative = np.sum(pow(negative_data, 2))
# 计算RSJ
rsj = (rv_positive - rv_negative) / rv
return rsj
由于选择了5分钟K线来计算RSJ指标,因此我们需要先使用BarGenerator将1分钟K线合成为5分钟K线,在RsjStrategy类的构造函数下创建NewArrayManager对象am和BarGenerator对象bg,其中bg对象传入了额外的5分钟合成回调函数(self.on_5min_bar):
def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
""""""
super().__init__(cta_engine, strategy_name, vt_symbol, setting)
self.bg = BarGenerator(self.on_bar, 5, self.on_5min_bar)
self.am = NewArrayManager()
收到1分钟K线的推送后,将其推送到bg中合成5分钟K线:
def on_bar(self, bar: BarData):
"""
K线更新
"""
self.bg.update_bar(bar)
每当有5分钟K线合成后,on_5min_bar函数会被自动调用,在其中驱动策略的核心交易逻辑:
def on_5min_bar(self, bar: BarData):
"""5分钟K线更新"""
# 全撤委托
self.cancel_all()
# 缓存K线
am = self.am
am.update_bar(bar)
if not am.inited:
return
# 计算技术指标
self.rsj_value = self.am.rsj(self.rsj_window)
# 判断交易信号
if bar.datetime.time() == time(14, 50):
if self.rsj_value > 0:
if self.pos > 0:
self.sell(bar.close_price - 10, 1)
self.short(bar.close_price - 10, 1)
elif self.rsj_value < 0:
if self.pos < 0:
self.cover(bar.close_price + 10, 1)
self.buy(bar.close_price + 10, 1)
一些注意点:
回测数据上,本文中选择使用米筐RQData提供的IH888平滑主力合约数据,在后续的篇幅中我们会尝试更多的品种,在CtaBacktester中的回测配置如下:
作为原始版本策略的源码复现,初步回测结果还不错:
资金曲线的形状和财通研报中的结果基本一致(下图中的蓝线),可以认为比较正确的复现了策略逻辑:
策略回测的关键统计结果:
最后,秉承vn.py社区的一贯精神:
Talk is cheap, show me your pnl (or code) !
自然必须附上策略的源代码:
from datetime import time
import numpy as np
from vnpy.app.cta_strategy import (
CtaTemplate,
BarGenerator,
ArrayManager,
OrderData,
TradeData,
StopOrder)
from vnpy.trader.object import (
BarData,
TickData
)
class RsjStrategy(CtaTemplate):
""""""
author = "Bili"
# 定义参数
rsj_window = 12
# 定义变量
rsj_value = 0.0
parameters = [
"rsj_window"
]
variables = [
"rsj_value"
]
def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
""""""
super().__init__(cta_engine, strategy_name, vt_symbol, setting)
self.bg = BarGenerator(self.on_bar, 5, self.on_5min_bar)
self.am = NewArrayManager()
def on_init(self):
"""
策略初始化
"""
self.write_log("策略初始化")
self.load_bar(10)
def on_start(self):
"""
启动策略
"""
self.write_log("策略启动")
self.put_event()
def on_stop(self):
"""
策略停止
"""
self.write_log("策略停止")
self.put_event()
def on_tick(self, tick: TickData):
"""
TICK更新
"""
self.bg.update_tick(tick)
def on_bar(self, bar: BarData):
"""
K线更新
"""
self.bg.update_bar(bar)
def on_5min_bar(self, bar: BarData):
"""5分钟K线更新"""
# 全撤委托
self.cancel_all()
# 缓存K线
am = self.am
am.update_bar(bar)
if not am.inited:
return
# 计算技术指标
self.rsj_value = self.am.rsj(self.rsj_window)
# 判断交易信号
if bar.datetime.time() == time(14, 50):
if self.rsj_value > 0:
if self.pos > 0:
self.sell(bar.close_price - 10, 1)
self.short(bar.close_price - 10, 1)
elif self.rsj_value < 0:
if self.pos < 0:
self.cover(bar.close_price + 10, 1)
self.buy(bar.close_price + 10, 1)
# 更新图形界面
self.put_event()
def on_order(self, order: OrderData):
"""
Callback of new order data update.
"""
pass
def on_trade(self, trade: TradeData):
"""
Callback of new trade data update.
"""
self.put_event()
def on_stop_order(self, stop_order: StopOrder):
"""
Callback of stop order update.
"""
pass
class NewArrayManager(ArrayManager):
def __init__(self, size=100):
""""""
super().__init__(size)
self.return_array: np.ndarray = np.zeros(size)
def update_bar(self, bar: BarData) -> None:
"""更新K线"""
# 先调用父类的方法,更新K线
super().update_bar(bar)
# 计算涨跌变化
if not self.close_array[-2]: # 如果尚未初始化上一根收盘价
last_return = 0
else:
last_return = self.close_array[-1] / self.close_array[-2] - 1
# 缓存涨跌变化
self.return_array[:-1] = self.return_array[1:]
self.return_array[-1] = last_return
def rsj(self, n: int) -> float:
"""计算RSJ指标"""
# 切片出要计算用的收益率数据
return_data = self.return_array[-n:]
# 计算RV
rv = np.sum(pow(return_data, 2))
# 计算RV +/-
positive_data = np.array([r for r in return_data if r > 0])
negative_data = np.array([r for r in return_data if r <= 0])
rv_positive = np.sum(pow(positive_data, 2))
rv_negative = np.sum(pow(negative_data, 2))
# 计算RSJ
rsj = (rv_positive - rv_negative) / rv
return rsj
发布于vn.py社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2021-07-21
上一篇第12期【价差交易】的小班课报名公告发出后,短短几天剩余名额就全部售罄,所以决定早点开始下一场第13期【期权波动率交易】小班课的报名。
老规矩放几张之前课程的照片:
准备完毕,静候同学们到达
学习量化,先从掌握核心框架
深入代码,分析策略逻辑细节
所有小班课时间还是都会定在周末两天,一共包含周六周日两个下午共计10小时的课程,以及后续三个月的助教跟踪辅导。线下课程的地点在上海浦东,考虑到新冠以来大家对于坐火车飞机的健康风险顾虑,不想来上海的同学也可以选择远程线上听课。
第13期课程的主题是【期权波动率交易】,目前剩余名额还有6位,感兴趣的同学请抓紧,课程大纲如下:
日期:2021年8月28日(周六)和8月29日(周日)
时间:两天下午1点-6点,共计10小时
大纲:
深入期权定价模型
a. 期权定价的核心原理解析,欧式和美式的细节区别
b. 三大定价模型实现
i. Black-76
ii. Black-Scholes
iii. Binomial
c. 定价模型的性能优化,Cython和C++扩展开发
隐含波动率曲面分析
a. 波动率的不同形态:历史、实现和隐含
b. 波动率时间序列建模:GARCH、EGARCH、GJR模型
c. 隐含波动率计算:Newton-Raphson算法
d. 解决实盘中的边界收敛问题,预防程序溢出
希腊值和期权风控
a. 希腊值的定义和算法算法实现
b. 实盘系统数据驱动流程解析
c. 期权持仓组合情景分析和压力测试
波动率交易
a. 围绕Delta中性原则展开波动率交易
b. 期权价差组合的真正用途
c. Gamma Scalping中的技术要点
d. 期权做市报价算法开发
期权量化策略开发和交易
a. 期权历史数据下载获取和每日更新
b. PortfolioStrategy多合约策略模板
c. 套利类策略代码分享:平价盒式轮动套利策略
d. 波动率交易类策略代码分享:CTA趋势 + 波动率预测
价格:12999元
报名请发送邮件到event@mail.vnpy.com,注明想参加的课程、姓名、手机、公司、职位即可。
课程对于之前参加过小班课的学员优先开放,同时提供9折的价格优惠。
发布于vn.py社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2021-07-01
2021下半年的vn.py小班课开始报名,老规矩还是放几张之前课程的照片:
准备完毕,静候同学们到达
学习量化,先从掌握核心框架
深入代码,分析策略逻辑细节
所有小班课时间还是都会定在周末两天,一共包含周六周日两个下午共计10小时的课程,以及后续三个月的助教跟踪辅导。线下课程的地点在上海浦东,考虑到新冠以来大家对于坐火车飞机的健康风险顾虑,不想来上海的同学也可以选择远程线上听课。
第12期课程的主题是【套利价差交易】,总共10个名额目前已有一半被提前报名锁定,剩余名额还有5位,感兴趣的同学请抓紧吧,课程大纲如下:
日期:2021年7月31日(周六)和8月1日(周日)
时间:两天下午1点-6点,共计10小时
大纲:
初识套利价差交易
价差数据结构设计
价差交易算法实现
价差量化策略开发
价差交易实战进阶:
价格:11999元
报名方式和之前一样,请发送邮件到vn.py@foxmail.com,注明想参加的课程、姓名、手机、公司、职位即可。
课程对于之前参加过小班课的学员优先开放,同时提供9折的价格优惠。