zoukankan      html  css  js  c++  java
  • Python金融应用编程(数据分析、定价与量化投资)

    近年来,金融领域的量化分析越来越受到理论界与实务界的重视,量化分析的技术也取得了较大的进展,成为备受关注的一个热点领域。所谓金融量化,就是将金融分析理论与计算机编程技术相结合,更为有效的利用现代计算技术实现准确的金融资产定价以及交易机会的发现。量化分析目前已经涉及到金融领域的方方面面,包括基础和衍生金融资产定价、风险管理、量化投资等。随着大数据技术的发展,量化分析还逐步与大数据结合在一起,对海量金融数据实现有效和快速的运算与处理。
    在量化金融的时代,选用一种合适的编程语言对于金融模型的实现是至关重要的。在这方面,Python语言体现出了不一般的优势,特别是它拥有大量的金融计算库,并且可以提供与C++,java等语言的接口以实现高效率的分析,成为金融领域快速开发和应用的一种关键语言,由于它是开源的,降低了金融计算的成本,而且还通过广泛的社交网络提供大量的应用实例,极大的缩短了金融量化分析的学习路径。
     
     
     
     
     
     
     
     
     
     
     
    本课程在量化分析与Python语言快速发展的背景下介绍二者之间的关联,使学员能够快速掌握如何利用Python语言进行金融数据量化分析的基本方法。
     
     1.课程研发环境
     
    项目使用Python 2.7环境,因为Python所包含的用于数据分析和金融应用的相关库众多,所以在课程与项目中使用Anoconda
    集成环境。
    开发工具:Spyder,IPython,Cloudera(Hadoop应用平台)
    数据库工具:SQLite(Anaconda内置),MongoDB(大数据应用一章使用),DTN IQFEED(试用账号,用于量化交易中高频
    数据的下载)
    所有使用的开发工具与环境、库等都是开源的,可以免费从互联网获取和下载。
    2.内容简介
         本教程介绍使用Python进行数据分析和金融应用开发的基础知识。课程从介绍简单的金融应用开始,带领学员回顾Python的基础知识,并逐步学习如何将Python应用到金融分析编程中。课程覆盖了Python的基本数据结构、输入输出、效率分析、数学库、随机分析库、统计分析库等。接着课程以专题的形式介绍了Python与Excel的结合,学习如何使用Python的相关库生成Excel可调用的函数;Python与Hadoop和MongoDB结合进行大数据分析的基础知识。最后课程介绍了Python的面向对象编程并介绍了两个案例:使用Python实现金融衍生品分析库以及使用Python实现事件驱动的量化投资系统,使学员在实战的环境下理解Python在金融应用开发中的具体应用方式,训练学员独立开发Python模块的能力。
     

    朱彤老师,2009年博士毕业于北京大学光华管理学院金融系,对金融、数据分析与统计有着较为深刻的理解,多年来一直持续跟踪和研究金融量化分析与数据统计相关领域的进展与发展,对概率论、随机过程及其在金融中的应用有着丰富的实践经验,擅长使用各类金融数据分析软件,包括MATLAB, R,PYTHON,SAS,STATA等,目前就职于某量化投资交易软件开发公司,从事软件设计与产品经理工作,对金融、统计与交易软件的实现方式有着丰富的经验,熟悉使用C++,JAVA或C#实现数据分析与金融应用的基本方法。任教期间善于结合自身学习与工作经历,以较为直观的方式解释金融与统计、随机分析等相关知识,并结合编程实践进行具体讲解。朱彤老师有着丰富的教学经历,包括讲授计量经济学、概率统计、金融衍生品定价、数量金融分析等方面,授课声音洪亮,有耐心,讲解细致,受到学生们的广泛好评。

    第一讲、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、策略优化(参数优化,模型选择,优化策略)
     
     
     
     
     
     
    目标一. 回顾和更深入的把握Python基础知识与应用实现方式。
    目标二. 了解和把握各类金融模型的基本知识,包括衍生品定价,随机模拟,量化交易等。
    目标三. 学习和掌握Python在金融方面的基础应用编程与效率分析。
    目标四. 学习Python的NumPy,Pandas,Matplotlib等库在金融领域的具体应用实现方式。
    目标五. 了解Python与Hadoop的结合应用,掌握基本的大数据MapReduce的实现方式,了解Python与NoSQL数据库(以MongoDB为例的结合应用)
    目标六. 理解事件驱动的算法交易系统的基本思想与基础类的实现,并学会几种交易策略的回测方式。
    目标七. 了解和掌握Python面向对象编程的基本思想,可以独立开发基于Python的金融数据分析与交易模块。
     
    亮点一、在国内首次对事件驱动的量化交易软件模块进行了介绍,这部分在国内现有的量化投资相关教科书和课程中是较少介绍的内容,课程使用Python语言对基础交易模块,业绩验证模块以及交易策略回测模块进行了具体实现。
    亮点二、对Python金融应用的实现进行了具体介绍,覆盖面较广,并且以较为直观的方式介绍原理,配以代码实现,可以使学员对相关应用与编程有较好的理解和把握。
    亮点三、课程全部代码均是一行一行手工敲入,手把手一步步带领学员从入门到精通,并使学员可以边听课,边通过键入代码获得直观感受,并进行进一步的思考。
    亮点四、整个课程虽项目不大,但整个项目基本上涉及到Python编程的方方面面,所实现的项目将Python的各补充库结合应用,便于学员整体把握Python编程思路。另外,所讲授的项目还可以进行方便的扩充,学员可以进行个性化并应用到具体的工作实践中。
     
    1.课程针对人群
    本课程针对具有一定的金融基础知识(不要求精通,但需要知道基本金融工具和金融市场的原理)的学员,想通过本项目的学习,了解金融分析软件的具体实现。课程不假设学员了解Python相关知识和较深的金融原理,课程中会使用较为直观的方式加以介绍并配以实现代码。
    2.我该怎么学,如何才能学好这门课程,给些建议。
    4.1、时间上的安排建议
    本课程共66讲,如果您时间上充分,建议以每天4-5讲的进度往前学习。 
    4.2、学习要求
    如果您没有基础,建议还是中规中矩的按照课程进度一点一点仔细观看学习,并一定要把看完的视频中的代码自己手敲一遍,以加深理解和记忆
    如果您有基础,可不必按步就搬进行,可以拿你感兴趣的部分去学习,但一定要注意实践,并学会举一反三 
    4.3、讲师建议
    1.最好看完视频之后,抛开视频,独立自己去把上课中的示例写一遍,看自己是否理解,如果不正确,可以回过头看再看下视频,如果反复,达到真正理解和熟练掌握的目的。
    2.对于项目实战部分,一定要自己亲自动手做一遍,不要满足听完就OK了
    3. 建议一般听视频,一般拿个纸和笔,做一些记录和笔记,这是一种非常好的学习习惯。
    4. 要学会思考,学会举一反三,对课程中介绍的内容进行适当的扩充,可以加深对此内容的理解。
    5. 最后祝您学有所成
     
    课程是属于某个特定的专业技术,掌握该技术后,你可以从事以下职位的相关工作
    1.Python金融软件开发工程师
    2.金融应用软件设计人员
    3.Python大数据和统计计算工程师 
    4.量化交易员与分析师 
     
     
     
     

    干货 :https://www.cnblogs.com/dhcn/p/7121435.html
    、量化投资—为什么选择Python?
    Python在量化领域的现状

    就跟Java在web领域无可撼动的地位一样,Python也已经在金融量化投资领域占据了重要位置,从各个业务链条都能找到相应的框架实现。

    在量化投资(证券和比特币)开源项目里,全球star数排名前10位里面,有7个是Python实现的。从数据获取到策略回测再到交易,覆盖了整个业务链。
    而全球注册用户数最多的商业量化平台Uqer优矿,也同样是基于Python实现和提供服务的。国内后来的其他量化平台,例如RiceQuant和JoinQuant,也主推Python环境。可见Python在量化平台应用的绝对占有程度。

    为什么是Python?

    Python是一门比较全面与平衡的语言,既能满足包括web在内的系统应用的开发,又能满足数据统计分析等数学领域的计算需求,同时也能作为胶水语言跟其它开发语言互通融合。

    在数据分析方面,没有其他语言能像Python这样既能精于计算又能保持性能,对于时间序列数据的处理展现了简单便捷的优势。而如此适用的特点,主要得益于有如下框架和工具的支持:

    Numpy:底层基于C实现的科学计算包

    具有强大的N维数组对象;Array具有数据广播功能的函数库;具有完整的线性代数和随机数生成函数

    SciPy:开源算法和数学工具包

    最优化线性代数、积分、插值、特殊函数;快速傅里叶变换;信号处理和图像处理常微分方程求解;其他科学与工程中常用的计算

    其功能与Matlab和Scilab等类似

    Pandas:起源于AQR的数据处理包,具有金融数据分析基因

    基于Series、DataFrame和Pannel多维表结构数据;数据自动对齐功能;数据清洗和计算功能;时间序列数据快速处理功能

    Matplotlib:基于Python的数据绘图包,能够绘制出各类丰富的图形和报表

    另外,Python在机器学习领域的应用也越来越多,其中的开源项目包括了scikit-learn、Theano、Orange等

    Python的特点

    1、简单易学Python是一门简单而又简约的语言。阅读好的Python程序感觉就像阅读英语。Python非常容易上手,学习曲线比较平缓。

    2、高级语言垃圾自动处理且面向对象的高级语言。Python 具备所有脚本语言的简单和易用性,并且具有在编译语言中才能找到的高级软件工程工具。

    3、扩展移植可与其他语言无缝对接并能实现跨平台。

    4、开源项目只要能想到的,几乎都有现成的包能找到。

  • 相关阅读:
    自己实现简单Spring Ioc
    java中动态代理的实现
    Token以及签名signature的设计与实现
    Spring boot整合jsp
    spring boot+mybatis整合
    java并发基础(六)--- 活跃性、性能与可伸缩性
    java并发基础(五)--- 线程池的使用
    java并发基础(四)--- 取消与中断
    java并发基础(三)--- 任务执行
    java并发基础(二)
  • 原文地址:https://www.cnblogs.com/timssd/p/5380449.html
Copyright © 2011-2022 走看看