《Python算法交易实战》是由人民邮电出版社出版的一本关于Python算法方面的书籍,作者是塞巴斯蒂安·多纳迪奥,主要介绍了关于Python、Python算法方面的知识内容,目前在Python算法类书籍综合评分为:7.4分。
书籍介绍
内容简介
本书由浅入深地讲解了算法交易的相关知识,先从基础知识和环境配置讲起,其次讲解如何通过编程完成交易信息的生成与交易策略的实施,随后介绍众多算法交易策略,以及如何管理算法策略中的风险,然后带领读者用Python建立自己交易系统,并迎接算法交易的深层挑战。
全书共分为10章,包括算法交易的基础原理、通过技术分析解读市场、通过基础机器学习预测市场、人类直觉驱动的交易策略、复杂的算法策略、管理算法策略中的风险、用Python构建交易系统、连接到交易所、在Python中创建回测器、适应市场参与者和环境。
目录
- 第 1 部分 基础知识和环境配置
- 第 1 章 算法交易的基础原理 2
- 1.1 为什么要交易 2
- 1.2 有关现代交易的基本概念 3
- 1.2.1 市场板块 3
- 1.2.2 资产类别 4
- 1.2.3 现代交易市场的基本情况 5
- 1.3 了解算法交易概念 7
- 1.3.1 交换订单簿 7
- 1.3.2 交换匹配算法 7
- 1.3.3 限价订单簿 9
- 1.3.4 交换市场数据协议 9
- 1.3.5 市场数据提供处理程序 9
- 1.3.6 订单类型 10
- 1.3.7 交换订单输入协议 10
- 1.3.8 订单输入网关 10
- 1.3.9 头寸和损益管理 11
- 1.4 从直觉到算法交易 11
- 1.4.1 为什么需要自动化交易 12
- 1.4.2 算法交易的演变—从基于规则的交易到全自动算法交易 12
- 1.5 算法交易系统的组成部分 14
- 1.5.1 市场数据订阅 15
- 1.5.2 限价订单簿 15
- 1.5.3 信号 15
- 1.5.4 信号聚合器 16
- 1.5.5 执行逻辑 16
- 1.5.6 头寸和损益管理 17
- 1.5.7 风险管理 17
- 1.5.8 回测 17
- 1.6 为什么选择 Python 18
- 1.6.1 选择 IDE—PyCharm 或 Jupyter Notebook 19
- 1.6.2 第 一个算法交易 20
- 1.6.3 设置你的工作区 20
- 1.6.4 PyCharm 20
- 1.6.5 获取数据 21
- 1.6.6 准备数据——信号 22
- 1.6.7 信号可视化 24
- 1.6.8 回测 25
- 1.7 总结 27
- 第 2 部分 交易信息生成与交易策略
- 第 2 章 通过技术分析解读市场 30
- 2.1 基于趋势和动量指标设计交易策略 31
- 2.2 基于基本技术分析创建交易信号 37
- 2.2.1 简单移动平均线 37
- 2.2.2 指数移动平均线 39
- 2.2.3 绝对价格振荡器 42
- 2.2.4 异同移动平均线 44
- 2.2.5 布林带 47
- 2.2.6 相对强弱指标 49
- 2.2.7 标准偏差 53
- 2.2.8 动量 55
- 2.3 在交易工具中贯彻高级概念,如季节性 57
- 2.4 总结 63
- 第 3 章 通过基础机器学习预测市场 65
- 3.1 了解术语和符号 66
- 3.2 使用线性回归方法创建预测模型 70
- 3.2.1 普通最小二乘法 70
- 3.2.2 正规化和收缩——LASSO 和 Ridge 回归 75
- 3.2.3 决策树回归 77
- 3.3 使用线性分类方法创建预测模型 77
- 3.3.1 K 近邻 77
- 3.3.2 支持向量机 79
- 3.3.3 逻辑回归 81
- 3.4 总结 81
- 第 3 部分 算法交易策略
- 第 4 章 人类直觉驱动的经典交易策略 84
- 4.1 创建基于动量和趋势跟踪的交易策略 84
- 4.2 创建适用于具有回归行为的交易策略 91
- 4.3 创建在线性相关的交易工具组上操作的交易策略 92
- 4.4 总结 107
- 第 5 章 复杂的算法策略 108
- 5.1 创建根据交易工具的波动性进行调整的交易策略 108
- 5.1.1 调整技术指标中交易工具的波动率 109
- 5.1.2 调整交易策略中交易工具的波动率 109
- 5.1.3 波动率调整后的均值回归交易策略 110
- 5.2 制定经济事件的交易策略 127
- 5.2.1 经济发布 127
- 5.2.2 经济发布格式 128
- 5.2.3 电子化经济发布服务 129
- 5.2.4 交易中的经济发布 129
- 5.3 实施基本的统计套利交易策略 131
- 5.3.1 StatArb 的基础 131
- 5.3.2 StatArb 中的领先滞后 132
- 5.3.3 调整投资组合的构成和关系 132
- 5.3.4 StatArb 的基础设施费用 133
- 5.3.5 Python 中的 StatArb 133
- 5.4 总结 148
- 第 6 章 管理算法策略中的风险 149
- 6.1 区分风险类型和风险因素 149
- 6.1.1 交易损失的风险 150
- 6.1.2 违反法规的风险 150
- 6.1.3 欺骗 151
- 6.1.4 报价填充 151
- 6.1.5 操纵收盘价 152
- 6.1.6 风险来源 152
- 6.1.7 量化风险 154
- 6.2 区分风险措施 155
- 6.2.1 止损 156
- 6.2.2 最大跌幅 158
- 6.2.3 头寸限制 160
- 6.2.4 持仓时间 161
- 6.2.5 PnL 的差异 162
- 6.2.6 夏普比率 163
- 6.2.7 每周期最大执行量 165
- 6.2.8 最大交易规模 167
- 6.2.9 数量限制 167
- 6.3 制定风险管理算法 168
- 6.4 总结 180
- 第 4 部分 建立交易系统
- 第 7 章 用 Python 构建交易系统 182
- 7.1 了解交易系统 182
- 7.1.1 网关 183
- 7.1.2 订单簿管理 185
- 7.1.3 策略 186
- 7.1.4 订单管理系统 187
- 7.1.5 关键组件 188
- 7.1.6 非关键组件 188
- 7.2 构建交易系统 190
- 7.2.1 流动性提供者类 191
- 7.2.2 策略类 193
- 7.2.3 订单管理器类 198
- 7.2.4 市场模拟器类 202
- 7.2.5 测试交易模拟类 205
- 7.3 设计限价订单簿 207
- 7.4 总结 214
- 第 8 章 连接到交易所 215
- 8.1 使交易系统可与交易所进行交易 215
- 8.2 审查通信 API 217
- 8.2.1 网络基础知识 217
- 8.2.2 交易协议 218
- 8.2.3 FIX 协议 219
- 8.3 接收价格更新 221
- 8.4 发送订单和接收市场响应 226
- 8.4.1 接收器代码示例 228
- 8.4.2 其他交易 API 232
- 8.5 总结 233
- 第 9 章 在 Python 中创建回测器 234
- 9.1 学习如何构建回测器 235
- 9.1.1 样本内数据与样本外数据的比较 235
- 9.1.2 模拟交易 236
- 9.1.3 单纯的数据存储 236
- 9.1.4 HDF5 文件 236
- 9.1.5 数据库 238
- 9.2 学习如何选择正确的假设 241
- 9.2.1 for 循环回测系统 243
- 9.2.2 事件驱动的回测系统 244
- 9.3 评估时间价值 246
- 9.4 回测双移动平均线交易策略 250
- 9.4.1 for 循环回测器 250
- 9.4.2 基于事件的回测器 253
- 9.5 总结 260
- 第 5 部分 算法交易的挑战
- 第 10 章 适应市场参与者和环境 262
- 10.1 回测器与实际市场的策略表现 263
- 10.1.1 回测器失调的影响 264
- 10.1.2 仿真失调的原因 266
- 10.1.3 根据实时交易调整回测和策略 268
- 10.2 算法交易的持续赢利能力 272
- 10.2.1 算法交易策略中的利润衰减 272
- 10.2.2 适应市场条件和不断变化的市场参与者 276
- 10.3 总结 286
- 后记 287