本教程介绍使用Python进行数据分析和金融应用开发的基础知识。课程从介绍简单的金融应用开始,带领学员回顾Python的基础知识,并逐步学习如何将Python应用到金融分析编程中。课程覆盖了Python的基本数据结构、输入输出、效率分析、数学库、随机分析库、统计分析库等。接着课程以专题的形式介绍了Python与Excel的结合,学习如何使用Python的相关库生成Excel可调用的函数;Python与Hadoop和MongoDB结合进行大数据分析的基础知识。最后课程介绍了Python的面向对象编程并介绍了两个案例:使用Python实现金融衍生品分析库以及使用Python实现事件驱动的量化投资系统,使学员在实战的环境下理解Python在金融应用开发中的具体应用方式,训练学员独立开发Python模块的能力。
第一讲、Python与金融应用概述
本讲主要介绍Python的基本特性,安装本课程所需要的Python环境,概述Python在金融数据分析中应用领域。本讲将使用一个简单的趋势投资的例子,讲解为什么使用Python进行金融数据分析和量化投资是非常方便的。
第二讲、Python的基本数据类型与数据结构
本讲介绍Python的基本数据类型与数据结构,包括基础Python和NumPy库提供的数据结构。
1、基本数据类型(整型、浮点型、字符型)
2、基本数据结构(元组、控制结构、函数编程、列表、字典、集合)
3、NumPy数据结构(使用Python列表实现的数组、常规NumPy数组、结构数组、内存分配)
第三讲、Python数据可视化
本讲介绍Python的matplotlib库提供的数据可视化技术,虽然Python还有很多其他的数据可视化方式,但是matplotlib提供了一种基准实现方式。
1、二维绘图(一维数据集、二维数据集,其他绘图模式,金融绘图)
2、3D绘图
第四讲、金融时间序列分析
在金融分析中常见的一种数据类型是金融时间序列数据,本章主要介绍Python的Pandas库对金融时间序列类型数据结构的实现——DataFrame和Series,以及如何运用这些工具进行基本的金融时间序列分析
1、Pandas基础(DataFrame类,基本分析技术,Series类,GroupBy操作)
2、金融数据
3、数据回归分析
4、高频金融数据
第五讲、输入输出操作
本讲介绍Python提供的基本输入输出操作,以及如何在金融数据分析与投资中有效的进行使用。
1、Python的基本I/O操作(将对象写入硬盘,读写文本文件、SQL数据库、读写NumPy数组)
2、使用Pandas的i/O操作(基本操作,SQL数据库,CSV文件、EXCEL文件)
3、使用PyTables进行快速I/O (使用Table,使用压缩的Table,数组操作,内存外运算)
第六讲、提升Python效率
本讲介绍Python中提供的提升计算效率的一些工具以及它们在金融数据分析与投资中的基本应用。
1、Python运行效率分析
内存分配与运行效率
2、并行计算(Monte Carlo算法、串行计算、并行计算)
3、动态编译(介绍例子、二叉树期权定价)
4、使用Cython静态编译
5、基于GPU生成随机数
第七讲、数学工具
本讲介绍Python提供的用于金融数据分析的数学方法与工具及其背景知识与应用方式。
1、近似(回归、插值)
2、凸优化(全局最优化、局部最优化、约束最优化)
3、积分(数值积分、模拟积分)
4、符号计算(基础、方程、积分、微分)
第八讲、随机分析
对不确定性的刻画与研究是金融研究与分析的重要方面,本讲介绍随机分析的一些知识,在金融数据分析与投资中的应用与Python实现。
1、随机数
2、模拟(随机变量、随机过程)
3、方差缩小技术
4、估值(欧式期权、美式期权)
5、风险测度指标(在险价值、信用风险)
第九讲、统计分析
统计分析是金融数据分析的核心,本讲介绍常用的统计分析方法、金融应用及其Python实现。
1、正态性检验
2、资产组合优化
3、主成分分析应用
4、贝叶斯回归分析
第十讲、数值分析技术
对于一些非线性、没有显式解的金融和数据分析问题,需要使用数值分析的技术,本讲介绍这些技术的基础及应用,以及Python的实现。
1、求解线性方程(LU分解、Cholesky分解、QR分解、Jacobi方法、Gauss-Seidel方法)
2、金融中的非线性模型(隐含波动率、Markov regime-switching模型、门限自回归模型、平稳转换模型)
3、求根方法
第十一讲、使用Python操作Excel
微软的Excel是常用的办公软件,是数据分析和应用的重要支撑。Python提供了丰富的与Excel交互的接口,本讲介绍这些接口并举例。
1、基本的电子表格交互
2、Python中的Excel脚本
第十二讲、Python面向对象编程与图形用户界面
本讲介绍Python面向对象编程技术,这是后续章节,特别是量化投资一章的基础,除此之外,本讲还介绍了Python图形用户界面编程的基本方法。
1、面向对象
2、图形用户界面
第十三讲、金融中的大数据技术概述
本讲介绍大数据技术在金融中的应用以及使用Python的基本实现。
1、Hadoop概述
2、使用Hadoop实现字符统计
3、Hadoop金融应用举例
4、NoSQL介绍
第十四讲、案例1:使用Python构建期权分析系统
本案例使用之前各讲介绍的Python金融应用相关知识,构建相对完整的期权分析系统,帮助学员掌握金融系统开发的要点以及Python整合应用的方式,与之前介绍相比,在案例分析中更多的使用面向对象方法。
1、估值框架(资本资产定价原理,风险中性定价,市场环境等介绍)
2、金融模型的模拟(随机数生成模块,泛型模拟类,几何布朗运动,带跳跃的扩散过程模拟模块,平方根扩散过程模拟模块)
3、衍生品估值模块(泛型估值类、欧式执行类、美式执行类)
4、衍生品分析库应用——波动率期权定价
第十五讲、案例2:使用Python构建简单的算法交易系统
算法与程序化交易是大数据时代计算机技术在金融领域应用的最重要方面之一。本讲介绍这方面的Python实现,包括基本交易、交易策略与回测等。
1、算法交易概述与框架
2、实现事件驱动交易引擎(事件驱动软件,事件类,数据处理类,策略类,投资组合类,执行处理类和回测类的基本编制,事件驱动执行)
3、交易策略实现(移动平均跨越策略,S&P500预测交易策略,均值回归股票配对交易策略)
4、策略优化(参数优化,模型选择,优化策略)