〖课程介绍〗
课程概述:- }' B* M* f, c( r. q+ d# p
近年来,金融领域的量化分析越来越受到理论界与实务界的重视,量化分析的技术也取得了较大的进展,成为备受关注的一个热点领域。所谓金融量化,就是将金融分析理论与计算机编程技术相结合,更为有效的利用现代计算技术实现准确的金融资产定价以及交易机会的发现。量化分析目前已经涉及到金融领域的方方面面,包括基础和衍生金融资产定价、风险管理、量化投资等。随着大数据技术的发展,量化分析还逐步与大数据结合在一起,对海量金融数据实现有效和快速的运算与处理。4 e1 V2 I6 |( d0 e6 s9 {
在量化金融的时代,选用一种合适的编程语言对于金融模型的实现是至关重要的。在这方面,Python语言体现出了不一般的优势,特别是它拥有大量的金融计算库,并且可以提供与C++,java等语言的接口以实现高效率的分析,成为金融领域快速开发和应用的一种关键语言,由于它是开源的,降低了金融计算的成本,而且还通过广泛的社交网络提供大量的应用实例,极大的缩短了金融量化分析的学习路径。
本课程在量化分析与Python语言快速发展的背景下介绍二者之间的关联,使学员能够快速掌握如何利用Python语言进行金融数据量化分析的基本方法。" h3 S8 K2 g1 R- `7 L& _
3 T: n. m' ]- l' w0 b1 j0 j
课程研发环境:
项目使用Python 2.7环境,因为Python所包含的用于数据分析和金融应用的相关库众多,所以在课程与项目中使用Anoconda
集成环境。& i$ s% Y0 t' [" ~6 F
开发工具:Spyder,IPython,Cloudera(Hadoop应用平台)
数据库工具:SQLite(Anaconda内置),MongoDB(大数据应用一章使用),DTN IQFEED(试用账号,用于量化交易中高频. N; j" N: H% ^0 Z* X9 T, L. a. H
数据的下载)
所有使用的开发工具与环境、库等都是开源的,可以免费从互联网获取和下载。
- T# G1 a& N/ \4 e
内容简介:
本教程介绍使用Python进行数据分析和金融应用开发的基础知识。课程从介绍简单的金融应用开始,带领学员回顾Python的基础知识,并逐步学习如何将Python应用到金融分析编程中。课程覆盖了Python的基本数据结构、输入输出、效率分析、数学库、随机分析库、统计分析库等。接着课程以专题的形式介绍了Python与Excel的结合,学习如何使用Python的相关库生成Excel可调用的函数;Python与Hadoop和MongoDB结合进行大数据分析的基础知识。最后课程介绍了Python的面向对象编程并介绍了两个案例:使用Python实现金融衍生品分析库以及使用Python实现事件驱动的量化投资系统,使学员在实战的环境下理解Python在金融应用开发中的具体应用方式,训练学员独立开发Python模块的能力。 u/ j* k- u9 V/ y9 e' t" d
- g0 @4 n2 j e/ \
〖课程目录〗:% u+ D6 I Z+ M" M# M2 o f7 X' O
第一讲、Python与金融应用概述0 \! L1 a* F$ L9 ]0 W3 n4 Y0 K
本讲主要介绍Python的基本特性,安装本课程所需要的Python环境,概述Python在金融数据分析中应用领域。本讲将使用一个简单的趋势投资的例子,讲解为什么使用Python进行金融数据分析和量化投资是非常方便的。
第二讲、Python的基本数据类型与数据结构. q$ N2 I; p; ]0 @
本讲介绍Python的基本数据类型与数据结构,包括基础Python和NumPy库提供的数据结构。( }/ I( L8 o+ r! H8 v
1、基本数据类型(整型、浮点型、字符型)
2、基本数据结构(元组、控制结构、函数编程、列表、字典、集合)
3、NumPy数据结构(使用Python列表实现的数组、常规NumPy数组、结构数组、内存分配)- F6 r/ d1 L2 K2 l/ F& Z
第三讲、Python数据可视化; |6 Z% h, D7 u% R$ s" f
本讲介绍Python的matplotlib库提供的数据可视化技术,虽然Python还有很多其他的数据可视化方式,但是matplotlib提供了一种基准实现方式。) W2 Z5 w# B! S9 M7 S0 Y
1、二维绘图(一维数据集、二维数据集,其他绘图模式,金融绘图)
2、3D绘图 h K( C) ~5 T9 S+ t6 `2 O/ g
" d T; t7 K1 e% @
第四讲、金融时间序列分析2 X9 v& c7 G( |! K' T) M
在金融分析中常见的一种数据类型是金融时间序列数据,本章主要介绍Python的Pandas库对金融时间序列类型数据结构的实现——DataFrame和Series,以及如何运用这些工具进行基本的金融时间序列分析0 x- x8 a# }1 w+ f. Q* z
1、Pandas基础(DataFrame类,基本分析技术,Series类,GroupBy操作)
2、金融数据
3、数据回归分析
4、高频金融数据$ p0 M4 A1 S( W8 n7 I! j" ?
3 y& U' [3 R+ c" ~; s) {) ~, ?
第五讲、输入输出操作9 L) i" |& T( ~, E' Z
本讲介绍Python提供的基本输入输出操作,以及如何在金融数据分析与投资中有效的进行使用。/ z7 a8 c, p7 v$ ]8 E2 P+ F: _4 ^
1、Python的基本I/O操作(将对象写入硬盘,读写文本文件、SQL数据库、读写NumPy数组)1 `; ]( z6 X4 n' ~: u# V
2、使用Pandas的i/O操作(基本操作,SQL数据库,CSV文件、EXCEL文件)/ v7 R; T/ J7 E) g5 a" E1 ?$ M
3、使用PyTables进行快速I/O (使用Table,使用压缩的Table,数组操作,内存外运算) . ]& Y6 o( h. B) Y4 C" t
第六讲、提升Python效率
本讲介绍Python中提供的提升计算效率的一些工具以及它们在金融数据分析与投资中的基本应用。
1、Python运行效率分析. x, i( R% M. w9 y
内存分配与运行效率
2、并行计算(Monte Carlo算法、串行计算、并行计算)% t3 m- ^: ^8 K- g! l
3、动态编译(介绍例子、二叉树期权定价), p& Q# M! o* p$ f9 ^; h- _
4、使用Cython静态编译2 b! }# h4 u# c/ z' V0 N
5、基于GPU生成随机数( z+ g( F# J3 l0 n9 p6 [
( }% _* j: _, S' j1 t1 _
第七讲、数学工具
本讲介绍Python提供的用于金融数据分析的数学方法与工具及其背景知识与应用方式。1 D& | B2 t- X$ L% a) q' K( C
1、近似(回归、插值)
2、凸优化(全局最优化、局部最优化、约束最优化)0 ?) C3 U% u" T& f1 X
3、积分(数值积分、模拟积分)
4、符号计算(基础、方程、积分、微分)$ \( u1 D2 P. t1 p
第八讲、随机分析& k3 {' k1 V3 p7 G- N/ C9 B
对不确定性的刻画与研究是金融研究与分析的重要方面,本讲介绍随机分析的一些知识,在金融数据分析与投资中的应用与Python实现。
1、随机数
2、模拟(随机变量、随机过程)
3、方差缩小技术# v% Q/ r" w8 R0 d& e* l5 g
4、估值(欧式期权、美式期权)
5、风险测度指标(在险价值、信用风险)
第九讲、统计分析7 M. C2 a& { D& R0 P
统计分析是金融数据分析的核心,本讲介绍常用的统计分析方法、金融应用及其Python实现。/ p+ S; J3 G" w, ~3 }, t
1、正态性检验
2、资产组合优化9 x9 Y, [" \' N; Q, v* x
3、主成分分析应用
4、贝叶斯回归分析( @% {9 V4 w/ w. M$ n6 M0 z
$ T) H2 J6 A6 R" q1 r/ t+ Y5 ]
第十讲、数值分析技术* q' `+ ~( U( l9 }% x7 M0 D
对于一些非线性、没有显式解的金融和数据分析问题,需要使用数值分析的技术,本讲介绍这些技术的基础及应用,以及Python的实现。0 l% I" [, A) w6 X/ H
1、求解线性方程(LU分解、Cholesky分解、QR分解、Jacobi方法、Gauss-Seidel方法)
2、金融中的非线性模型(隐含波动率、Markov regime-switching模型、门限自回归模型、平稳转换模型)
3、求根方法
5 A5 B7 l& p: Y6 k7 W; W* f
第十一讲、使用Python操作Excel
微软的Excel是常用的办公软件,是数据分析和应用的重要支撑。Python提供了丰富的与Excel交互的接口,本讲介绍这些接口并举例。
1、基本的电子表格交互
2、Python中的Excel脚本
第十二讲、Python面向对象编程与图形用户界面3 A7 {+ [+ }; K' M
本讲介绍Python面向对象编程技术,这是后续章节,特别是量化投资一章的基础,除此之外,本讲还介绍了Python图形用户界面编程的基本方法。# j% i' ?1 B w6 K) c6 p, e6 [; c
1、面向对象) r, F5 Q9 f- U
2、图形用户界面" y& i3 O( G8 P& F4 ?4 Y9 |
1 S [+ V8 b( P; ]) p8 z
第十三讲、金融中的大数据技术概述
本讲介绍大数据技术在金融中的应用以及使用Python的基本实现。& f3 e4 e8 Q( ~6 }/ ]6 Z) M
1、Hadoop概述
2、使用Hadoop实现字符统计8 e+ o9 G+ A4 ]0 }$ V
3、Hadoop金融应用举例
4、NoSQL介绍
4 {9 Y y) K* W
第十四讲、案例1:使用Python构建期权分析系统6 Y2 Q5 ~' _4 I% B4 O
本案例使用之前各讲介绍的Python金融应用相关知识,构建相对完整的期权分析系统,帮助学员掌握金融系统开发的要点以及Python整合应用的方式,与之前介绍相比,在案例分析中更多的使用面向对象方法。
1、估值框架(资本资产定价原理,风险中性定价,市场环境等介绍). [2 b m5 l) o% p* w; r, r. Y
2、金融模型的模拟(随机数生成模块,泛型模拟类,几何布朗运动,带跳跃的扩散过程模拟模块,平方根扩散过程模拟模块)! p/ o' o, M7 @
3、衍生品估值模块(泛型估值类、欧式执行类、美式执行类)$ A5 {( e$ v: W
4、衍生品分析库应用——波动率期权定价
第十五讲、案例2:使用Python构建简单的算法交易系统% b7 b2 i# D8 H1 W. E* o
算法与程序化交易是大数据时代计算机技术在金融领域应用的最重要方面之一。本讲介绍这方面的Python实现,包括基本交易、交易策略与回测等。
1、算法交易概述与框架
2、实现事件驱动交易引擎(事件驱动软件,事件类,数据处理类,策略类,投资组合类,执行处理类和回测类的基本编制,事件驱动执行)
3、交易策略实现(移动平均跨越策略,S&P500预测交易策略,均值回归股票配对交易策略)) \1 N5 z/ B, ]& _ g# d, U
4、策略优化(参数优化,模型选择,优化策略)
〖下载地址〗
|
|