前言

Python 已广泛应用于银行业、投资管理 保险业、房地产行业等金融领域用于开发金融模型、管理风险和自动完成交易。许多大型金融机构依赖 Python 来搭建职位管理、资产定价、风险管理和交易系统等基础设施。

本书将介绍核心的金融理论,并给出它们的数学概念,以帮助读者更好地理解它们在实际中的应用价值。你将了解如何应用 Python 求解经典的资产定价模型,解决金融中的线性和非线性问题,开发数值程序和利率模型,以及如何根据有限差分法定价来描绘含有期权的隐含波动率曲线等。

随着高级计算技术的出现,我们必须要考虑如何存储和处理大量数据 。而Hadoop 是目前处理大数据的流行工具。因此本书将介绍 Hadoop 的工作原理及其与 python 的集成,以获得金融数据的分析方法;以及如何利用 python 实现 NoSQL 在存储非结构化数据中的应用。

目前许多公司开始向客户提供 API,以使用他们定制的交易软件进行交易。 通过学习本书,你将了解如何连接到代理 API,检索市场数据,生成交易信号并向交易所发送指令,以及平均回报和趋势跟踪等交易策略的实施。另外,本书还将介绍风险管理、头寸跟踪和回溯测试技术, 以帮助你管理交易策略的实施效果。

金融行业中,使用 Microsoft Excel 处理债券交易和后台业务是一种普遍现象。本书将介绍如何在 python 中创建数字定价组件对象模型( COM)服务器,使你的电子表格能够即时计算和更新模型值。

第1章 Python 在金融中的应用

Python 已经在银行业、投资管理和保险业等金融领域取得广泛应用,甚至帮助房地产行业开发金融建模、风险管理和交易的程序。

1.1 Python 适合我吗

大型金融机构也利用 Python 建立基础系统架构。比如美国银行“石英”项目通过 Python 实现头寸位管理、定价和风险管理功能;摩根大通利用 Python兼容性和灵活性,融合 C++ 和 Java,建立跨市场的风险管理和交易系统一一 “雅典娜”。

本书将介绍借助 Python 开发金融应用的基本内容,包括投资组合最优化、数值定价、交互式分析、利用 Hadoop 进行大数据投资决策等。

1.1.3 丰富的标准库

NumPy、SciPy、matplotlib、statsmodels 和 pandas 是定量分析和数据管理经常使用的模块。

其他库可以拓展 Python 的功能,例如,gnuplot 软件包能够将 Python 变为数据可视化工具,以可视化数学函数和数据交互;基于 Tk 的 GUI 工具(如 Tkinter)可将 Python 脚本变为 GUI 程序。

1.2 面向对象编程与函数式编程

1.2.1 面向对象式方法

class Greeting(object):def __init__(self, my_greeting):self.my_greeting = my_greetingdef say_hello(self, name):print "%s %s" %(self.my_greeting, name)

1.2.2 函数式方法

1.2.3 我该使用哪种方法

复杂软件系统将对象作为类,有助于团队成员之间的代码管理,工作范围和系统范围更容易通过面向对象式定义。涉及数学模型时,函数式编程方法更易实现代码中数学概念。

第2章 金融中的线性问题

当今,非线性动力学在世界上有至关重要的作用。然而,线性模型凭借其简洁性和易建模的优势,在金融领域广泛用于证券定价、投资组合最优资产配置等工作,得到全局最优解。

为实现有效预测,回归分析广泛应用于统计领域以估计变量之间的关系。

传统投资组合管理中,资产配置通常遵循线性模型,而每个投资者都有其独特的投资风格。我们可以将投资组合配置问题转换为包含等式和不等式的线性方程组,该线性方程组可用 Ax =B 的矩阵形式表示。其中,A 为已知系数值,B 为观测值,x 为未知向量。通常,x 代表最优资产配比,我们可以利用线性代数中的直接或间接方法快速求解。

本章讨论以下主题:

  • 资本资产定价模型、有效边界和资本市场线
  • 利用回归方程求解证券市场线
  • 套利定价模型与多元线性回归
  • 投资组合分配中的线性优化
  • 利用 PuLP 进行线性优化
  • 线性规划的结果
  • 整数规划
  • 二元条件下的线性整数规划
  • 利用矩阵求解线性方程组
  • 利用 LU 分解、Cholesky 分解和 QR 分解直接求解线性方程组
  • 利用 Jacobi 迭代和 Gauss-Seidel 迭代间接求解线性方程组

2.1 资本资产定价模型与证券市场线


资本资产定价模型可以衡量投资组合中每只股票收益与风险的关系。将这些关系加总,我们就可以得到具有最低投资风险的证券投资组合权重。期望得到特定收益率的投资者,可以通过资本资产定价模型得到风险最低的最优化投资组合。最优投资组合的集合称为有效边界(efficient frontier)。

有效边界上存在一个切点,该点表示可获得最高回报率或最低风险的最优投资组合,称为市场投资组合(market portfolio )。市场投资组合与无风险利率点的连线称为资本市场线(capital mai-ket line, CML)。换言之,资本市场线可认为是所有最优投资组合的夏普比率最高的那个。夏普比率(Sharpe ratio)是风险调整后的收益率,通过投资组合的超额收益除以其标准差计算。通常投资者都乐意持有位于资本市场线上的资产组合,让我们看下图:


""" Linear regression with SciPy """
from scipy import statsstock_returns = [0.065, 0.0265, -0.0593, -0.001, 0.0346]
mkt_returns = [0.055, -0.09, -0.041, 0.045, 0.022]beta, alpha, r_value, p_value, std_err = \stats.linregress(stock_returns, mkt_returns)
print(beta, alpha, r_value, p_value, std_err)
0.5077431878770808 -0.008481900352462384 0.38455905003823676 0.5227155239089462 0.7036705543221569


当该证券同期实际回报率高于期望回报率,投资者在风险不变情况下获得更高的收益,即此证券价值被低估。
相反,当该证券同期实际回报率低于由证券市场线得出的期望回报率,即投资者在风险不变情况下获得更少的收益, 即此证券价值被高估。

2.2 套利定价模型

资本资产定价模型有许多局限性,如均值—方差理论框架的应用以及回报率仅受市场风险一项风险因素的影响。一个多元化投资组合,基本可以消除股票的非系统性风险。
套利定价理论(Arbitrage Pricing Theory, APT)模型的提出弥补了上述不足,并提供一种不同于均值—方差理论的资产定价方法。

该模型假定证券报酬率是基于包括多个系统性风险因素的线性组合模型得到的,这些因素可能是通货膨胀率、GDP 增长率、实际利率或股息。
套利定价模型的资产定价方程如下所示:

2.3 因子模型的多元线性回归

""" 统计模型的最小二乘回归 """import numpy as np
import statsmodels.api as sm# 生成一些示例数据
num_periods = 9
all_values = np.array([np.random.random(8) for i in range(num_periods)])# 过滤数据
y_values = all_values[:, 0]
x_values = all_values[:, 1:]x_values = sm.add_constant(x_values)  # 包含截距。
model = sm.OLS(y_values, x_values)
results = model.fit() print(results.summary())

我们可以使用 params 函数计算所求系数:

print(results.params)
[ 1.20540136 -0.18613356 -0.7448403   0.42204504 -0.24264953  1.22527411-0.93990767 -0.6429364 ]

2.4 线性最优化

2.4.2 一个简单的线性优化问题


""" 一个简单的两变量线性规划问题 """
import pulpx = pulp.LpVariable("x", lowBound=0)
y = pulp.LpVariable("y", lowBound=0)problem = pulp.LpProblem("一个简单的最大化目标", pulp.LpMaximize)
problem += 3*x + 2*y, "目标函数"
problem += 2*x + y <= 100, "约束1"
problem += x + y <= 80, "约束2"
problem += x <= 40, "约束3"problem.solve()

《python金融数据分析》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. virtualbox安装ubuntu_virtualBox使用 Ubuntu18.0.4
  2. docker常见面试题_测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)
  3. 《JavaScript语言精粹》笔记
  4. cpu怎么超频_小白秒变高手 Intel酷睿CPU一键超频就是这么简单
  5. [测试题]幸运序列(lucky)
  6. metasploit 教程之基本参数和扫描
  7. sentinel 时间窗口_sentinel 滑动窗口统计机制
  8. 基于Servlet和jsp的小说网站系统
  9. D525安装黑群晖DSM6.1.7教程
  10. ubuntu12.04双屏拼接
  11. 基于5g的交通运输_一种基于5G的智慧交通基础服务平台
  12. 使用二手书App的心得
  13. 一文搞懂JVM架构:微信抢红包实战案例
  14. Dubbo源码分析之构建远程Invoker
  15. 【IUI 2020】人在回路机器学习——Human-in-the-Loop AI in Government: A Case Study
  16. MySQL命令行操作
  17. 【计算机二级等级考试】公共基础知识-学习笔记
  18. 新概念2 课文和单词(8)
  19. coco2017 数据集下载链接 及姿态关键点的数据处理
  20. 客户关系管理系统PRD编写

热门文章

  1. 字体图标 fa fa html5,Font Awesome 4.2.0的所有图标参考
  2. 巴旦木即将成为农业的下一个“风口”河南巴旦木生态农业:值得期待
  3. .vm后缀的文件是什么?
  4. 第九届河南省程序设计大赛 1273-宣传墙(java)
  5. opencv实战3-处理图像的颜色
  6. 华为手机如何简单、快捷地投屏到电视机上?
  7. SOA和Web Service
  8. i.MX6ULL系统移植 | 移植NXP官方linux4.1.15内核
  9. u盘误删的文件怎么找回?帮你轻松找回
  10. 【788. 旋转数字】