温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基础
搭建
量化
投资
系统
Python
工具
内 容 简 介 本书从初学者的角度出发,通过通俗易懂的语言,详细介绍了量化投资分析、机器学习、NLP 自然语言处理(聊天机器人设计)、网络爬虫等应用知识,书中所有知识点都结合具体实例进行讲解,可以使读者轻松领会 Python 程序开发的精髓,让零基础的读者轻松跨入编程领域。本书还通过一个完整的项目案例,帮助读者独立搭建量化分析交易平台。本书适合 Python 语言零基础的学生、用 Python 语言编写量化交易策略的开发人员,以及从事数据建模框架和量化分析交易框架的设计人员与机器学习、NLP 自然语言处理、网络爬虫应用开发的人员阅读。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 零基础搭建量化投资系统:以 Python 为工具/何战军,杨茂龙,何天琦编著.北京:电子工业出版社,2019.12(量化交易丛书)ISBN 978-7-121-37620-7 .零 .何 杨 何 .软件工具-程序设计 .TP311.561 中国版本图书馆 CIP 数据核字(2019)第 219953 号 责任编辑:黄爱萍 印 刷:三河市君旺印务有限公司 装 订:三河市君旺印务有限公司 出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编:100036 开 本:787980 1/16 印张:27.5 字数:530 千字 版 次:2019 年 12 月第 1 版 印 次:2019 年 12 月第 1 次印刷 定 价:99.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。本书咨询联系方式:010-51260888-819,。前 言 本书主要介绍有关 Python 3.7 的使用,Python 3 是发展趋势,由于 Python 2 对中文支持不友好等局限性会被逐步淘汰。本书是金融投资和量化分析软件开发的入门书籍,其重点介绍金融数据的处理和投资分析技术的程序实现、K 线图形和技术指标图形的程序绘制与框架开发,以及 Tkinter 窗口布局设计等,目的是使读者能够独立搭建自己的金融投资分析量化平台。通过对本书的学习,读者能在 Windows 平台上搭建一个很酷的窗口,也能真正运行 Python 3 量化投资分析平台。本书中的大部分示例代码都可以在 Python 3.6 和Python 3.7 的平台上运行,包含 Windows 7/8/10 的 32 位或者 64 位、macOS、Linux等操作系统,建议使用 Windows 64 位系统。本书能够顺利完稿,首先要感谢电子工业出版社的黄爱萍和李淑丽两位编辑,在图书的编写过程中她们提出了很多宝贵的建议,还要感谢西安博成基金管理有限公司对本书在理念上的指导,同时,也非常感谢李宇昂对本书的排版布局及插图设计提供了很好的设计方案,使本书增色不少。其次,感谢我的博客和公众号中的广大网友,这些朋友在我写书的过程中,给予了很大的支持,并对一些程序代码提出了许多值得改进的意见。最后,感谢帮我检查并核对书稿的李美平、袁珊珊和房金思,谢谢你们!接下来,我会一如既往地和诸位朋友一起完善这个开源量化平台,让我们一起加油吧!目 录 第 1 章 准备工作 1 1.1 Python 简介 1 1.2 Python 安装 3 1.3 Pip 包管理工具 13 1.4 Python 常用开发工具安装 19 1.5 Python 集成开发环境 Spyder 的使用 23 第 2 章 Python 的语法知识 28 2.1 Python 语言与其他语言对比 28 2.2 Python 编程基础 31 2.3 Python 的赋值语句 35 2.4 Python 的输入语句和输出语句 40 2.5 Python 程序流程控制语句 44 2.6 import 语句 51 第 3 章 Python 的数据与运算 59 3.1 Python 的数据类型 59 3.2 运算符及优先级 70 3.3 数值运算 83 3.4 字符串及相关操作 91 3.5 列表及相关操作 102 零基础搭建量化投资系统 以 Python 为工具 VI 3.6 集合及相关操作 110 第 4 章 自定义函数、类和作用域 120 4.1 Python 的自定义函数 120 4.2 Python 的类 132 4.3 Python 的作用域 146 第 5 章 NumPy 库与多维数组 153 5.1 NumPy 的简介 153 5.2 NumPy 库的安装和使用 154 5.3 ndarray 数组元素的数据类型 158 5.4 ndarray 数组的索引、切片和转置 160 5.5 NumPy 通用函数 166 5.6 ndarray 数组文件的保存和读取 168 第 6 章 Pandas 库与数据处理 171 6.1 Pandas 安装和使用 171 6.2 Pandas 数据结构 172 6.3 股票数据使用 174 6.4 DataFrame 数据操作 179 6.5 DataFrame 无效值 193 6.6 DataFrame 索引操作 194 6.7 DataFrame 数据的追加与合并 196 6.8 DataFrame 数据的保存和读取 199 6.9 DataFrame 运算 206 6.10 DataFrame 数据画线 208 6.11 仿通达信大智慧公式指标 KDJ 210 第 7 章 Matplotlib 模块 217 7.1 Matplotlib 的使用 217 7.2 有关 Pyplot 显示的方法 233 7.3 Pyplot 常用绘图方法 236 目录 VII 7.4 共享 x 坐标轴画图 239 7.5 绘制 K 线图 241 第 8 章 Tkinter 模块 245 8.1 Tkinter 的使用 245 8.2 Tkinter 控件的属性 250 8.3 Tkinter 主窗口 260 8.4 Toplevel 顶层子窗口 263 8.5 创建窗口菜单条 264 8.6 创建弹出菜单 266 8.7 控件的几何布局管理方法 269 8.8 Tkinter 常用控件 274 8.9 Tkinter 的事件和绑定 299 8.10 Ttk 控件 304 8.11 Tix 控件 312 第 9 章 小白量化投资分析平台 327 9.1 平台整体功能的划分 327 9.2 全局变量 HP_global 329 9.3 全局变量初始化 HP_set 330 9.4 本地数据及格式处理 HP_data 332 9.5 公式基础函数库 HP_formula 336 9.6 窗口容器库 HP_view 340 9.7 指标绘图库 HP_draw 344 9.8 回测系统库 HP_sys 355 9.9 智能聊天对话系统 HP_robot 364 9.10 策略编辑器 HP_edit 369 9.11 总体框架构建模块 HP_MainPage 370 9.12 主程序模块 HP_main 388 零基础搭建量化投资系统 以 Python 为工具 VIII 第 10 章 分析回测与预测 390 10.1 投资分析方法 390 10.2 选股 390 10.3 择时买入 396 10.4 持仓分析卖点信号 406 10.5 操作策略 412 10.6 多只股票量化回测 416 10.7 深度学习预测股价 424 10.8 股票数据网络爬虫 428 第 1 章 准 备 工 作 1.1 Python简介 Python 是一种高层次的,结合了解释性、编译性、互动性和面向对象的脚本语言,其设计具有很强的可读性。它是一种解释型语言,这意味着开发过程中没有了编译这个环节;它是一种交互式语言,这意味着可以在 Python 提示符“”处直接输入程序语句;它是一种面向对象语言,这意味着它是一种支持把客观事物封装成抽象的类的编程技术。对于初级程序员而言,Python 是一种伟大的语言。它支持广泛的应用程序开发,从简单的文字处理到浏览器再到游戏,无所不能。由于 Python 语言具有简洁性、易读性及可扩展性,因此在国外科学计算的研究机构中的使用日益增多,一些知名大学也已经采用 Python 来教授程序设计课程。例如,卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学和编程导论。众多开源的科学计算软件包都提供了 Python 的调用接口,如著名的计算机视觉库 OpenCV、三维可视化库 VTK、医学图像处理库 ITK。而 Python 专用的科学计算扩展库就更多了,如 NumPy,SciPy 和 Matplotlib 三个经典的科学计算扩展库,它们分别为 Python提供了快速数组处理、数值运算及绘图功能。因此,由 Python 语言及其众多的扩展库所构成的开发环境十分适合工程技术和科研人员处理实验数据、制作图表,甚至1 零基础搭建量化投资系统 以 Python 为工具 2 开发科学计算应用程序。1.Python 的发展历史 Python 是由吉多范罗苏姆(Guido van Rossum)于 20 世纪 90 年代初在荷兰国家数学和计算机科学研究所设计出来的。Python 本身也是由诸多其他语言发展而来的,它自研发之初就遵循 GPL(General Public License)协议(一种开源协议)。这也是其迅速发展的主要原因之一。目前,Python由一个核心开发团队维护,而 Guido van Rossum 主要指导其进展,仍然起着至关重要的作用。Python 有两个最新版本,即 Python 2.7.16 和 Python 3.7.3。Python 2 和 Python 3是两个不同语法的版本,很多旧库只支持 Python 2,目前仍有小部分人在使用。Python 3 具有很多高级语言的特性,功能更加强大。Python 2 对中文支持不是很好,不支持中文文件名,图形中也不支持中文显示。Python 2.7 将在 2020 年停止维护,很多公司已经明确不再为 Python 2 提供后续版本库的支持,因此,本书主要介绍 Python 3.7 的开发编程。Python 2 和 Python 3 语法不同的例子:Python 2:print Hello Word!Python 3:print(Hello Word!)2.Python 的特点(1)易于学习:从小学生到 80 岁的老人,只要认识英文字母,就可以学习 Python语言。浙江省对信息技术课程进行了改革,从 2018 年开始将 Visual Basic 语言更换为 Python 语言,甚至还将 Python 语言纳入了浙江省信息技术高考内容。(2)易于阅读:Python 代码定义得更加清晰,其编写就像读英语一样简单。(3)易于维护:Python 成功的原因之一在于它的源代码相当容易维护。(4)一个广泛的标准库:Python 最大的优势之一是拥有丰富的、跨平台的资源库,并且与 UNIX,Windows 和 Macintosh 的兼容性都很好。(5)互动模式:互动模式的支持,即通过 Python 系统终端输入代码,按回车键就能获得代码运行结果。(6)可移植:基于其开放源代码的特性,Python 已经被移植(也就是使其工作)到许多操作平台,如 Windows,macOS,Linux,甚至是安卓手机上。(7)可扩展:即可以用 C 语言或 C+语言编写 Python 的模块。当你需要一段运第 1 章 准 备 工 作 3 行很快的关键代码,或者想要编写一些不愿开放的算法时,就可以使用 C 语言或 C+语言完成这部分程序,然后从 Python 程序中调用。(8)数据库:Python 提供所有主流的商业数据库的接口。(9)图形用户界面(Graphical User Interface,GUI)编程:P