前言
在证券交易领域中,量化交易脱胎于传统的主观交易:把投资者的交易理念、交易策略固化成计算机程序,通过算法快速自动下单,有效地防止投资者自身情绪的干扰,让其把精力放在研发交易策略上。量化交易的另一个优点是其成功的方法有迹可循,因为量化交易的过程是,运用现代统计学理论对历史数据进行数据分析,构建数学模型来预测市场未来价格的变化,然后通过计算机语言表达出来,从而实现自动交易。
vn.py
为什么写作本书
Python
期货市场上程序化交易接口却无资金门槛,而且量化交易应用发展得比较成熟,这才是新手可以去学习和实践的地方。故本书的写作定位是交易策略在期货领域的应用和开发,力求填补这方面的空白。
本书特色
“坑”,力求让读者快速熟悉这方面的知识,能够独立开发交易策略并且尝试进行仿真交易。如果在
vn.py
本书主要内容
7
1
2
3
4
5
6
7
致谢
“猴子聊人物”创始人,他的数据分析的课程让我快速上手PythonLive
IT
导语摘要
本书本着能让新手快速上手量化交易的原则,循序渐进地讲解了量化交易入门所需要的知识,以及大量的开发技巧与交易技巧,具有很强的实用性。vn.py是机构级别的量化交易软件,掌握vn.py框架原理并且熟练运用,有利于新手快速搭建属于自己的量化交易系统。Python语言有非常强大的数据分析库,对于交易策略的研发具有天然优势,且其易学性也深受初学者喜爱。本书即以Python vn.py这一流行组合写作,从量化交易的起源及其发展进程入手,在简单介绍Python量化编程基础,以及详细解析vn.py架构之后,深入且全面地介绍了CTA策略、海龟策略,以及新策略的开发流程。
作者简介
知乎专栏《Python量化之路》作者,受困于早期Python量化交易的学习资料过于零散,把自己在量化交易从入门到应用的踩“坑”经历整理成学习笔记发布到网上,以简单的CTA策略为着力点,力求拉近学习与实践(即实盘交易)的距离,由浅入深,比较系统而全面地介绍量化交易相关知识,收获了很多初学者的肯定和共鸣。目前就职于上海某金融科技公司,负责策略的研发与API接口的开发。
目录
目 录
第1章 量化交易速览1
1.1 为何选择量化交易1
1.1.1 量化交易的概念1
1.1.2 主观交易与量化交易2
1.2 量化交易的先驱们5
1.2.1 朱尔斯·雷格纳特5
1.2.2 爱德华·索普6
1.2.3 托马斯·彼得菲9
1.2.4 詹姆斯·西蒙斯14
1.3 美国量化投资的发展历史17
1.3.1 兴起阶段(1970—1990年)17
1.3.2 快速发展阶段(1990—2000年)18
1.3.3 稳步增长阶段(2000年至今)19
1.4 中国量化投资的发展历史20
1.4.1 ETF套利时代(2010年以前)20
1.4.2 多因子Alpha和高频交易称雄时代(2010—2015年)21
1.4.3 多元化投资时代(2016年至今)23
1.5 国内常用的量化交易策略24
1.5.1 期货CTA策略24
1.5.2 股票Alpha策略32
1.5.3 期权波动率套利策略41
1.5.4 高频交易策略45
1.6 宽客48
1.7 宽客的两大阵形:P宗与Q宗51
1.8 宽客的3种职能分类52
1.8.1 量化IT工程师52
1.8.2 量化研究员53
1.8.3 量化交易员54
1.9 宽客的四大派系55
1.9.1 券商资管56
1.9.2 公募基金56
1.9.3 私募基金57
1.9.4 期货市场57
第2章 Python量化编程基础59
2.1 Python运行环境搭建60
2.1.1 安装Anaconda2-5.0.0(32位)61
2.1.2 设置Anancoda环境62
2.1.3 创建共享环境64
2.1.4 列出共享环境64
2.1.5 安装Jupyter Notebook65
2.2 数据66
2.2.1 字符串66
2.2.2 数字67
2.2.3 容器68
2.2.4 布尔值73
2.2.5 空值73
2.3 函数74
2.3.1 自定义函数74
2.3.2 第三方库的函数75
2.4 条件判断75
2.5 循环76
2.6 类和实例79
2.6.1 定义学生父类79
2.6.2 定义父类实例81
2.6.3 定义团体子类82
2.6.4 定义子类实例83
2.7 NumPy与Pandas84
2.7.1 一维数组84
2.7.2 二维数组88
2.8 scikit-learn机器学习库92
2.8.1 机器学习的步骤93
2.8.2 线性回归94
2.8.3 逻辑回归100
2.9 Matplotlib绘图库103
2.9.1 用列表绘制线条103
2.9.2 用数组绘图105
2.9.3 多个图的绘制108
第3章 vn.py入门109
3.1 vn.py介绍109
3.2 搭建vn.py运行环境113
3.2.1 安装Visual Studio 2013社区版(特定版本)113
3.2.2 安装代码编辑器工具:Sublime Text114
3.2.3 安装Wing IDE115
3.2.4 安装MongoDB数据库115
3.2.5 安装Robo 3T118
3.2.6 安装vn.py119
3.2.7 更新vn.py121
3.3 VnTrader界面功能介绍122
3.3.1 连接CTP122
3.3.2 界面说明123
3.4 vn.py架构124
3.4.1 底层接口125
3.4.2 中层引擎126
3.4.3 上层应用127
3.5 底层接口128
3.5.1 CTP API的工作原理128
3.5.2 CTP API的Python封装设计133
3.5.3 CTP API对接中层引擎原理135
3.6 事件引擎138
3.6.1 时间驱动138
3.6.2 事件驱动139
3.6.3 事件引擎工作流程140
3.6.4 事件引擎结构141
3.7 上层应用143
3.7.1 PyQt介绍143
3.7.2 GUI组件构成144
第4章 在vn.py中实现CTA策略147
4.1 数据解决方案147
4.1.1 CSV加载模块147
4.1.2 开发新的CSV导入模块152
4.1.3 数据下载模块155
4.2 K线生成模块157
4.2.1 1分钟K线合成158
4.2.2 X分钟K线合成161
4.3 K线管理模块162
4.3.1 初始化参数162
4.3.2 生成时间序列163
4.3.3 定义属性函数164
4.3.4 生成计算指标165
4.4 CTA策略模块167
4.4.1 定义成员变量168
4.4.2 构建函数169
4.4.3 回调函数170
4.4.4 主动函数171
4.5 策略回测模块174
4.5.1 CTA回测引擎174
4.5.2 参数优化设置178
4.5.3 调用回测和优化模块178
第5章 经典CTA策略185
5.1 双均线策略185
5.1.1 策略原理185
5.1.2 向量回测186
5.1.3 vn.py回测191
5.2 Dual Thrust策略200
5.2.1 策略原理200
5.2.2 策略代码解析201
5.2.3 策略回测206
5.2.4 策略优化208
5.2.5 滚动回测211
5.3 AtrRsi策略212
5.3.1 ATR指标213
5.3.2 RSI指标215
5.3.3 策略原理216
5.3.4 策略代码解析217
5.3.5 策略回测220
5.3.6 滚动回测221
5.4 金肯特纳通道策略223
5.4.1 策略原理223
5.4.2 策略代码解析224
5.4.3 策略回测229
5.4.4 滚动回测229
5.5 布林带通道策略231
5.5.1 策略原理231
5.5.2 CCI指标232
5.5.3 ATR指标234
5.5.4 策略回测235
5.5.5 滚动回测236
5.6 跨时间周期策略238
5.6.1 策略原理239
5.6.2 策略代码解析239
5.6.3 策略回测243
5.6.4 滚动回测244
5.7 多信号组合策略245
5.7.1 策略原理246
5.7.2 信号生成部分246
5.7.3 交易管理部分251
5.7.4 多信号策略的重构256
第6章 海龟策略本地化实证259
6.1 海龟策略速览259
6.1.1 海龟策略的故事259
6.1.2 海龟策略的局限性260
6.1.3 原版海龟策略261
6.1.4 策略回测效果266
6.2 本地化实现困境与解决方案268
6.2.1 本地化实现困境268
6.2.2 理想解决方案270
6.3 vn.py实现的海龟策略271
6.3.1 工具准备271
6.3.2 数据准备272
6.3.3 海龟策略代码结构275
6.3.4 海龟策略6大要素代码解析278
6.3.5 海龟策略的回测284
6.4 品种选择验证285
6.4.1 原版投资组合测试285
6.4.2 筛选品种的传统方法287
6.4.3 构建海龟组合的难点295
6.4.4 海龟组合筛选的解决方案296
6.4.5 重新构建投资组合300
6.5 长短周期信号检验320
6.6 上一笔赢利过滤检验322
6.7 手续费、滑点测试324
6.8 单位头寸限制检验325
6.9 关于海龟策略的其他研究方向329
第7章 新策略实战330
7.1 开发新的策略330
7.1.1 策略思路330
7.1.2 增加AROON函数332
7.1.3 策略代码解析333
7.1.4 策略回测335
7.2 多策略的组合回测337
7.2.1 历史表现338
7.2.2 预测表现341
7.2.3 回测的注意事项341
7.3 模拟测试348
7.3.1 策略文件目录348
7.3.2 实盘/模拟盘配置文件349
7.4 真实交易环境352
7.4.1 交易环境的3套系统352
7.4.2 交易环境的数据流353
7.5 实际操作注意事项354
7.5.1 计算错误354
7.5.2 数据使用误差355
7.5.3 过拟合356
7.5.4 幸存者偏差357
7.5.5 策略周期358
7.5.6 动态变化的现实环境359
7.5.7 人为干预360
附录A 主流交易品种361
A.1 股票361
A.1.1 股票的定义361
A.1.2 股票交易所362
A.1.3 股票竞价规则363
A.1.4 T 1制度367
A.1.5 股票交易策略369
A.2 期货371
A.2.1 期货的定义371
A.2.2 期货交易所371
A.2.3 期货交易策略374
A.3 期权376
A.3.1 期权的定义376
A.3.2 期权的分类379
A.3.3 期权的影响因素381
A.3.4 期权投资组合383
A.3.5 期权波动率套利策略386
A.4 外汇387
A.4.1 外汇的定义387
A.4.2 外汇市场的结构389
A.4.3 外汇市场的组织形式392
A.4.4 主要外汇交易中心393
A.4.5 外汇交易策略395
参考文献398
内容摘要
本书本着能让新手快速上手量化交易的原则,循序渐进地讲解了量化交易入门所需要的知识,以及大量的开发技巧与交易技巧,具有很强的实用性。vn.py是机构级别的量化交易软件,掌握vn.py框架原理并且熟练运用,有利于新手快速搭建属于自己的量化交易系统。Python语言有非常强大的数据分析库,对于交易策略的研发具有天然优势,且其易学性也深受初学者喜爱。本书即以Python vn.py这一流行组合写作,从量化交易的起源及其发展进程入手,在简单介绍Python量化编程基础,以及详细解析vn.py架构之后,深入且全面地介绍了CTA策略、海龟策略,以及新策略的开发流程。
主编推荐
知乎专栏《Python量化之路》作者,受困于早期Python量化交易的学习资料过于零散,把自己在量化交易从入门到应用的踩“坑”经历整理成学习笔记发布到网上,以简单的CTA策略为着力点,力求拉近学习与实践(即实盘交易)的距离,由浅入深,比较系统而全面地介绍量化交易相关知识,收获了很多初学者的肯定和共鸣。目前就职于上海某金融科技公司,负责策略的研发与API接口的开发。
以下为对购买帮助不大的评价