首页 知识 正文
文章详情

目录:

1.python在金融领域的作用

2.python对于金融有什么用

3.python用在金融行业

4.python对金融有用吗

5.python在金融专业的应用

6.python编程在金融中的应用

7.python语言在金融中的应用领域有哪些

8.python在金融领域的应用论文

9.python在金融工程中的用途

10.python对于金融重要吗

1.python在金融领域的作用

1.3 用于金融的Python1.2节介绍了科技在金融中发挥作用的一些领域:金融行业中的科技成本;作为新业务和创新业务引擎的科技;作为金融行业进入门槛的科技;不断提升的速度、频率和数据量;实时分析的兴起。

2.python对于金融有什么用

本节,我们分析Python如何帮助你应对这些方面的多种挑战不过首先让我从更为基础的方面——语言和语法介绍用于金融的Python1.3.1 金融和Python语法在金融环境中迈出使用Python第一步的大部分人都可能要攻克某个算法问题。

3.python用在金融行业

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

4.python对金融有用吗

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

5.python在金融专业的应用

初始股票指数水平S0=100;欧式看涨期权的行权价格K=105;到期时间T=1年;固定无风险短期利率r=5%;固定波动率σ=20%在BSM模型中,到期指数水平是一个随机变量,由公式1-1给出,其中z是一个标准正态分布随机变量。

6.python编程在金融中的应用

公式1-1 Black-Scholes-Merton(1973)到期指数水平

7.python语言在金融中的应用领域有哪些

下面是蒙特卡洛估值过程的算法描述(1)从标准正态分布中取得I个(伪)随机数z(i),i∈{1,2,…,I}(2)为给定的z(i)和公式1-1计算所有到期指数水平ST(i)(3)计算到期时期权的所有内在价值hT(i)=max(ST(i)−K,0)。

8.python在金融领域的应用论文

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

9.python在金融工程中的用途

现在,我们需要将这个问题和算法翻译为Python代码下面的代码将实现一些必要的步骤In[6]: import mathimportnumpy as np ❶In[7]: S0 = 100. ❷K = 105. ❷

10.python对于金融重要吗

T = 1.0 ❷r = 0.05 ❷sigma = 0.2 ❷In[8]: I = 100000 ❷In[9]: np.random.seed(1000) ❸In[10]: z = np.random.standard_normal(I) ❹

In[11]: ST = S0 * np.exp((r – sigma ** 2 / 2) * T + sigma * math.sqrt(T) * z) ❺In[12]: hT = np.maximum(ST – K, 0) ❻

In[13]: C0 = math.exp(-r * T) * np.mean(hT) ❼In[14]: print(Value of the European call option: {:5.3f}..format(C0)) ❽

Valueof the European call option: 8.019.❶ NumPy在这里作为主程序包使用❷ 定义模型并模拟参数值❸ 随机数生成器种子值固定❹ 提取标准正态分布随机数❺ 模拟期末价值。

❻ 计算期权到期收益❼ 计算蒙特卡洛估算函数❽ 打印输出估算结果以下3个方面值得注意语法Python语法与数学语法相当接近,例如参数赋值的方面翻译每条数学或者算法语句一般都可以翻译为单行Python代码。

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

本例的模块如例1-1所示,可以将其保存为名为bsm_msc_euro.py的文件例1-1 欧式看涨期权的蒙特卡洛估值## Monte Carlo valuation of European call option

# in Black-Scholes-Merton model# bsm_mcs_euro.py## Python for Finance, 2nd ed.# (c) Dr. Yves J. Hilpisch

# import math import numpy as np # Parameter Values S0 = 100. # initial index level K = 105. # strike price

T = 1.0 # time-to-maturity r = 0.05 # riskless short rate sigma = 0.2 # volatility I = 100000 # number of simulations

# Valuation Algorithm z = np.random.standard_normal(I) # pseudo-random numbers# index values at maturity

ST = S0 * np.exp((r – 0.5 * sigma ** 2) * T + sigma * math.sqrt(T) * z) hT = np.maximum(ST – K, 0) # payoff at maturity

C0 = math.exp(-r * T) * np.mean(hT) # Monte Carlo estimator# Result Output print(Value of the European call option %5.3f. % C0)

这一小节中的简单算法示例说明,Python的基本语法很适合为经典的科学语言二重奏——英语和数学来提供补充在科学语言组合中添加Python能使其更加全面我们现在拥有:用于写作和谈论科学、金融等问题的英语;。

用于简洁、精确地描述抽象特征、算法、复数等并为其建模的数学;从技术上建立抽象特征、算法、复数等的模型并加以实现的Python数学和Python语法几乎没有任何编程语言像Python这样接近数学语法因此,数值算法很容易从数学表示翻译为Python实现。

通过Python,我们可以在这些领域中高效地进行原型化、开发和代码维护在某些领域中,使用伪代码是常见的做法,这引入了第 4 个语言家族成员举个例子,伪代码的任务是以更技术性的方式表示金融算法,不但与数学表示接近,而且还接近于技术实现。

除了算法本身,伪代码还考虑了计算机的工作原理采用这种方法一般是因为,使用大部分编程语言时,技术实现和正式的数学表现形式的距离相当“遥远”大部分编程语言都必须包含许多只在技术上需要的元素,但在数学和代码中很难看到等价的元素。

时下,Python常常以伪代码的方式被使用,因为它的语法和数学很类似,而且技术“开销”可以控制到最低这一点是通过该语言所体现的一些高层概念实现的,这些概念不仅有其优势,也带来了风险和其他代价不过可以肯定,我们可在需求出现的时候使用Python,从一开始就遵循其他语言可能需要的严格实现和编码方法。

从这个意义上说,Python可以在两个世界:高层次的抽象和严格的实现中提供最佳的平衡1.3.2 Python的效率和生产率从较高的层次看,使用Python的好处可以从以下3个维度衡量效率Python如何更快地获得结果、节约成本、节约时间?。

生产率Python如何在相同的资源(人员、资产等)下完成更多的工作?质量Python能够让我们做哪些替代技术所不能做到的事情?对这些特性的讨论当然不可能很全面然而,可以将某些特性作为出发点1.在更短的时间里得到成果。

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

而且,应该对结果进行可视化,你要进行的主要的工作如下:从网络上下载指数水平数据;计算年化对数收益率的滚动标准差(波动率);绘制指数水平数据和波动性结果图表这些任务很复杂,在不久之前还被认为是专业金融分析师才能完成的。

而在今天,即使是金融专业的学生也可以轻松地对付这类问题我们来看看具体的做法——此时还不用操心语法的细节(后续的章节将对所有细节进行解释):In [16]: import numpy as np ❶ import pandas as pd ❶ from pylab import plt, mpl ❷ In [17]: plt.style.use(

seaborn) ❷ mpl.rcParams[font.family] = serif ❷ %matplotlib inline In [18]: data = pd.read_csv(

../../source/tr_eikon_eod_data.csv, index_col=0, parse_dates=True) ❸

data = pd.DataFrame(data[.SPX]) ❹ data.dropna(inplace=True) ❹ data.info() ❺ <

classpandas.core.frame.DataFrame> DatetimeIndex: 2138 entries, 2010-01-04to2018-06-29Datacolumns

(total 1columns): .SPX 2138 non-null float64 dtypes: float64(1) memoryusage

: 33.4 KB In [19]: data[rets] = np.log(data / data.shift(1)) ❻ data[vola] = data[rets].rolling(

252).std() * np.sqrt(252) ❼ In [20]: data[[.SPX, vola]].plot(subplots=True, figsize= (

10, 6)); ❽❶ 导入NumPy和pandas❷ 导入matplotlib并配置Jupyter绘图样式和方法❸ pd.read_csv()可以读取远程或者本地存储的逗号分隔值(CSV)形式数据集❹ 选取一个数据子集,删除NaN(非数值)值。

❺ 显示关于数据集的一些元信息❻ 以向量化的方式(在Python级别上“无循环”)计算对数收益率❼ 得出滚动年化波动率❽ 最后绘制两个时间序列图1-1展示了这一简短交互会话所得到的图形化结果用几行代码就足以完成金融分析中的典型复杂任务:数据收集、复杂和重复的数学计算以及结果的可视化,令人觉得不可思议。

从这个例子中可以看到,pandas使整个时间系列的处理变得就像浮点数上的数学运算那样容易

图1-1 标普500收盘价和年化波动率将这个例子转换到专业的金融环境中,可以看出金融分析师在应用提供高层次抽象的合适Python工具和库的时候,能够将焦点放在自身的领域上,而不用关心复杂的技术细节分析师可以快速反应,几乎实时地提供宝贵的调见,确保自己比竞争对手先行一步。

这种效率的提高很容易转换为可度量的财务效果2.确保高性能一般来说,Python的语法相当简洁,编码效率相对高是为人们所接受的说法但是,由于Python本质上是解释型语言,因此存在一种偏见,认为Python对于金融学中的计算密集任务来说速度过于缓慢。

确实,在某些特定的实现方法下,Python可能确实很慢,但是,它并不一定都那么缓慢——它可以在几乎所有应用领域中表现出高性能理论上,人们至少可以找到3种提高性能的策略惯例和范型一般来说,Python可以用许多不同的方式得出相同的结果,但是这些方式的性能特性有相当大的区别;只要选择合适的方式(如特定的实现方法、明智地使用数据结构、通过向量化避免循环或者使用pandas等特定库),就可以显著地改善效果。

编译现在,有许多高性能库可以提供重要函数的编译版本,或者将Python代码静态或者动态地(在运行时或者调用时)编译为机器代码,这种代码的速度比纯Python代码要快好几个数量级比较流行的高性能库有Cython和Numba等。

并行化许多计算任务(特别是金融学中的计算任务)可以从并行执行中得到很大好处;这对Python来说不足为奇,可以轻松地实现使用Python实现高性能计算Python本身不是一种高性能计算技术但是,Python已经发展成为一种访问当前高性能技术的理想平台。

在这个意义上,Python已经成为高性能计算的“黏合剂”语言本节坚持使用简洁实用的例子介绍上述3种策略(后续的章节将详细介绍这些策略)金融分析中相当常见的任务之一是在大量数字上计算复杂的数学表达式在这方面,Python本身就提供了所有必需的功能:。

In[21]:importmathloops=2500000a=range(1,loops)deff(x):return3*math.log(x)+math.cos(x)**2%timeitr=[f(x)

forxina]1.59s±41.2msperloop(mean±std.dev.of7runs,1loopeach)Python解释程序在本例中需要1.6s的时间来完成250万次函数f的计算使用NumPy可以完成相同的任务,它提供了优化(也就是预先编译)的函数来处理这种基于数组的运算:。

In[22]:importnumpyasnpa=np.arange(1,loops)%timeitr=3*np.log(a)+np.cos(a)**287.9ms±1.73msperloop(mean±

std.dev.of7runs,10loopseach)NumPy可以将执行时间大幅缩减到约88ms甚至有一个库是专门用于此类任务的,这个库叫作numexpr,得名于“数值表达式”(Numerical Expressions)。

它可以编译表达式来改善NumPy通用功能的性能例如,在执行期间避免ndarray对象在内存中复制:In [23]: import numexpr as ne ne.set_num_threads(

1) f = 3 * log(a) + cos(a) ** 2 %timeit r = ne.evaluate(f) 50.6 ms ± 4.2 ms per

loop (mean ± std. dev. of7 runs, 10 loops each)使用这种更特殊的方法可以进一步将执行时间降低至约50ms而且,numexpr还内建了并行执行单独运算的功能这使我们能够使用一个CPU的多个线程:。

In[24]:ne.set_num_threads(4)%timeitr=ne.evaluate(f)22.8ms±1.76msperloop(mean±std.dev.of7runs,10loopseach)

本例利用了4个线程,执行时间进一步下降到23ms,总体的性能提升了90倍特别要注意的是,这类改善不需要修改基本问题/算法,也不用了解任何有关编译和并行化问题的知识,即使是非专业人士也可以从较高的层次上去利用这种功能。

当然,前提是你必须知道存在这些功能这个例子说明,Python提供了一些选项可以更好地利用现有资源,也就是提高生产率利用并行化方法,可以在同样的时间里完成3倍于串行化方法的计算,这只需要告诉Python使用多个CPU线程(而非仅使用一个线程)即可。

1.3.3 从原型化到生产从执行速度的角度看,交互式分析的效率和性能当然是Python值得考虑的两个好处在金融学中使用Python的另一个好处初看似乎比较不起眼,但是细看之下就会发现它本身是一个重要的战略因素。

这就是以端到端(从原型化到生产)的方式使用Python的可能性当今全球金融机构的金融开发过程往往是一个分离的两步式过程一方面,量化分析师(quants,也称宽客)负责模型开发和技术原型化他们喜欢使用MatLab和R等工具和环境实现快速、交互式的应用程序开发。

在开发的这一阶段,性能、稳定性、异常管理、数据访问分离和分析等问题都不重要人们的主要目标是概念或者原型的验证,原型用于展现某种算法或者整个应用程序必需的主要功能一旦原型完成,IT部门中的开发人员接管工作,他们负责将现有原型代码翻译为可靠、易于维护和高性能的生产代码。

这一阶段中,通常在用于满足生产性能的C++或者Java语言中有一个范型转换的过程而且,正规的开发过程还要用它专业工具、版本控制等技术这种两步式方法会产生一些意外的结果效率低下原型代码不能重用;算法必须实现两次;多余的工作消耗时间和资源;转译时产生的风险。

多种技能集不同部门展现不同的技能集合,使用不同的语言实现“相同的工作”遗留代码代码必须以不同的语言存在和维护,并使用不同的实现风格(例如,从架构的观点上看)另一方面,使用Python可以实现合理化的端到端过程——从最初的交互式原型化步骤到高可靠性、易于维护的生产代码。

不同部门之间的沟通变得更加简单,工作人员的培训也更为合理,只有一种主要语言覆盖金融应用构建的所有领域,还避免了在开发过程不同步骤中使用不同技术造成的低效和冗余性总而言之,Python可以为金融应用开发和算法实现提供一致性的技术框架。

1.4 数据驱动和人工智能优先的金融学在2018年8月更新第2版的这一节时,2014年本书第1版中有关科技与金融学之间关系的言论似乎仍然适用且重要但是,本节将讲述金融业的两个重要趋势,它们将从根本上重塑这个行业。

这两个趋势主要是在过去的几年内形成的1.4.1 数据驱动金融学最重要的一些金融理论(如MPT和CAPM)可以追溯到上世纪50年代和60年代然而,它们仍然是经济、财务、金融工程和商业管理领域教育的基石这可能令人惊讶,因为大部分此类理论的实证支持相当贫乏,而证据往往完全与理论相反。

另一方面,它们的流行性也是可以理解的,因为它们接近于人们对金融市场表现的期望,而且,它们是建立在一些吸引人(通常过于简单)的假设之上的简洁数学理论科学方法(如物理学)始于数据(如来自试验或者观察的数据),然后得出假设和理论,并用数据加以测试。

如果测试结果是肯定的,那可以对这些假设和理论进行提炼,并以合适的方法记录下来,例如以研究型论文的方式发表如果测试结果是否定的,假设和理论将被抛弃,并开始寻找复合数据的新理论由于物理定律在一段时间里是稳定的,所以一旦发现并对齐进行了完备的测试,那么在最佳状况下,通常可以认为是永远成立的。

(计量)金融学的历史大部分与科学方法相悖在许多情况下,理论和模型是在简化的数学假设下“从头”开发的,目标是发现金融学核心问题的简练回答金融学的流行假设是,金融工具的回报呈标准正态分布,各种利率之间呈线性关系。

由于这些现象在金融市场上很难看到,这些简单理论的实证往往很缺乏,也就不值得惊讶了许多金融理论和模型都是首先提出公式、证明并发表,然后才进行实证测试的在某种程度上,这当然是因为上世纪50年代或者70年代甚至更晚的时候,还不存在合适形式的金融数据,而今天就连攻读金融学士学位的学生都能得到这些数据。

20世纪90年代初期到中期,金融机构所能得到的此类数据急剧增加今天,甚至进行金融研究或者参与算法交易的个人都可以得到大量的历史数据,也可以通过流服务得到实时数据这使我们可以专注于科学方法,科学方法通常从数据开始,然后得出思路、假设、模型和策略。

用一个简单的例子就可以说明,如今在本地机器上利用Python和Eikon Data APIs订阅大规模专业数据有多么简单下面的例子是读取的苹果公司股票常规交易日中一个小时的分笔交易数据读取的报价数据(包括交易量信息)大约有15000条。

由于股票代码为AAPL,所以路透金融工具代码(RIC)为AAPL.0:In[26]:importeikonasek❶In[27]:data=ek.get_timeseries(AAPL.O,fields=*,

start_date=2018-10-1816:00:00,end_date=2018-10-1817:00:00,interval=tick)❷In[28]:data.info()❷

> DatetimeIndex: 35350 entries, 2018-10-18 16:00:00.002000 to 2018-10-18 16:59:59.888000 Data columns (total 2 columns): VALUE 35285 non-null float64 VOLUME 35350 non-null float64 dtypes: float64(2) memory usage: 828.5 KB

In[29]:data.tail()❸Out[29]:AAPL.OVALUEVOLUMEDate2018-10-1816:59:59.433217.1310.02018-10-1816:59:59.433

217.1312.02018-10-1816:59:59.439217.13231.02018-10-1816:59:59.754217.14100.02018-10-1816:59:59.888217.13

100.0❶ Eikon Data API需要订阅和API连接才能使用❷ 读取苹果公司(AAPL.0)股票分笔数据❸ 显示最后5行数据Eikon Data API不仅提供了对结构化金融数据(如历史报价数据)的访问,还可以访问新闻等非结构化数据。

下面的例子读取一小部分新闻的元数据,并以全文本方式显示其中一篇文章开头的内容In[30]:news=ek.get_news_headlines(R:AAPL.OLanguage:LEN,date_from=2018-05-01,

date_to=2018-06-29,count=7)❶In[31]:news❶Out[31]:versionCreated\2018-06-2823:00:00.0002018-06-2823:00:00.000

2018-06-2821:23:26.5262018-06-2821:23:26.5262018-06-2819:48:32.6272018-06-2819:48:32.6272018-06-2817:33:10.306

2018-06-2817:33:10.3062018-06-2817:33:07.0332018-06-2817:33:07.0332018-06-2817:31:44.9602018-06-2817:31:44.960

2018-06-2817:00:00.0002018-06-2817:00:00.000text\2018-06-28 23:00:00.000 RPT-FOCUS-AI ambulances and robot doctors:

Chi…2018-06-2821:23:26.526WhyInvestorsShouldLoveApples(AAPL)TVEn…2018-06-28 19:48:32.627 Reuters Insider – Trump:

Werereclaimingour…2018-06-2817:33:10.306Applev.Samsungendsnotwithawhimperbuta…2018-06-2817:33:07.033

Applestrade-wardiscountextendedforanothe…2018-06-28 17:31:44.960 Other Products:Applesfast-growingisland

of…2018-06-2817:00:00.000PokemonGocreatorplanstosellthetechbehi…storyId\2018-06-2823:00:00.000urn:newsml:reuters.com:20180628:nL4N1TU4F8:6

2018-06-2821:23:26.526urn:newsml:reuters.com:20180628:nNRA6e2vft:12018-06-2819:48:32.627urn:newsml:reuters.com:20180628:nRTV1vNw1p:1

2018-06-2817:33:10.306urn:newsml:reuters.com:20180628:nNRA6e1oza:12018-06-2817:33:07.033urn:newsml:reuters.com:20180628:nNRA6e1pmv:1

2018-06-2817:31:44.960urn:newsml:reuters.com:20180628:nNRA6e1m3n:12018-06-2817:00:00.000urn:newsml:reuters.com:20180628:nL1N1TU0PC:3

sourceCode2018-06-2823:00:00.000NS:RTRS2018-06-2821:23:26.526NS:ZACKSC2018-06-2819:48:32.627NS:CNBC2018

-06-2817:33:10.306NS:WALLST2018-06-2817:33:07.033NS:WALLST2018-06-2817:31:44.960NS:WALLST2018-06-2817

:00:00.000NS:RTRSIn[32]:story_html=ek.get_news_story(news.iloc[1,2])❷In[33]:frombs4importBeautifulSoup

❸In[34]:story=BeautifulSoup(story_html,html5lib).get_text()❹In[35]:print(story[83:958])❺Jun28,2018For

years,investorsandAppleAAPLhavebeenbeholdentotheiPhone,whichishardlyanegativesinceitsflagshipproductis

largelyresponsibleforturningAppleintooneoftheworldsbiggestcompanies.ButApplehasslowlypushedintonewgrowth

areas,withstreamingtelevisionitsnewestfrontier.SoletstakealookatwhatApplehasplannedasitreadiesitselfto

competeagainstthelikesofNetflixNFLXandAmazonAMZNinthebattleforthenewageofentertainment.Applessecond-quarter

revenuesjumpedby16%toreach$61.14billion,withiPhonerevenuesup14%.However,iPhoneunitsalesclimbedonly3%and

iPhonerevenuesaccountedforover62%oftotalQ2sales.Appleknowsthisisnotasustainablebusinessmodel,becauserare

istheconsumerproductthatcanremaininvoguefordecades.ThisiswhyApplehasmadeabigpushintonews,❶ 读取一小部分新闻的元数据。

❷ 读取一篇文章的全部文本,形式为HTML文档❸ 导入BeautifulSoup HTML解析库并进行后续操作❹ …以纯文本方式(str对象)提取内容❺ 打印新闻的开头尽管这两个例子很浅显,但它们说明,通过Python包装器库和数据订阅服务,可以以标准化、高效的方式得到结构化和非结构化的金融历史数据。

在许多情况下,个人甚至可以使用FXCM集团、LLC等交易平台(在第14章和第16章中会讲到)来免费获得类似的数据集一旦在Python级别上得到数据(独立于原始来源),就可以利用Python数据分析生态系统的全部功能了。

数据驱动金融学近年来,数据成了金融业的推动力即使最大、最成功的对冲基金也自称是“数据驱动”的,而非“金融驱动”的越来越多的服务产品向大小机构及个人提供海量数据Python通常被选为与这些API交互、处理和分析数据的编程语言。

1.4.2 人工智能优先金融学由于通过编程API能够取得大量金融数据,所以在金融问题(如算法交易)上应用人工智能(AI)方法、特别是机器与深度学习(ML,DL)就变得非常容易,也更有成果了Python可以称得上AI界的“宠儿”。

它往往被AI研究人员和从业者选为编程语言从这个意义上说,金融领域从不同领域的发展中得益,这些领域有时甚至与金融没有太大的联系举个例子,深度学习所用的TensorFlow开源程序库是Google公司开发和维护的,用于其母公司Alphabet自动驾驶汽车的制造和销售上。

TensorFlow当然和股票自动算法交易一点关联都没有,但却可以用于预测金融市场的变动第15章提供了许多这方面的例子最广泛使用的Python ML程序库是scikit-learn下面的代码以高度简化的方式说明:ML 分类算法如何用来预测期货价格变动方向,并以这些预测为基础制定一个算法交易策略。

所有细节将在第15章中解释,因此这个例子相当简洁首先,导入数据,准备期货数据(定向滞后对数收益率数据)In [36]: import numpy as np import pandas

as pd In [37]: data = pd.read_csv(../../source/tr_eikon_eod_data.csv, index_col=

0, parse_dates=True) data = pd.DataFrame(data[AAPL.O]) ❶ data[Returns] = np.log(data

/ data.shift()) ❷ data.dropna(inplace=True) In [38]: lags = 6 In [39]: cols = []

for lag in range(1, lags + 1): col = lag_{}.format(lag) data[col] = np.sign(

data[Returns].shift(lag)) ❸ cols.append(col) data.dropna(inplace=True)❶ 选择苹果公司(AAPL.0)历史日终数据。

❷ 计算整个历史数据内的对数收益率❸ 生成带有定向滞后对数收益率数据(+1或者−1)的DateFrame列接下来,为支持向量机(SVM)算法、模型拟合和预测步骤实例化一个模型对象图1-2说明,根据预测买进和卖出苹果公司股票的基于预测交易策略的表现胜过被动的基准股票投资方法。

图1-2 基于ML的算法交易策略与被动基准投资的对比(苹果公司股票)In [40]: from sklearn.svm import SVC In [41]: model = SVC(gamma=auto

) ❶ In [42]: model.fit(data[cols], np.sign(data[Returns])) ❷ Out[42]: SVC(C=1.0, cache_size=200, class_weight=None, coef0=

0.0, decision_function_shape=ovr, degree=3, gamma=auto, kernel=rbf, max_iter=-1

, probability=False, random_state=None, shrinking=True, tol=0.001, verbose=False) In [43]:

data[Prediction] = model.predict(data[cols]) ❸ In [44]: data[Strategy] = data[Prediction] * data[Returns

] ❹ In [45]: data[[Returns, Strategy]].cumsum().apply(np.exp).plot( figsize=(10, 6)); ❺

❶ 实例化模型对象❷ 根据期货和标签数据(全部是定向的)拟合模型❸ 使用拟合模型创建预测(样本内),这同时是交易策略的头寸(买入或者卖出)❹ 根据预测值和基准对数收益率计算交易策略的对数收益率❺ 绘制基于ML交易策略表现与被动基准投资表现的对比曲线。

这里采用的简化方法没有考虑交易成本,也没有将数据集分为训练和测试子集但是,这个例子说明,至少从技术意义上,将ML算法应用到金融数据有多么简单在实践中,需要考虑一些重要的因素(参见Lopez de Prado(2018))。

人工智能优先金融学AI将像对待其他领域一样,重塑金融行业通过编程API功能可以取得大量金融数据,这成为了该领域的引擎第13章中介绍AI、ML和DL基本方法,并在第15章和第16章中将其应用到算法交易中不过,全面介绍人工智能优先金融学需要一本专门的图书。

作为数据驱动金融学的自然延伸,不管从研究还是从业者的角度,金融学中的人工智能当然也是一个令人痴迷和兴奋的领域本书在不同背景下使用了多种AI、ML和DL方法,但总体的焦点与本书的副标题相符,仍是数据驱动金融学所需的Python基本技术与方法。

不过,这些技术与方法对人工智能优先金融学同样重要1.5 结语Python作为一种语言,但更多的是作为生态系统,是金融业理想的技术框架它的特性中有许多好处,比如简洁的语法、高效的开发方法和原型化及生产的易用性等。

利用Python大量的可用库和工具,我们似乎能够应付当今金融业中分析、数据量和频率、依从性及监管所引发的大部分问题即使在较大型的金融机构中,它也具备提供单一、强大、一致性的框架,简化端到端开发和生产工作的潜力。

此外,Python已经成为人工智能、特别是机器与深度学习工作者选择的编程语言因此,Python对于数据驱动金融学和人工智能优先金融学来说也是合适的语言,这两种当今的趋势将从根本上重塑金融学和金融行业本文摘自《Python金融大数据分析 第2版》

金融科技算法交易量化金融教程书籍详细讲解使用Python分析处理金融大数据的专业图书将人工智能应用于金融开发的实战指南,金融应用开发领域从业人员的常备读物《Python金融大数据分析 第2版》分为5部分,共21章。

第1部分介绍了Python在金融学中的应用,其内容涵盖了Python用于金融行业的原因、Python的基础架构和工具,以及Python在计量金融学中的一些具体入门实例;第2部分介绍了Python的基础知识以及Python中非常有名的库NumPy和pandas工具集,还介绍了面向对象编程;第3部分介绍金融数据科学的相关基本技术和方法,包括数据可视化、输入/输出操作和数学中与金融相关的知识等;第4部分介绍Python在算法交易上的应用,重点介绍常见算法,包括机器学习、深度神经网络等人工智能相关算法;第5部分讲解基于蒙特卡洛模拟开发期权及衍生品定价的应用,其内容涵盖了估值框架的介绍、金融模型的模拟、衍生品的估值、投资组合的估值等知识。

相关推荐
四月实战公开课丨高效公式让小白也能做出大神级项目作品
目录: 1.四月攻势 2.四月战报 1.四月攻势 全世界风靡的网课  如何进行1V1、1VN通讯?  如何用C4D做出dribbble大神作…
头像
知识 2024-06-06
Python学习教程公开课:好玩的Python
目录: 1.python入门公开课 2.python讲课视频 3.python课程入门 4.python的优质课 5.python 课程真的…
头像
知识 2024-06-06
MIT Python 公开课第三课要点-算法是怎样演进的
目录: 1.python算法课程 2.python算法教程这本书怎么样 3.python 算法导论 4.python算法基础 5.pytho…
头像
知识 2024-06-06
MIT Python 公开课第四课要点-函数也是一个对象
目录: 1.mit python 2.mit python 公开课 3.mit python凯撒密码 4.mit python作业答案 5.…
头像
知识 2024-06-06
清华教授用了12小时讲完的Python,整整311集,拿走不谢!
目录: 1.清华大学python视频 2.清华python用什么课本 3.python清华大学学生用书 4.清华大学出版社python 5.…
头像
知识 2024-06-06
自学c4d要多久才能出去工作 学习c4d建模渲染
目录: 1.自学c4d需要多久 2.学好c4d需要多久 3.c4d自学能学会么 4.自学c4d能找到工作吗 5.c4d学多久可以找工作 6.…
头像
知识 2024-06-06