猜你喜欢
Python量化交易

Python量化交易

书籍作者:张杨飞 ISBN:9787121361401
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2754
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书本着能让新手快速上手量化交易的原则,循序渐进地讲解了量化交易入门所需要的知识,以及大量的开发技巧与交易技巧,具有很强的实用性。vn.py是机构级别的量化交易软件,掌握vn.py框架原理并且熟练运用,有利于新手快速搭建属于自己的量化交易系统。Python语言有非常强大的数据分析库,对于交易策略的研发具有天然优势,且其易学性也深受初学者喜爱。本书即以Python+vn.py这一流行组合写作,从量化交易的起源及其发展进程入手,在简单介绍Python量化编程基础,以及详细解析vn.py架构之后,深入且全面地介绍了CTA策略、海龟策略,以及新策略的开发流程。

相对其他量化交易方面的书,本书不再讲述Python语言编程的大量细节,而将笔墨着重放在对量化交易策略的解析、应用与回测之上,这才是新手真正需要学习和实践的地方。本书适合所有对量化交易感兴趣的人员阅读,也适合相关院校和培训机构作为量化交易系统课程的教材。


作者简介

知乎专栏《Python量化之路》作者,受困于早期Python量化交易的学习资料过于零散,把自己在量化交易从入门到应用的踩“坑”经历整理成学习笔记发布到网上,以*简单的CTA策略为着力点,力求拉近学习与实践(即实盘交易)的距离,由浅入深,比较系统而全面地介绍量化交易相关知识,收获了很多初学者的肯定和共鸣。目前就职于上海某金融科技公司,负责策略的研发与API接口的开发。

编辑推荐
适读人群 :相对其他量化交易的书,本书不再讲述Python语言编程的大量细节,而将笔墨着重放在量化交易策略的解析、应用与回测之上,这才是新手真正需要学习和实践的地方。本书适合所有对量化交易感兴趣的人员阅读,也适合相关院校和培训机构作为量化交易系统课程的教材。

1 本书仅用一章的篇幅就把量化交易概念、源起和发展用故事的形式介绍了,适合完全不懂量化交易的读者入门。

2 本书再仅用一章的篇幅就把Python在量化交易里用到的基础必用知识全部介绍完了,适合特别了解量化交易但不想学太多程序知识的读者,掌握这一章内容即可进行Python量化交易。

3 本书接下来用一章的篇幅把当下流行的vn.py框架引入进来。

4 接下来,即为本书的精华所在,也是本书价值所在,即各种量化交易策略的介绍、运用、回测等,帮助读者搭建属于自己的量化系统,找到好的产品配比组合。

综上所述:

一、本书内容扎实,针对每一知识点仅呈现必学内容。

二、本书定位清晰,针对量化交易入门者。

三、本书目标鲜明,让读者能够学完本书打造出属于自己的量化交易系统。


前言

在证券交易领域中,量化交易脱胎于传统的主观交易:把投资者的交易理念、交易策略固化成计算机程序,通过算法快速自动下单,有效地防止投资者自身情绪的干扰,让其把精力放在研发交易策略上。量化交易的另一个优点是其成功的方法有迹可循,因为量化交易的过程是,运用现代统计学理论对历史数据进行数据分析,构建数学模型来预测市场未来价格的变化,然后通过计算机语言表达出来,从而实现自动交易。

vn.py是机构级别的量化交易软件,掌握vn.py框架原理并且熟练使用,有利于新手快速入门量化交易,搭建属于自己的量化交易系统,也可以在机构中找到与量化岗位相关的工作。

为什么写作本书

本书使用的编程语言是Python。尽管市面上关于Python量化交易方面的书籍不少,但是大部分着重讲述Python编程基础,而且主要是在股票交易中的应用,在期货市场的应用少之又少。就实践的层面来看,股票量化交易对于入门者几乎是不可能实现的,尽管2019年重新开放程序化交易API,但是其资金门槛高达5亿元。

期货市场上程序化交易接口却无资金门槛,而且量化交易应用发展得比较成熟,这才是新手可以去学习和实践的地方。故本书的写作定位是交易策略在期货领域的应用和开发,力求填补这方面的空白。

本书特色

本书尽量以初学者的角度来讲述量化交易的内容,逐步填平量化交易入门要踩的“坑”,力求让读者快速熟悉这方面的知识,能够独立开发交易策略并且尝试进行仿真交易。如果在SinNow仿真交易平台能够赢利,那么就可以上实盘去“跑”了。

本书的另一个特色是使用机构级别的开源交易软件:vn.py。机构级别软件对应的使用群体是做量化交易的机构投资者,如私募基金、证券自营,以及资管和期货资管等。这类软件虽然上手困难,但是熟练掌握后能更有效地深耕于量化交易领域,并且也有利于初学者入门量化交易。

本书主要内容

本书共包括7章,每章的主要内容如下。

第1章“量化交易速览”首先从狭义和广义两个方面介绍了“量化交易”的概念,然后介绍开拓出这个领域的先驱们的故事,接着讲述量化投资在美国与中国的历史发展进程,最后简单地介绍国内常用的量化交易策略及宽客这个专门从事量化交易的职业。

第2章“Python量化编程基础”介绍了将Python作为量化交易入门语言的理由,讲解了Python的基础概念,以及常用的数据分析库NumPy与Pandas、机器学习库scikit-learn,最后讲解绘图库Matplotlib的基本用法。

第3章“vn.py入门”介绍了vn.py交易系统的概况、安装步骤、主交易界面的功能,具体讲述vn.py应用框架的结构,分别是底层接口、中层引擎及上层应用,最后对这3层结构的原理做一个具体说明。

第4章“在vn.py中实现CTA策略”介绍vn.py提供的数据解决方案,用于生成具体CTA策略的相关支出模块,如K线生成、K线管理和策略模板,最后讲述回测和优化模块。

第5章“经典CTA策略”主要介绍vn.py官方提供的经典CTA策略,包括策略原理、代码解释、策略回测和参数优化。

第6章“海龟策略本地化实证”首先介绍海龟交易策略的起源、关键要素,然后解析vn.py下海龟策略的代码,通过交叉检验与筛选品种构成投资组合,最后基于构建好的海龟组合对策略的各个关键要素进行研究。

第7章“新策略实战”首先介绍了开发新策略的流程,然后是搭建投资组合,并进行策略回测为实战做好准备,最后介绍在真实交易情况下接触的3套系统,并且分析策略回测与实战中结果不同的成因。

致谢

我首先要感谢“猴子聊人物”创始人,他的数据分析的课程让我快速上手Python语言;然后是“用Python的交易员”陈晓优先生,我也是受益于其知乎Live上对量化交易的推广才从传统的金融转到该领域的。

我还要真诚地感谢电子工业出版社优秀的IT编辑孙学瑛女士和电子工业出版社对本书的重视,以及他们为本书出版所做的一切。

目录

目 录
第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 Notebook 65
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与Pandas 84
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 Text 114
3.2.3 安装Wing IDE 115
3.2.4 安装MongoDB数据库 115
3.2.5 安装Robo 3T 118
3.2.6 安装vn.py 119
3.2.7 更新vn.py 121
3.3 VnTrader界面功能介绍 122
3.3.1 连接CTP 122
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

产品特色