图书目录

目 录

第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