作者:王征,李晓波
出版时间:2020年
内容提要:
本书首先讲解Python量化炒股快速入门,即量化炒股的定义、量化炒股理解误区、量化炒股的主要内容、量化炒股的优势、量化炒股的注意事项;然后讲解量化炒股开发语言Python,即讲解Python语言的开发环境、基本语法、基本流程控制、特征数据类型、函数及应用、面向对象程序设计;接着讲解量化炒股中的三个常用包,即Numpy、pandas和Matplotlib包;然后讲解如何利用Python编写量化炒股策略、量化炒股的获取数据函数、财务因子量化选股、其他基本面因子量化选股、量化择时的技术指标函数、量化炒股策略的回测、量化炒股策略的因子分析;最后讲解Python量化炒股策略实战案例。在讲解过程中即考虑读者的学习习惯,又通过具体实例剖析讲解Python量化炒股实际交易过程中的热点问题、关键问题及种种难题。
目录
第1章 Python量化炒股快速入门 1
1.1 初识量化炒股 2
1.1.1 什么是量化炒股 2
1.1.2 量化炒股的特点 2
1.1.3 量化炒股的优势 4
1.1.4 量化炒股的不足 5
1.2 量化炒股的内容 5
1.2.1 量化选股 5
1.2.2 量化择时 6
1.2.3 算法交易 6
1.2.4 股指期货套利交易 8
1.3 量化炒股的开发语言Python 8
1.3.1 为什么使用Python来开发量化炒股 8
1.3.2 Python的下载和安装 9
1.3.3 Python的环境变量配置 12
1.3.4 编写Python程序 15
1.4 量化炒股与普通炒股的比较 18
1.5 量化炒股的注意事项 18
第2章 Python编程的初步知识 21
2.1 变量 22
2.1.1 什么是变量 22
2.1.2 变量命名规则 22
2.1.3 变量的赋值 23
2.2 变量的基本数据类型 24
2.2.1 数值类型 24
2.2.2 字符串类型 27
2.3 运算符 29
2.3.1 算术运算符 29
2.3.2 赋值运算符 31
2.3.3 位运算符 32
2.4 Python的语法规则 33
2.4.1 大小写敏感性 34
2.4.2 代码缩进 34
2.4.3 代码注释 35
2.4.4 空行 35
2.4.5 同一行显示多条语句 36
第3章 Python编程的选择结构 37
3.1 if...else语句 38
3.1.1 if语句的一般格式 38
3.1.2 if语句的注意事项 38
3.1.3 实例:游戏登录判断系统 38
3.1.4 实例:输入一个正数,判断是偶数还是奇数 39
3.2 多个if...else语句 40
3.2.1 实例:每周计划系统 41
3.2.2 实例:企业奖金发放系统 42
3.3 关系运算符 44
3.3.1 关系运算符及意义 44
3.3.2 实例:学生成绩评语系统 44
3.3.3 实例:分解一个不多于5位的正整数 46
3.4 逻辑运算符 47
3.4.1 逻辑运算符及意义 47
3.4.2 实例:闰年和平年 47
3.4.3 实例:剪刀、石头、布游戏 49
3.5 嵌套if语句 50
3.5.1 嵌套if语句的一般格式 50
3.5.2 实例:后台用户登录系统 50
3.5.3 实例:判断一个数是否是2或3的倍数 51
第4章 Python编程的循环结构 53
4.1 while循环 54
4.1.1 while循环的一般格式 54
4.1.2 实例:计算1+2+3+…+120的和 54
4.1.3 实例:显示150之内的自然数 55
4.2 while循环中使用else语句 55
4.2.1 while循环中使用else语句的一般格式 56
4.2.2 实例:计算120之内偶数的和 56
4.2.3 实例:随机产生15个随机数,并显示最小的数 56
4.2.4 实例:阶乘求和 58
4.3 无限循环 59
4.3.1 实例:可以玩多次的剪刀、石头、布游戏 60
4.3.2 实例:可以查多次的学生成绩评语系统 61
4.4 for循环 64
4.4.1 for循环的一般格式 64
4.4.2 实例:遍历显示学生的姓名 64
4.5 在for循环中使用range()函数 65
4.5.1 range()函数 65
4.5.2 实例:显示150之内的奇数 66
4.5.3 实例:求两个正整数的最大公约数 66
4.6 循环嵌套 68
4.6.1 实例:9×9乘法表 68
4.6.2 实例:绘制※的菱形 68
4.6.3 实例:弗洛伊德三角形 69
4.7 break语句 70
4.8 continue语句 71
第5章 Python编程的常用数据结构 73
5.1 列表 74
5.1.1 什么是列表 74
5.1.2 显示列表中的数据信息 74
5.1.3 修改列表 75
5.1.4 删除列表 76
5.1.5 列表的函数 76
5.1.6 列表的方法 77
5.1.7 实例:排序随机数 79
5.2 元组 80
5.2.1 什么是元组 80
5.2.2 显示元组中的数据信息 81
5.2.3 连接元组 82
5.2.4 删除整个元组 82
5.2.5 元组的函数 83
5.2.6 实例:显示用户名和密码信息 84
5.3 字典 85
5.3.1 什么是字典 85
5.3.2 显示字典中的值和键 85
5.3.3 修改字典 86
5.3.4 字典的函数 87
5.3.5 实例:利用字典实现用户注册功能 88
5.3.6 实例:利用字典实现用户登录功能 90
5.4 集合 93
5.4.1 什么是集合 93
5.4.2 集合的两个基本功能 93
5.4.3 集合的运算符 94
5.4.4 实例:利用集合实现无重复的随机数排序 95
第6章 Python编程的函数 97
6.1 初识函数 98
6.2 内置函数 98
6.2.1 数学函数 98
6.2.2 随机函数 99
6.2.3 三角函数 101
6.2.4 字符串函数 103
6.3 自定义函数 107
6.3.1 函数的定义 107
6.3.2 调用自定义函数 107
6.3.3 函数的参数传递 109
6.3.4 函数的参数类型 111
6.4 匿名函数 115
6.5 递归函数 116
6.6 实例:计算一个数为两个质数之和 117
6.7 实例:利用内置函数实现小学四则运算 118
第7章 Python编程的面向对象 121
7.1 面向对象概述 122
7.1.1 什么是对象 122
7.1.2 什么是类 122
7.1.3 面向对象程序设计的优点 122
7.1.4 面向对象程序设计的特点 123
7.2 类的定义和对象的创建 124
7.2.1 类的定义 124
7.2.2 对象的创建 124
7.3 类的构造方法和self参数 125
7.4 类的继承 126
7.4.1 类继承的语法格式 126
7.4.2 类继承实例 127
7.4.3 类的多继承 128
7.5 类的多态 130
7.6 模块 131
7.6.1 Python中的自定义模块 132
7.6.2 自定义模块的调用 132
7.6.3 import语句 133
7.6.4 标准模块 135
7.7 包 136
7.7.1 Python的自定义包 138
7.7.2 在自定义包创建模块 140
7.7.3 调用自定义包中的模块 141
第8章 Python量化炒股常用的Numpy包 143
8.1 初识Numpy包及量化炒股平台 144
8.1.1 Numpy包概述 144
8.1.2 量化炒股平台 144
8.2 ndarray数组基础 146
8.2.1 Numpy数组的创建 146
8.2.2 Numpy特殊数组 149
8.2.3 Numpy序列数组 150
8.2.4 利用下标索引显示Numpy数组中元素的值 151
8.2.5 Numpy数组运算 152
8.3 Numpy的矩阵 153
8.4 Numpy的线性代数 154
8.4.1 两个数组的点积 154
8.4.2 两个向量的点积 155
8.4.3 数组的向量内积 156
8.4.4 矩阵的行列式 157
8.4.5 矩阵的逆 158
第9章 python量化炒股常用的Pandas包 161
9.1 Pandas的数据结构 162
9.2 一维数组系列 162
9.2.1 利用ndarray创建系列 162
9.2.2 利用字典创建系列 163
9.2.3 访问系列 中的值 164
9.3 二维数组DataFrame 165
9.3.1 二维数组DataFrame的创建 165
9.3.2 利用DataFrame显示不同类型证券信息 166
9.3.3 利用DataFrame显示某只股票的报价信息 168
9.3.4 股票数据信息的行选择和列选择 170
9.3.5 利用标签选择股票数据信息 173
9.3.6 利用条件选择股票数据信息 175
9.3.7 函数的运用 177
9.4 三维数组Panel 180
第10章 Python量化炒股常用的Matplotlib包 183
10.1 Matplotlib包的特点 184
10.2 figure()函数 184
10.2.1 figu re()函数的各参数意义 184
10.2.2 figure()函数的实例 185
10.3 plot()函数 186
10.3.1 plot()函数的各参数意义 186
10.3.2 利用plot()函数绘制图形 188
10.3.3 利用plot()函数显示股票的收盘价图形 189
10.3.4 利用dataframe的plot()函数显示股票的图形 189
10.4 subplot()函数 190
10.4.1 subplot()函数的各参数意义 191
10.4.2 利用subplot()函数绘制多个图形 191
10.4.3 利用subplot()函数绘制股票图形 192
10.5 add_axes()函数 193
10.5.1 add_axes()函数的应用 193
10.5.2 利用add_axes()函数绘制股票图形 194
10.6 legend()函数 195
10.6.1 利用legend()函数为绘制图形添加图题 196
10.6.2 利用legend()函数为股票图形添加图题 197
10.7 grid()函数 198
10.7.1 利用g rid()函数为绘制图形添加网格线 199
10.7.2 利用g rid()函数为绘制股票图形添加网格线 199
第11章 利用Python编写量化炒股策略 201
11.1 Python量化炒股策略的基本组成 202
11.1.1 初始化函数 203
11.1.2 开盘前运行函数 204
11.1.3 开盘时运行函数 205
11.1.4 收盘后运行函数 206
11.2 Python量化炒股策略的设置函数 206
11.2.1 设置基准函数 () 206
11.2.2 设置佣金 印花税函数 () 207
11.2.3 设置滑点函数 () 208
11.2.4 设置动态复权(真实价格)模式 209
11.2.5 设置是否开启盘口撮合模式 209
11.2.6 设置成交量比例 209
11.2.7 设置要操作的股票池函数() 210
11.3 Python量化炒股策略的下单函数 210
11.3.1 按股数下单函数 210
11.3.2 目标股数下单函数 211
11.3.3 按价值下单函数 211
11.3.4 目标价值下单函数 211
11.3.5 获取未完成订单函数 212
11.3.6 撤单函数 212
11.3.7 获取订单信息函数 212
11.4 Python量化炒股策略的常用对象 213
11.4.1 订单对象Order 213
11.4.2 全局对象g 214
11.4.3 一次交易对象Trade 215
11.4.4 分时图盘面对象 215
11.4.5 回测对象 216
11.4.6 持有标的信息对象 217
11.4.7 子账户信息对象 218
11.4.8 账户信息对象 218
11.4.9 股票的数据对象 219
11.5 Python量化炒股策略的日志log 220
11.5.1 设定log级别 220
11.5.2 log.info 220
11.6 Python量化炒股策略的定时函数 221
11.6.1 定时函数的定义及分类 221
11.6.2 定时函数各项参数的意义 221
11.6.3 定时函数的注意事项 222
11.6.4 定时函数的实例 223
第12章 Python量化炒股的获取数据函数 225
12.1 获取多只股票单个数据字段函数history() 226
12.1.1 各项参数的意义 226
12.1.2 利用函数history()显示单只股票的信息 228
12.1.3 利用函数history()显示多只股票的开盘价信息 229
12.2 获取一只股票多个数据字段函数attribute_history() 232
12.2.1 利用函数attribute_history ()显示股票的报价信息 232
12.2.2 利用函数attribute_history()显示股票满足条件的报价信息 234
12.3 查询单个交易日账务数据函数get_fundamentals() 236
12.3.1 各项参数的意义 236
12.3.2 query的基本查询方式 237
12.3.3 显示一只股票单个交易日的财务数据 237
12.3.4 显示多只股票单个交易日的财务数据 239
12.4 查询多个交易日账务数据函数get_fundamentals_continuously() 241
12.5 获取当前时间的股票数据函数get_current_data() 243
12.6 获取指数成分股代码函数get_index_stocks() 243
12.6.1 各项参数的意义 244
12.6.2 显示某指数的成分股代码及应用 245
12.7 获取指数成分股权重函数get_index_weights() 247
12.8 获取行业成分股代码函数get_industry_stocks() 248
12.8.1 各项参数的意义 248
12.8.2 显示某行业的成分股代码及应用 249
12.9 查询股票所属行业函数get_industry() 251
12.10 获取概念成分股代码函数get_concept_stocks() 253
12.10.1 各项参数的意义 253
12.10.2 显示某概念板块的成分股代码及应用 254
12.11 查询股票所属概念板块函数get_concept() 256
12.12 获取一只股票信息函数get_security_info() 257
12.13 获取龙虎榜数据函数get_billboard_list() 257
12.13.1 各项参数的意义 258
12.13.2 get_billboard_list()函数的应用实例 258
12.14 获取限售解禁数据函数get_locked_shares() 259
第13章 Python量化炒股的财务因子选股 261
13.1 初识财务因子选股 262
13.2 成长类因子选股 262
13.2.1 营业收入同比增长率选股 263
13.2.2 营业收入环比增长率 266
13.2.3 净利润同比增长率选股 267
13.2.4 净利润环比增长率选股 268
13.2.5 营业利润率选股 270
13.2.6 销售净利率选股 271
13.2.7 销售毛利率选股 273
13.3 规模类因子选股 274
13.3.1 总市值选股 274
13.3.2 流通市值选股 276
13.3.3 总股本选股 278
13.3.4 流通股本选股 279
13.4 价值类因子选股 280
13.4.1 市净率选股 281
13.4.2 市销率选股 281
13.4.3 市现率选股 283
13.4.4 动态市盈率选股 284
13.4.5 静态市盈率选股 285
13.5 质量类因子选股 287
13.5.1 净资产收益率(roe)选股 287
13.5.2 总资产净利率(roa)选股 288
13.6 财务因子量化选股的注意事项 290
第14章 Python量化炒股的数据信息获取 293
14.1 获取上市公司概况信息 294
14.1.1 获取上市公司员工情况信息 294
14.1.2 获取上市公司基本信息 297
14.1.3 获取上市公司状态变动信息 299
14.1.4 获取股票上市信息 301
14.1.5 获取股票简称变更情况信息 303
14.1.6 获取公司管理人员任职情况信息 304
14.2 获取上市公司股东和股本信息 305
14.2.1 获取上市公司的十大股东信息 305
14.2.2 获取上市公司的十大流通股东信息 308
14.2.3 获取股东股份质押信息 309
14.2.4 获取股东股份冻结信息 310
14.2.5 股东户数信息 312
14.2.6 大股东减持信息 313
14.2.7 上市公司股本变动信息 314
14.3 获取上市公司分红送股数据信息 315
14.4 获取沪深股市每日成交概况信息 317
第15章 Python量化择时的技术指标函数 319
15.1 量化择时概述 320
15.2 趋向指标函数 321
15.2.1 MACD指标函数 321
15.2.2 EMV指标函数 323
15.2.3 UOS指标函数 324
15.2.4 GDX指标函数 325
15.2.5 JS指标函数 327
15.2.6 MA指标函数 328
15.2.7 EXPMA指标函数 329
15.2.8 VMA指标函数 330
15.3 反趋向指标函数 331
15.3.1 KD指标函数 331
15.3.2 MFI指标函数 333
15.3.3 RSI指标函数 334
15.3.4 OSC指标函数 335
15.3.5 WR指标函数 336
15.3.6 CCI指标函数 337
15.4 压力支撑指标函数 338
15.4.1 BOLL指标函数 338
15.4.2 MIKE指标函数 339
15.4.3 XS指标函数 341
15.5 量价指标函数 343
15.5.1 OBV指标函数 343
15.5.2 VOL指标函数 344
15.5.3 MASS指标函数 345
15.5.4 VR指标函数 346
第16章 Python量化炒股的统计数据图 349
16.1 Seaborn包概述 350
16.2 单只股票的收益统计图 350
16.2.1 查看单只股票的收盘价信息 350
16.2.2 利用pct_change()函数计算收益率情况 351
16.2.3 利用dropna()函数处理空值 352
16.2.4 利用distplot()函数绘制收益统计图 353
16.2.5 显示宝钢股份(600019)近一年来的收益统计图 355
16.3 股票的相关性分析图 356
16.3.1 利用jointplot()函数绘制两只股票的相关性分析图 356
16.3.2 利用pairplot()函数绘制多只股票的相关性分析图 359
第17章 Python量化炒股策略的回测 365
17.1 量化炒股策略回测的流程 366
17.2 利用Python编写量化炒股策略并回测 367
17.2.1 量化炒股策略的编辑页面 367
17.2.2 量化炒股策略的初始化函数 370
17.2.3 量化炒股策略的单位时间调用函数 370
17.2.4 量化炒股策略的回测参数设置 371
17.2.5 量化炒股策略的回测详情 374
17.3 量化炒股策略的风险指标 377
17.3.1 阿尔法(Alpha) 377
17.3.2 贝塔(Beta) 378
17.3.3 夏普比率(Sharpe) 379
17.3.4 索提诺比率(Sortino) 379
17.3.5 信息比率(Information Ratio) 380
17.3.6 波动率(Volatility) 381
17.3.7 基准波动率(Benchmark Volatility) 382
17.3.8 最大回撤(Max Drawdown) 383
第18章 Python量化炒股策略的因子分析 385
18.1 初识因子分析 386
18.1.1 因子的类型 386
18.1.2 因子分析的作用 386
18.2 利用Python代码实现因子分析 386
18.2.1 因子分析中变量的含义 387
18.2.2 在因子分析中可以使用的基础因子 387
18.2.3 calc()方法的参数及返回值 389
18.3 新建因子并查看因子分析结果 389
18.3.1 新建因子 389
18.3.2 因子的收益分析 392
18.3.3 因子的IC分析 395
18.3.4 因子的换手分析 396
18.4 因子在研究和回测中的运用技巧 397
18.4.1 calc_facto rs()函数的语法格式 398
18.4.2 因子在研究和回测中的运用实例 398
18.5 基本面因子应用实例 399
第19章 Python量化炒股策略实战案例 403
19.1 均线量化炒股策略 404
19.1.1 均线量化炒股策略的初始化函数 404
19.1.2 均线量化炒股策略的单位时间调用函数 405
19.1.3 均线量化炒股策略的回测 405
19.2 多均线量化炒股策略 406
19.2.1 多均线量化炒股策略的初始化函数 407
19.2.2 多均线量化炒股策略的交易程序函数 407
19.2.3 多均线量化炒股策略的回测 408
19.3 随机指标量化炒股策略 409
19.3.1 随机指标量化炒股策略的初始化函数 410
19.3.2 随机指标量化炒股策略的开盘前运行函数 410
19.3.3 随机指标量化炒股策略的开盘时运行函数 411
19.3.4 随机指标量化炒股策略的收盘后运行函数 411
19.3.5 随机指标量化炒股策略的回测 412
19.4 布林通道线指标量化炒股策略 412
19.4.1 布林通道线指标量化炒股策略的初始化函数 413
19.4.2 布林通道线指标量化炒股策略的开盘前运行函数 413
19.4.3 布林通道线指标量化炒股策略的开盘时运行函数 414
19.4.4 布林通道线指标量化炒股策略的收盘后运行函数 415
19.4.5 布林通道线指标量化炒股策略的回测 415
19.5 多股票持仓均线量化炒股策略 416
19.5.1 多股票持仓均线量化炒股策略的初始化函数 416
19.5.2 多股票持仓均线量化炒股策略的单位时间调用函数 417
19.5.3 多股票持仓均线量化炒股策略的回测 418
19.6 白酒板块轮动量化炒股策略 418
19.6.1 白酒板块轮动量化炒股策略的初始化函数 419
19.6.2 白酒板块轮动量化炒股策略的选股函数 419
19.6.3 白酒板块轮动量化炒股策略的交易函数 420
19.6.4 白酒板块轮动量化炒股策略的回测 420
19.7 多个小市值股票量化炒股策略 421
19.7.1 多个小市值股票量化炒股策略的初始化函数 421
19.7.2 多个小市值股票量化炒股策略的选股函数 422
19.7.3 多个小市值股票量化炒股策略的过滤停牌股票函数 422
19.7.4 多个小市值股票量化炒股策略的交易函数 423
19.7.5 多个小市值股票量化炒股策略的回测 423
Python量化炒股入门与实战技巧pdf下载