微信扫一扫,移动浏览光盘
简介
本书针对Python零基础的用户,主要讲解大量的股票指标技术分析的范例,由浅入深地介绍了使用Python语言编程开发的应用“图谱”。 全书分为三篇:基础篇(第1~4章):讲述Python开发环境的搭建、基本语法、数据结构、代码的调试以及面向对象的编程思想;股票指标技术分析篇(第5~10章):分别讲述使用网络爬虫技术获取股票数据,使用Matplotlib可视化组件,基于NumPy和Pandas库进行大数据分析,以股票的不同指标分析为范例的开发方法—MACD Python数据库编程,KDJ Python图形用户界面编程,RSI Python邮件编程;基于股票指标的交易策略之高级应用篇(第11~13章):以股票的BIAS指标分析为范例讲述Django框架,以股票的OBV指标分析为范例讲述在Django中导入日志和数据库组件,结合股票指标分析讲述基于线性回归和SVM(支持向量机)的机器学习的入门知识。 本书以结合股票交易大数据分析范例为主线来教学Python编程开发的入门教材。适合计算机、数学或金融等相关专业的师生作为课程设计和毕业设计辅导的教学参考用书,针对基于机器学习预测股票价格的范例程序也可单独作为参考用例。
目录
目 录
第1章 掌握实用的PYTHON语法 1
1.1 安装Python开发环境 1
1.1.1 在MyEclipse里安装开发插件和Python解释器 1
1.1.2 新建Python项目,开发*个Python程序 2
1.2 快速入门Python语法 6
1.2.1 Python的缩进与注释 6
1.2.2 定义基本数据类型 7
1.2.3 字符串的常见用法 7
1.2.4 定义函数与调用函数 9
1.3 控制条件分支与循环调用 10
1.3.1 通过if…else控制程序的分支流程 10
1.3.2 while循环与continue,break关键字 11
1.3.3 通过for循环来遍历对象 12
1.4 通过范例程序加深对Python语法的认识 12
1.4.1 实现冒泡排序算法 13
1.4.2 计算指定范围内的质数 13
1.4.3 通过Debug调试代码中的问题 14
1.5 本章小结 17
第2章 PYTHON中的数据结构:集合对象 18
2.1 列表和元组能存储线性表型数据 18
2.1.1 列表的常见用法 18
2.1.2 链表、列表还是数组?这仅仅是叫法的不同 20
2.1.3 对列表中元素进行操作的方法 20
2.1.4 不能修改元组内的元素 21
2.2 集合可以去除重复元素 22
2.2.1 通过集合去掉重复的元素 22
2.2.2 常见的集合操作方法 23
2.2.3 通过覆盖sort定义排序逻辑 24
2.3 通过字典存放“键-值对”类型的数据 24
2.3.1 针对字典的常见操作 25
2.3.2 在字典中以复杂的格式存储多个数据 25
2.4 针对数据结构对象的常用操作 27
2.4.1 映射函数map 27
2.4.2 筛选函数filter 28
2.4.3 累计处理函数reduce 29
2.4.4 通过Lambda表达式定义匿名函数 30
2.5 本章小结 31
第3章 PYTHON面向对象程序设计思想的实践 32
3.1 把属性和方法封装成类,方便重复使用 32
3.1.1 在Python中定义和使用类 33
3.1.2 通过__init__了解常用的魔术方法 34
3.1.3 对外屏蔽类中的不可见方法 35
3.1.4 私有属性的错误用法 36
3.1.5 静态方法和类方法 37
3.2 通过继承扩展新的功能 38
3.2.1 继承的常见用法 38
3.2.2 受保护的属性和方法 39
3.2.3 慎用多重继承 40
3.2.4 通过“组合”来避免多重继承 41
3.3 多态是对功能的抽象 42
3.3.1 Python中的多态特性 42
3.3.2 多态与继承结合 43
3.4 通过import复用已有的功能 44
3.4.1 通过import导入现有的模块 44
3.4.2 包是模块的升级 45
3.4.3 导入并使用第三方库NumPy的步骤 46
3.5 通过迭代器加深理解多态性 47
3.6 本章小结 49
第4章 异常处理与文件读写 50
4.1 异常不是语法错误 50
4.1.1 通过try…except从句处理异常 50
4.1.2 通过不同的异常处理类处理不同的异常 51
4.1.3 在except中处理多个异常 53
4.1.4 通过raise语句直接抛出异常 53
4.1.5 引入finally从句 54
4.2 项目中异常处理的经验谈 56
4.2.1 用专业的异常处理类来处理专门的异常 56
4.2.2 尽量缩小异常监控的范围 56
4.2.3 尽量缩小异常的影响范围 57
4.2.4 在合适的场景下使用警告 58
4.3 通过IO读写文件 59
4.3.1 以各种模式打开文件 59
4.3.2 引入异常处理流程 60
4.3.3 写文件 61
4.4 读写文件的范例 62
4.4.1 复制与移动文件 62
4.4.2 读写csv文件 63
4.4.3 读写zip压缩文件 64
4.5 本章小结 65
第5章 股市的常用知识与数据准备 66
5.1 股票的基本常识 66
5.1.1 交易时间与T 1交易规则 66
5.1.2 证券交易市场 67
5.1.3 从竞价制度分析股票为什么会涨跌 67
5.1.4 指数与板块 68
5.1.5 本书会用到的股市术语 68
5.2 编写股票范例程序会用到的库 69
5.3 通过爬取股市数据的范例程序来学习urllib库的用法 70
5.3.1 调用urlopen方法爬取数据 70
5.3.2 调用带参数的urlopen方法爬取数据 72
5.3.3 GET和POST的差别和使用场景 73
5.3.4 调用urlretrieve方法把爬取结果存入csv文件 73
5.4 通过基于股票数据的范例程序学习正则表达式 74
5.4.1 用正则表达式匹配字符串 74
5.4.2 用正则表达式截取字符串 76
5.4.3 综合使用爬虫和正则表达式 77
5.5 通过第三方库收集股市数据 78
5.5.1 通过pandas_datareader库获取股市数据 78
5.5.2 使用Tushare库来获取上市公司的信息 80
5.5.3 通过Tushare库获取某时间段内的股票数据 81
5.6 本章小结 82
第6章 通过MATPLOTLIB库绘制K线图 83
6.1 Matplotlib库的基础用法 83
6.1.1 绘制柱状图和折线图 83
6.1.2 设置坐标轴刻度和标签信息 85
6.1.3 增加图例和图表标题 86
6.2 Matplotlib图形库的常用技巧 87
6.2.1 绘制含中文字符的饼图 87
6.2.2 柱状图和直方图的区别 89
6.2.3 Figure对象与绘制子图 91
6.2.4 调用subplot方法绘制子图 93
6.2.5 通过Axes设置数字型的坐标轴刻度和标签 94
6.2.6 通过Axes设置日期型的坐标轴刻度和标签 96
6.3 绘制股市K线图 97
6.3.1 K线图的组成要素 97
6.3.2 通过直方图和直线绘制K线图 98
6.3.3 通过mpl_finance库绘制K线图 99
6.4 K线对未来行情的预判 101
6.4.1 不带上下影线的长阳线 101
6.4.2 不带上下影线的长阴线 102
6.4.3 预测上涨的早晨之星 102
6.4.4 预测下跌的黄昏之星 103
6.4.5 预测上涨的两阳夹一阴形态 104
6.4.6 预测下跌的两阴夹一阳形态 104
6.5 本章小结 105
第7章 绘制均线与成交量 106
7.1 NumPy库的常见用法 106
7.1.1 range与arange方法比较 106
7.1.2 ndarray的常见用法 107
7.1.3 数值型索引和布尔型索引 108
7.1.4 通过切片获取数组中指定的元素 109
7.1.5 切片与共享内存 110
7.1.6 常用的科学计算函数 111
7.2 Pandas与分析处理数据 111
7.2.1 包含索引的Series数据结构 112
7.2.2 通过切片等方式访问Series中指定的元素 113
7.2.3 创建DataFrame的常见方式 114
7.2.4 存取DataFrame对象中的各类数据 115
7.2.5 通过DataFrame读取csv文件 116
7.2.6 通过DataFrame读取Excel文件 117
7.3 K线整合均线 118
7.3.1 均线的概念 118
7.3.2 举例说明均线的计算方法 119
7.3.3 移动窗口函数rolling 119
7.3.4 用rolling方法绘制均线 120
7.3.5 改进版的均线图 121
7.4 整合成交量图 123
7.4.1 本书用的成交量是指成交股数 123
7.4.2 引入成交量图 123
7.5 通过DataFrame验证均线的操作策略 126
7.5.1 葛兰碧均线八大买卖法则 126
7.5.2 验证基于均线的买点 127
7.5.3 验证基于均线的卖点 128
7.6 量价理论 129
7.6.1 成交量与股价的关系 129
7.6.2 验证“量增价平”的买点 130
7.6.3 验证“量减价平”的卖点 131
7.7 本章小结 132
第8章 数据库操作与绘制MACD线 133
8.1 Python连接MySQL数据库的准备工作 133
8.1.1 在本地搭建MySQL环境 133
8.1.2 安装用来连接MySQL的PyMySQL库 135
8.1.3 在MySQL中创建数据库与数据表 135
8.1.4 通过select语句执行查询 136
8.1.5 执行增、删、改操作 138
8.1.6 事务提交与回滚 139
8.2 整合爬虫模块和数据库模块 141
8.2.1 根据股票代码动态创建数据表 141
8.2.2 把爬取到的数据存入数据表 142
8.3 绘制MACD指标线 145
8.3.1 MACD指标的计算方式 145
8.3.2 遍历数据表数据,绘制MACD指标 146
8.3.3 关于数据误差的说明 149
8.3.4 MACD与K线均线的整合效果图 150
8.4 验证基于MACD指标的买卖点 153
8.4.1 MACD指标的指导意义与盲点 153
8.4.2 验证基于柱状图和金叉的买点 154
8.4.3 验证基于柱状图和死叉的卖点 157
8.5 本章小结 159
第9章 以KDJ范例程序学习GUI编程 160
9.1 Tkinter的常用控件 160
9.1.1 实现带标签、文本框和按钮的GUI界面 160
9.1.2 实现下拉框控件 162
9.1.3 单选框和多行文本框 163
9.1.4 复选框与在Text内显示多行文字 164
9.2 Tkinter与Matplotlib的整合 166
9.2.1 整合的基础:Canvas控件 166
9.2.2 在Canvas上绘制Matplotlib图形 167
9.2.3 在GUI窗口内绘制K线图 169
9.3 股票范例程序:绘制KDJ指标 171
9.3.1 KDJ指标的计算过程 171
9.3.2 绘制静态的KDJ指标线 172
9.3.3 根据界面的输入绘制动态的KDJ线 175
9.4 验证基于KDJ指标的交易策略 179
9.4.1 KDJ指标对交易的指导作用 180
9.4.2 基于Tkinter验证KDJ指标的买点 180
9.4.3 基于Tkinter验证KDJ指标的卖点 183
9.5 本章小结 184
第10章 基于RSI范例程序实现邮件功能 185
10.1 实现发邮件的功能 185
10.1.1 发送简单格式的邮件(无收件人信息) 185
10.1.2 发送HTML格式的邮件(显示收件人) 187
10.1.3 包含本文附件的邮件(多个收件人) 188
10.1.4 在正文中嵌入图片 189
10.2 以邮件的形式发送RSI指标图 191
10.2.1 RSI指标的原理和算法描述 191
10.2.2 通过范例程序观察RSI的算法 192
10.2.3 把Matplotlib绘制的RSI图存为图片 193
10.2.4 RSI整合K线图后以邮件形式发送 195
10.3 以邮件的形式发送基于RSI指标的买卖点 198
10.3.1 RSI指标对买卖点的指导意义 199
10.3.2 基于RSI指标计算买点并以邮件的形式发出 199
10.3.3 基于RSI指标计算卖点并以邮件的形式发出 202
10.4 本章小结 204
第11章 用BIAS范例讲述DJANGO框架 205
11.1 基于WSGI规范的Web编程 205
11.1.1 基于WSGI规范的Python Web代码 205
11.1.2 再加入处理GET请求的功能 206
11.2 通过Django框架开发Web项目 207
11.2.1 安装Django组件 207
11.2.2 创建并运行Django 208
11.2.3 从Form表单入手扩展Django框架 210
11.2.4 运行范例程序了解基于MVC的调用模式 212
11.2.5 Django框架与Matplotlib的整合 214
11.3 绘制乖离率BIAS指标 216
11.3.1 BIAS指标的核心思想和算法 216
11.3.2 绘制K线与BIAS指标图的整合效果 216
11.3.3 基于BIAS指标的买卖策略 218
11.3.4 在Django框架中绘制BIAS指标图 219
11.3.5 在Django框架中验证买点策略 224
11.3.6 在Django框架中验证卖点策略 224
11.4 本章小结 226
第12章 以OBV范例深入讲述DJANGO框架 228
12.1 在Django框架内引入日志 228
12.1.1 不同级别日志的使用场合 228
12.1.2 向控制台和文件输出不同级别的日志 229
12.2 在Django框架内引入数据库 234
12.2.1 整合并连接MySQL数据库 234
12.2.2 以Model的方式进行增删改查操作 236
12.2.3 使用查询条件获取数据 239
12.2.4 以SQL语句的方式读写数据库 241
12.3 绘制OBV指标图 241
12.3.1 OBV指标的原理以及算法 242
12.3.2 绘制K线、均线和OBV指标图的整合效果图 242
12.4 在Django框架内整合日志与数据库 245
12.4.1 搭建Django环境 245
12.4.2 把数据插入到数据表中(含日志打印) 246
12.4.3 验证基于OBV指标的买卖策略 252
12.5 本章小结 255
第13章 以股票预测范例入门机器学习 256
13.1 用线性回归算法预测股票 256
13.1.1 安装开发环境库 256
13.1.2 从波士顿房价范例初识线性回归 257
13.1.3 实现基于多个特征值的线性回归 261
13.1.4 fit函数训练参数的标准和方法 262
13.1.5 训练集、验证集和测试集 263
13.1.6 预测股票价格 265
13.2 通过SVM预测股票涨跌 267
13.2.1 通过简单的范例程序了解SVM的分类作用 268
13.2.2 数据标准化处理 269
13.2.3 预测股票涨跌 270
13.2.4 定量观察预测结果 273
13.3 本章小结 274
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问