从零开始学Python:大数据与量化交易

从零开始学Python:大数据与量化交易
作 者: 周峰 王可群
出版社: 清华大学出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  周峰 从事金融衍生品市场交易及管理近20年,有着丰富的经验和体会,对量化交易、期货、大宗商品、股市、国内外贵金属、外汇等主流交易方式有着深刻的了解,擅长量化交易、期货、股票、黄金、白银、外汇的培训指导,经常活跃在各大金融讲坛,深为投资者喜爱。曾在高校任讲师,讲课深入浅出,深受学生们的爱戴。可为个人投资者及机构提供分析、投资咨询,交易指导,理财培训等多方位的专业服务。王可群现任青岛慧谷大数据产业发展有限公司项目开发部经理,曾担任“饿了么”公司技术部主管,具有6年以上Python、PHP项目开发经验。精通JS、 Java、C、C#等编程语言,熟悉多种开源技术,喜欢get新技能,曾带领团队完成过多个中、小型项目开发,对数据安全、云计算等领域进行过系统学习和培训。

内容简介

《从零开始学Python 大数据与量化交易》首先讲解量化交易的基础知识,如量化交易的优势、应用、注意事项、历史、量化交易平台等;然后讲解量化交易开发语言Python,即讲解Python 语言的开发环境、基本语法及流程控制、特征数据类型、内置函数与自定义用户函数、面向对象编程;接着讲解大数据分析和可视化的3 个包,分别是Numpy 包、Pandas 包、Matplotlib 包;然后讲解量化交易策略的编写、获取数据函数、基本面量化选股、量化择时的技术指标函数、回测技巧、因子分析技巧;*后讲解Python 量化交易策略的实战案例。在讲解过程中既考虑读者的学习习惯,又通过具体实例剖析讲解Python 大数据与量化交易过程中的热点问题、关键问题及种种难题。《从零开始学Python 大数据与量化交易》适用于各种不同的投资者,如新老股民、中小散户、股票操盘手、基金操盘手和专业股票评论人士以及经济财经类专业的大学生,更适用于那些有志于在这个充满风险、充满寂寞的征程上默默前行的征战者阅读。

图书目录

目 录

第1 章 量化交易快速入门 1

1.1 初识量化交易 2

1.1.1 量化交易的定义 2

1.1.2 量化交易与算法交易 2

1.1.3 量化交易与黑匣子交易 3

1.1.4 量化交易与程序化交易 3

1.1.5 量化交易与技术分析 3

1.2 量化交易的优势 4

1.2.1 严格的纪律性 4

1.2.2 完备的系统性 4

1.2.3 妥善运用套利的思想 5

1.2.4 靠概率取胜 5

1.3 量化交易的应用 6

1.3.1 投资品种选择 6

1.3.2 投资时机选择 6

1.3.3 算法交易 7

1.3.4 各种套利交易 8

1.3.5 资产配置 9

1.4 量化交易与人工交易的对比 10

1.5 量化交易的注意事项 11

1.6 量化交易的发展过程 11

1.6.1 国外量化交易的发展过程 11

1.6.2 国内量化交易的发展过程 12

1.7 量化交易的平台 12

1.7.1 聚宽JoinQuant 量化交易平台的功能 12

1.7.2 账户注册、登录及策略创建 13

1.7.3 量化交易策略的选股 18

1.7.4 量化交易策略的买卖条件 24

1.7.5 量化交易策略的风险控制 27

1.7.6 量化交易策略的其他参数 28

1.7.7 编写Python 代码来创建量化交易策略 29

1.7.8 量化交易策略的回测详情 30

1.7.9 量化交易策略的模拟交易 32

1.8 量化交易的潜在风险及应对策略 38

第2 章 Python 量化交易的开发环境 39

2.1 初识Python 语言 40

2.1.1 Python 的历史由来 40

2.1.2 Python 的特点 40

2.1.3 Python 的应用 41

2.2 Python 开发环境及配置 42

2.2.1 Python 的下载 42

2.2.2 Python 的安装 43

2.2.3 Python 的环境变量配置 44

2.3 Python 程序的编写 48

2.3.1 利用系统自带的开发软件IDEL直接编写程序并运行 48

2.3.2 创建Python 文件并运行 50

2.4 利用量化交易平台编写Python程序 52

2.4.1 初识IPython Notebook研究平台 52

2.4.2 利用Python Notebook 编写Python 程序 56

第3 章 Python 的基本语法及流程控制 59

3.1 Python 的基本数据类型 60

3.1.1 数值类型 60

3.1.2 字符串类型 62

3.2 变量及赋值 66

3.2.1 变量命名规则 66

3.2.2 变量的赋值 67

3.3 运算符 68

3.3.1 算术运算符 68

3.3.2 赋值运算符 70

3.3.3 位运算符 71

3.4 选择结构 72

3.4.1 关系运算符 73

3.4.2 逻辑运算符 74

3.4.3 if 语句 75

3.4.4 嵌套 if 语句 77

3.5 循环结构 78

3.5.1 while 循环 79

3.5.2 while 循环使用else 语句 79

3.5.3 无限循环 80

3.5.4 for 循环 81

3.5.5 在for 循环中使用range()函数 82

3.6 其他语句 83

3.6.1 break 语句 83

3.6.2 continue 语句 84

3.6.3 pass 语句 85

3.7 Python 的代码格式 86

3.7.1 代码缩进 86

3.7.2 代码注释 86

3.7.3 空行 87

3.7.4 同一行显示多条语句 87

第4 章 Python 的特征数据类型 89

4.1 列表 90

4.1.1 列表的创建 90

4.1.2 3 种方法访问列表中的值 90

4.1.3 两种方法更新列表中的值 91

4.1.4 del 语句删除列表中的值 92

4.1.5 列表的4 个函数 93

4.1.6 列表的方法 94

4.2 元组 95

4.2.1 元组的创建 96

4.2.2 3 种方法访问元组中的值 96

4.2.3 元组的连接 97

4.2.4 整个元组的删除 99

4.2.5 元组的4 个函数 100

4.3 字典 101

4.3.1 字典的创建 101

4.3.2 访问字典中的值和键 101

4.3.3 字典的修改 103

4.3.4 字典中的3 个函数 104

4.4 集合 105

4.4.1 集合的创建 105

4.4.2 集合的两个基本功能 105

4.4.3 集合的运算符 106

4.4.4 集合的方法 108

第5 章 Python 的函数及应用技巧 111

5.1 初识函数 112

5.2 内置函数 112

5.2.1 数学函数 112

5.2.2 随机数函数 113

5.2.3 三角函数 115

5.2.4 字符串函数 117

5.3 用户自定义函数 120

5.3.1 函数的定义 120

5.3.2 调用自定义函数 121

5.3.3 函数的参数传递 122

5.3.4 函数的参数类型 125

5.3.5 匿名函数 128

第6 章 Python 的面向对象编程基础 129

6.1 面向对象 130

6.1.1 面向对象概念 130

6.1.2 类定义与类对象 131

6.1.3 类的继承 133

6.2 模块 136

6.2.1 自定义模块和调用 136

6.2.2 import 语句 138

6.2.3 标准模块 139

6.3 包 140

6.4 变量作用域及类型 141

6.4.1 变量作用域 142

6.4.2 全局变量和局部变量 143

6.4.3 global 和nonlocal 关键字 144

第7 章 Python 大数据分析的Numpy 包 147

7.1 初识Numpy 包 148

7.2 ndarray 数组基础 148

7.2.1 创建Numpy 数组 148

7.2.2 Numpy 特殊数组 152

7.2.3 Numpy 序列数组 155

7.2.4 Numpy 数组索引 156

7.2.5 Numpy 数组运算 157

7.2.6 Numpy 数组复制 158

7.3 Numpy 的矩阵 159

7.4 Numpy 的线性代数 160

7.4.1 两个数组的点积 160

7.4.2 两个向量的点积 161

7.4.3 一维数组的向量内积 162

7.4.4 矩阵的行列式 162

7.4.5 矩阵的逆 164

7.5 Numpy 的文件操作 164

第8 章 Python 大数据分析的Pandas 包 169

8.1 Pandas 的数据结构 170

8.2 一维数组系列 170

8.2.1 创建一个空的系列 170

8.2.2 从ndarray 创建一个系列 171

8.2.3 从字典创建系列 172

8.2.4 从有位置的系列中访问数据 173

8.2.5 使用标签检索数据 174

8.3 二维数组DataFrame 174

8.3.1 创建DataFrame 174

8.3.2 数据的查看 175

8.3.3 数据的选择 179

8.3.4 数据的处理 185

8.4 三维数组Panel 187

第9 章 Python 大数据可视化的Matplotlib 包 189

9.1 Matplotlib 包的优点 190

9.2 figure()函数的应用 190

9.2.1 figure()函数的各参数意义 190

9.2.2 figure()函数的示例 190

9.3 plot()函数的应用 192

9.3.1 plot()函数的各参数意义 192

9.3.2 plot()函数的实例 194

9.4 subplot()函数的应用 195

9.4.1 subplot()的各参数意义 196

9.4.2 subplot()的示例 196

9.5 add_axes 方法的应用 197

9.6 legend()函数的应用 198

9.7 设置字体格式 200

9.8 设置线条的宽度和颜色 201

9.9 坐标轴网格 202

9.10 绘制柱状图 203

9.11 绘制色图和等高线图 204

9.12 绘制立体三维图形 206

第10 章 Python 量化交易策略的编写 209

10.1 股票量化交易策略的组成 210

10.1.1 初始化函数 211

10.1.2 开盘前运行函数 212

10.1.3 开盘时运行函数 212

10.1.4 收盘后运行函数 213

10.2 设置函数 213

10.2.1 设置基准函数 214

10.2.2 设置佣金/印花税函数 214

10.2.3 设置滑点函数 215

10.2.4 设置动态复权(真实价格)模式函数 216

10.2.5 设置成交量比例函数 216

10.2.6 设置是否开启盘口撮合模式函数 217

10.2.7 设置要操作的股票池函数 217

10.3 定时函数 217

10.3.1 定时函数的定义及分类217

10.3.2 定时函数各项参数的意义 218

10.3.3 定时函数的注意事项 219

10.3.4 定时函数的实例 220

10.4 下单函数 220

10.4.1 按股数下单函数 220

10.4.2 目标股数下单函数 221

10.4.3 按价值下单函数 221

10.4.4 目标价值下单函数 222

10.4.5 撤单函数 222

10.4.6 获取未完成订单函数 222

10.4.7 获取订单信息函数 223

10.4.8 获取成交信息函数 223

10.5 日志log 224

10.5.1 设定log 的级别 224

10.5.2 log.info 225

10.6 常用对象 225

10.6.1 Order 对象 225

10.6.2 全局对象g 225

10.6.3 Trade 对象 226

10.6.4 tick 对象 226

10.6.5 Context 对象 227

10.6.6 Position 对象 228

10.6.7 SubPortfolio 对象 229

10.6.8 Portfolio 对象 229

10.6.9 SecurityUnitData 对象 230

第11 章 Python 量化交易策略的获取数据函数 231

11.1 获取股票数据的history()函数 232

11.1.1 各项参数的意义 232

11.1.2 history()函数的应用实例 233

11.2 获取一只股票数据的attribute_

history()函数 236

11.3 查询一个交易日股票财务数据的get_fundamentals()函数 237

11.3.1 各项参数的意义 237

11.3.2 get_fundamentals ()函数的应用实例 238

11.4 查询股票财务数据的get_fundamentals_continuously()函数 242

11.5 获取股票特别数据的get_current_data()函数 243

11.6 获取指数成分股代码的get_index_stocks()函数 244

11.6.1 各项参数的意义 244

11.6.2 get_index_stocks()函数的应用示例 245

11.7 获取行业成分股代码的get_industry_stocks()函数 246

11.8 获取概念成本股代码的get_concept_stocks()函数 247

11.9 获取所有数据信息的get_all_securities()函数 249

11.9.1 各项参数的意义 249

11.9.2 get_all_securities()函数的应用实例 250

11.10 获取一只股票信息的get_security_info()函数 252

11.11 获取龙虎榜数据的get_billboard_list()函数 252

11.11.1 各项参数的意义 252

11.11.2 get_billboard_list()函数的应用实例 253

11.12 获取限售解禁数据的get_locked_shares()函数 254

第12 章 Python 基本面量化选股 255

12.1 初识量化选股 256

12.2 成长类因子选股 256

12.2.1 营业收入同比增长率选股 256

12.2.2 营业收入环比增长率选股 258

12.2.3 净利润同比增长率选股 259

12.2.4 净利润环比增长率选股 259

12.2.5 营业利润率选股 260

12.2.6 销售净利率选股 261

12.2.7 销售毛利率选股 262

12.3 规模类因子选股 263

12.3.1 总市值选股 263

12.3.2 流通市值选股 264

12.3.3 总股本选股 265

12.3.4 流通股本选股 266

12.4 价值类因子选股 267

12.4.1 市净率选股 267

12.4.2 市销率选股 268

12.4.3 市现率选股 269

12.4.4 动态市盈率选股 270

12.4.5 静态市盈率选股 270

12.5 质量类因子选股 271

12.5.1 净资产收益率选股 271

12.5.2 总资产净利率选股 272

12.6 基本面多因子量化选股的注意事项 273

第13 章 Python 量化择时的技术指标函数 275

13.1 初识量化择时 276

13.2 趋向指标函数 276

13.2.1 MACD 指标函数 277

13.2.2 EMV 指标函数 278

13.2.3 UOS 指标函数 279

13.2.4 GDX 指标函数 280

13.2.5 DMA 指标函数 281

13.2.6 JS 指标函数 283

13.2.7 MA 指标函数 284

13.2.8 EXPMA 指标函数 285

13.2.9 VMA 指标函数 286

13.3 反趋向指标函数 287

13.3.1 KD 指标函数 287

13.3.2 MFI 指标函数 288

13.3.3 RSI 指标函数 289

13.3.4 OSC 指标函数 290

13.3.5 WR 指标函数 291

13.3.6 CCI 指标函数 293

13.4 压力支撑指标函数 293

13.4.1 BOLL 指标函数 294

13.4.2 MIKE 指标函数 295

13.4.3 XS 指标函数 296

13.5 量价指标函数 297

13.5.1 OBV 指标函数 297

13.5.2 VOL 指标函数 298

13.5.3 VR 指标函数 299

13.5.4 MASS 指标函数 300

第14 章 Python 量化交易策略的回测技巧 303

14.1 量化交易策略回测的流程 304

14.2 利用Python 编写MACD 指标量化策略 304

14.2.1 量化交易策略的编辑页面 304

14.2.2 编写初始化函数 307

14.2.3 编写单位时间调用的函数 307

14.3 设置MACD 指标量化策略的回测参数 308

14.4 MACD 指标量化策略的回测详情 310

14.5 MACD 指标量化策略的风险指标 313

14.5.1 Alpha(阿尔法) 314

14.5.2 Beta(贝塔) 314

14.5.3 Sharpe(夏普比率) 315

14.5.4 Sortino(索提诺比率) 316

14.5.5 Information Ratio(信息比率) 317

14.5.6 Volatility(策略波动率) 318

14.5.7 Benchmark Volatility(基准波动率) 318

14.5.8 Max Drawdown(回撤) 319

第15 章 Python 量化交易策略的因子分析技巧 321

15.1 因子分析概述 322

15.1.1 因子的类型 322

15.1.2 因子分析的作用 322

15.2 因子分析的实现代码 322

15.2.1 因子分析中变量的含义 322

15.2.2 因子分析中可以使用的基础因子 323

15.2.3 calc 的参数及返回值 324

15.3 因子分析的结果 324

15.3.1 新建因子 325

15.3.2 收益分析 327

15.3.3 IC 分析 330

15.3.4 换手分析 331

15.4 因子在研究和回测中的使用 332

15.5 基本面因子应用实例 334

第16 章 Python 量化交易策略的实战案例 337

16.1 MA 均线量化交易策略实战案例 338

16.1.1 编写初始化函数 338

16.1.2 编写单位时间调用的函数 339

16.1.3 MA 均线量化交易策略的回测 340

16.2 多均线量化交易策略实战案例 341

16.2.1 编写初始化函数 341

16.2.2 编写交易程序函数 342

16.2.3 多均线量化交易策略的回测 343

16.3 能量型指标量化交易策略实战案例 344

16.3.1 编写初始化函数 344

16.3.2 编写单位时间调用的函数 345

16.3.3 能量型指标量化交易策略的回测 346

16.4 KD 指标量化交易策略实战案例 347

16.4.1 编写初始化函数 347

16.4.2 编写开盘前运行函数 348

16.4.3 编写开盘时运行函数 348

16.4.4 编写收盘后运行函数 349

16.4.5 KD 指标量化交易策略的回测 349

16.5 BOLL 指标量化交易策略实战案例 350

16.5.1 编写初始化函数 350

16.5.2 编写开盘前运行函数 351

16.5.3 编写开盘时运行函数 351

16.5.4 编写收盘后运行函数 352

16.5.5 BOLL 指标量化交易策略的回测 352

16.6 多股票持仓量化交易策略实战案例 353

16.6.1 编写初始化函数 353

16.6.2 编写单位时间调用的函数 354

16.6.3 多股票持仓量化交易策略的回测 354

16.7 医药股轮动量化交易策略实战案例 355

16.7.1 编写初始化函数 355

16.7.2 编写选股函数 356

16.7.3 编写交易函数 356

16.7.4 医药股轮动量化交易策略的回测 357

16.8 中市值股票量化交易策略实战案例 358

16.8.1 编写初始化函数 358

16.8.2 编写选股函数 358

16.8.3 编写过滤停牌股票函数 359

16.8.4 编写交易函数 359

16.8.5 中市值股票量化交易策略的回测 360

16.9 低估价值股量化交易策略实战案例 360

16.9.1 编写初始化函数 361

16.9.2 编写选股函数 361

16.9.3 编写交易函数 362

16.9.4 低估价值股量化交易策略的回测 363