首页 > 科技 > 看了Python在金融行业中的应用,大数据分析实在太重要了

看了Python在金融行业中的应用,大数据分析实在太重要了

来源 | 异步 | 文末赠书


说起金融,大家并不陌生,毕竟和我们的钱包关系紧密。这个“多金”的产业能持续的高速发展,源自科技的赋能。
从ATM到信用卡,从网上银行到移动支付……金融科技正在改变着我们的生活。国内的金融科技发展尤为迅速,在全球金融科技市场中,中国正占据越来越重要的位置。
即便如此,金融科技的风口却从未停息……最近,在第四届智能金融国际论坛上,再次提到了区块链、人工智能、5G等科技巨变的力量,强调了科技在资讯与数据领域的重要意义。


什么是金融科技?

简单介绍一下,金融科技(Fintech)是指通过利用各类科技手段创新传统金融行业所提供的产品和服务,提升效率并有效降低运营成本。


根据金融稳定理事会(FSB)的定义,金融科技主要是指由大数据、区块链、云计算、人工智能等新兴前沿技术带动,对金融市场以及金融服务业务供给产生重大影响的新兴业务模式、新技术应用、新产品服务等。


随着大数据时代的到来,人工智能等前沿的科技在算法深刻改变了金融业态,并成为未来金融发展的制高点。金融科技正在传统金融行业的各个领域积极布局,已然成为新的风口。


随着人工智能发展而大火的Python,有着简单易学、速度快、可移植性、解释性、可拓展性、可嵌入性以及丰富的库等特点,使其在数学、大数据分析以及处理金融行业和财务(数据)分析中都有着得天独厚的优势。


Python在金融中的应用

Python的语法很容易实现那些金融算法和数学计算,每个数学语句都能转变成一行Python代码,每行允许超过十万的计算量。


在金融环境中迈出使用Python第一步的大部分人都可能要攻克某个算法问题。这和想要解出微分方程、求取积分或者可视化某些数据的科学工作者类似。


一般来说,在这一阶段,对正规开发过程、测试、文档或者部署没有太多的要求。然而,这一阶段似乎是人们特别容易爱上 Python 的时候,主要原因是 Python 的语法总体上和用于描述科学问题或者金融算法的数学语法相当近。


我们可以通过一个简单的金融算法——通过蒙特卡洛模拟方法估计欧式看涨期权的价值来说明这一现象。我们将考虑Black-Scholes-Merton(BSM)模型,在这种模型中期权的潜在风险遵循几何布朗运动。假定我们使用以下数值化参数进行估值:

● 初始股票指数水平 S0=100;

● 欧式看涨期权的行权价格 K=105;

● 到期时间 T=1 年;

● 固定无风险短期利率 r=5%;

● 固定波动率 σ=20%。

在 BSM 模型中,到期指数水平是一个随机变量,由公式 1-1 给出,其中 z 是一个标准正态分布随机变量。公式Black-Scholes-Merton(1973)到期指数水平


下面是蒙特卡洛估值过程的算法描述。

(1)从标准正态分布中取得 I 个(伪)随机数 z(i),i∈{1,2,…,I}。

(2)为给定的 z(i)和公式 1-1 计算所有到期指数水平 ST(i)。

(3)计算到期时期权的所有内在价值 hT(i)=max(ST(i) K,0)。

(4)通过公式 1-2 中给出的蒙特卡罗估算函数估计期权现值。公式 1-2 欧式期权的蒙特卡洛估算函数。

现在,我们需要将这个问题和算法翻译为Python代码。下面的代码将实现一些必要的步骤。

NumPy在这里作为主程序包使用。

定义模型并模拟参数值。

随机数生成器种子值固定。

提取标准正态分布随机数。

模拟期末价值。

计算期权到期收益。

计算蒙特卡洛估算函数。

打印输出估算结果。

以下 3 个方面值得注意。


语法:Python 语法与数学语法相当接近,例如参数赋值的方面。

翻译:每条数学或者算法语句一般都可以翻译为单行 Python 代码。


向量化:NumPy的强项之一是紧凑的向量化语法,例如,允许在单一代码行中进行 10 万次计算。这段代码可以用于 IPython 或 Jupyter Notebook 等交互式环境。但是,需要频繁重用的代码一般组织为所 谓的模块(或者脚本),也就是带有.py 后缀的 Python(文本)文件。本例的模块如下图所示,可以将其保存为名为 bsm_msc_euro.py 的文件。


简单算法示例说明,Python 的基本语法很适合为经典的科学语言二重奏——英语和数学来 提供补充。在科学语言组合中添加 Python 能使其更加全面。


Python用于分析学

Python效率较为明显的领域之一是交互式的数据分析,对于大数据来说它无疑是一个最合适的选择。这些领域从 IPython、Jupyter Notebook 等有力工具和pandas之类的程序中库获益良多。假设你是一位正在撰写硕士论文的金融专业学生,对标普500指数感兴趣,想要分析1年的历史指数水平,以了解指数在这段时间内的波动性,你希望找到证据证明这种变动性与某些典型的模型假设相反,

它是随时间变动而非固定。而且,应该对结果进行可视化,你要进行的主要的工作如下:

● 从网络上下载指数水平数据;

● 计算年化对数收益率的滚动标准差(波动率);

● 绘制指数水平数据和波动性结果图表。

这些任务很复杂,在不久之前还被认为是专业金融分析师才能完成的。而在今天,即使是金融专业的学

生也可以轻松地对付这类问题。我们来看看具体的做法:

导入 NumPy 和 pandas。导入 matplotlib 并配置 Jupyter 绘图样式和方法。pd.read_csv()可以读取远程或者本地存储的逗号分隔值(CSV)形式数据集。选取一个数据子集,删除NaN(非数值)值。显示关于数据集的一些元信息。以向量化的方式(在 Python 级别上“无循环”)计算对数收益率。得出滚动年化波动率。最后绘制两个时间序列。下图展示了这一简短交互会话所得到的图形化结果。


用几行代码就足以完成金融分析中的典型复杂任务:数据收集、复杂和重复的数学计算以及结果的可视化,令人觉得不可思议。从这个例子中可以看到,pandas使整个时间系列的处理变得就像浮点数上的数学运算那样容易。

将这个例子转换到专业的金融环境中,可以看出金融分析师在应用提供高层次抽象的合适Python工具和库的时候,能够将焦点放在自身的领域上,而不用关心复杂的技术细节。分析师可以快速反应,几乎实时地提供宝贵的调见,确保自己比竞争对手先行一步。这种效率的提高很容易转换为可度量的财务效果。

除了Python在数据分析中那些很明显的优点(易学,大量的在线社区等等)之外,在数据科学中的广泛使用,以及我们今天看到的大多数基于网络的分析,是Python在数据分析领域得以广泛传播的主要原因另外,Python在数学和人工智能领域中也发挥着独特的优势,《Python金融大数据分析(第2版)》一书中还详细为我们讲述了Python以及Python在金融学中的应用。

本书适合对使用 Python 进行大数据分析和处理感兴趣的金融行业开发人员阅读。

「链接」

- 推荐阅读 -


今日福利


《Python金融大数据分析(第2版)》

适合对使用Python进行大数据分析、处理感兴趣的金融行业开发人员阅读。

如何获得:参与话题留言+转发本文至朋友圈,12月15日,异步君将抽取2名读者赠送《Python金融大数据分析(第2版)》


今日互动话题:

“说一说金融科技对生活的改变”


-END-



点击“阅读原文”,立即试读

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/253855.html