全文链接:tecdat.cn/?p=5620

在本文中随机进程对定量融资的许多方面都很有用,包含但不限于衍生品定价,危险管理和出资管理 点击文末“阅览原文”获取完好代码数据********

这些应用程序将在本文后面进一步具体评论。本节介绍了量化融资中运用的一些流行的随机进程及其在Python中的完成。

模型参数

模型参数类包含以下随机进程运用的所有参数。为了便于了解,这些参数的前缀是它们所用的随机进程的名称。随机进程的校准将触及寻觅与某些历史数据相符的参数值。

制作结果图

下面的代码运用Matplotlib来制作一组随机进程。

布朗运动随机进程

布朗运动是由悬浮在气体或液体中的颗粒体现出的随机运动。这种随机运动是由颗粒与液体或气体中的原子或分子磕碰引起的。布朗运动以植物学家罗伯特布朗的姓名命名,他调查了1827年的随机运动。

在实践中,布朗运动不用于模仿财物价格。我将其包含在内,因为它是本文中评论的每个其他随机进程的基础。

defplot_stochastic_processes(processes,title):
"""
此办法制作具有指定标题的随机进程列表
:return:制作两个图
"""
plt.style.use(['bmh'])
fig,ax=plt.subplots(1)
fig.suptitle(title,fontsize=16)
ax.set_xlabel('Time,t')
ax.set_ylabel('SimulatedAssetPrice')
x_axis=numpy.arange(0,len(processes[0]),1)
foriinrange(len(processes)):
plt.plot(x_axis,processes[i])
plt.show()

以下是此办法生成的输出示例。

defbrownian_motion_log_returns(param):

sqrt_delta_sigma=math.sqrt(param.all_delta)*param.all_sigma
returnnrand.normal(loc=0,scale=sqrt_delta_sigma,size=param.all_time)
defbrownian_motion_levels(param):

returnconvert_to_prices(param,brownian_motion_log_returns(param))

运用布朗运动随机进程模仿财物价格:5条途径

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据


点击标题查阅往期内容

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

Matlab马尔可夫链蒙特卡罗法(MCMC)估量随机动摇率(SV,Stochastic Volatility) 模型

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

左右滑动检查更多

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

01

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

02

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

03

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

04

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

运用布朗运动随机进程模仿财物价格:500条途径

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

几许布朗运动随机进程

几许布朗运动(GBM)由费舍尔布莱克和迈伦斯科尔斯推广,他们在1973年的论文“期权定价和公司负债”中运用它来推导出Black Scholes方程。几许布朗运动基本上是布朗运动,具有漂移重量和动摇率重量。公式如下

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

其间是财物价格S在时刻t的改变;是每年预期的百分比漂移,dt代表时刻,是财物价格中预期的每日动摇率,Wt是Wiener进程,也称为布朗运动。如下所示,布朗运动代码用于几许布朗运动办法以结构Wt的序列。

以下是此办法生成的输出示例。请注意,均匀而言,生成的途径跟着时刻的推移而向上漂移,而且或许的收盘价格改变较大。在这个比如中,途径以每年14%的均匀速率增长,因而预期收益率等于14%,分别为三年和一年(800天)。

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

运用几许布朗运动随机进程模仿财物价格。

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

Merton跳动分散随机进程

Robert C. Merton是最早解决Fisher Black和Myron Scholes提出的几许布朗随机进程中一些局限性的学者之一。1997年,默顿和斯科尔斯因其工作获得了诺贝尔经济学奖。

其间是具有速率泊松进程和是对数正态散布的随机变量。

请注意,因为跳动分散进程引入了向下的不接连或跳动,因而财物的均匀预期收益率略低。

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

运用默顿跳动分散几许布朗运动随机进程模仿财物价格。

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

Heston随机动摇率进程

原始的几许布朗运动随机进程假定随时刻的动摇是恒定的。在1990年代前期,Steven Heston放宽了这个假定,并将几许布朗运动模型扩展到包含随机动摇率。

请注意,跟着时刻的推移,财物价格会变得愈加不稳定,然后导致潜在财物价格在猜测结束时飙升。呈现这种现象是因为我将长时刻均匀动摇率设定为远高于开始动摇率的数字。

运用Heston随机动摇率几许布朗运动随机进程模仿财物价格。

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

COX INGERSOLL ROSS随机进程

在COX INGERSOLL ROSS(CIR)随机进程是用来描述一段时刻的利率改变。

其间是Wiener进程,a是进程均值回复的速率(较大的数字导致更快的均值回复进程),b是长时刻均匀利率,是进程的动摇率。CIR随机进程如下。

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

利用Cox Ingersoll Ross均值回归随机进程模仿利率。

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

ORNSTEIN-UHLENBECK随机进程

Ornstein Uhlenbeck进程以Leonard Ornstein和George Eugene Uhlenbeck命名。Ornstein Uhlenbeck随机进程与CIR进程之间的差异在于CIR进程将随机重量乘以前一个利率值的平方根。

其间是Wiener进程,a是进程均值回复的速率(较大的数字导致更快的均值回复进程),b是长时刻均匀利率,是进程的动摇率。

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

利用Ornstein Uhlenbeck均值回归随机进程模仿利率。

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

衍生品定价和套期保值的随机进程

随机进程在量化金融中的最大应用是衍生品定价。

当对衍生品进行定价时,大多数量子将运用两种办法中的一种。要么为他们定价树立Black Scholes模型,要么他们将运用模仿办法来估量导数的值。这两种技能都严重依赖于运用随机进程来模仿底层证券。

===

衍生定价办法一Black Schole

Black Scholes模型用于在一组假定下对特定类型的衍生品合约进行定价。这些假定包含:(1)存在无危险利率,任何金额能够借入或借出,(2)基础价格依据几许布朗运动随机进程,(3)进化基础不支付股息,(4)商场上没有套利机会,(5)商场交易成本为零,(6)能够买入或卖出任何数量。

在这些假定下,能够导出出名的Black Scholes偏微分方程。

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

Black Scholes公式以及各种形式期权定价公式的推导,是曩昔三十年中衍生品交易所很多增长的主要原因。

导数定价办法二 – 模仿办法

鉴于Black Scholes公式隐含的局限性和假定,一般选用蒙特卡罗办法(模仿)来为更少的简化假定。

这两个选项在核算复杂性和时刻之间进行权衡。每次想要对导数进行定价时,运用模仿办法核算复杂度更高,但是为代替随机进程推导Black Scholes偏微分方程的“等价”愈加耗时,然后依然找到关闭形式的衍生品定价式。因而,大多运用模仿办法。

想要这样做的原因如下图所示。事实上,你怎么挑选和校准你的随机进程将对期权的预期收益产生重大影响。

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

赤色椭圆形显示商场跳动的位置 。

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据
Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

===

运用衍生工具进行套期保值

套期保值是危险管理战略。可对冲危险包含股票危险,利率危险,钱银危险,信用危险,动摇危险和商品危险。套期保值是通过出资与出资组合中的基础负相关的财物来完成的。最简单的比如是在股票上买入看跌期权。当股票体现欠安时,看跌期权体现杰出,而全体出资组合并没有像没有对冲时那样糟糕。净效应是收益下降。

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

公司和基金将测验确认出资组合所面临的危险要素并对冲这些危险要素。

除了我上面提到的问题之外,还有一些额定的“实践世界”问题。一个比如是一般成本和套期保值程序的复杂性(套期保值或许十分昂贵)。关于安排而言,问题在于,在呈现不利损失的情况下,对冲危险或只是保留更多资本是否更合理。近年来,诸如Solvency II和Basel III等法规要求银行,对冲基金和保险公司预留更多资金来支撑其出资组合。储备一般保留在高流动性证券中,预期收益很低,如国库券。

结论

随机进程关于描述我们世界中的随机进程十分有用。它们用于工程,遗传学,物理学和定量金融。数量运用随机进程来猜测商场或许的报答和利率随时刻的改变。随机进程一般与蒙特卡罗办法结合运用。

十分感谢您阅览本文,有任何问题请在下面留言!

Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据

点击文末 “阅览原文”

获取全文完好代码数据资料。

本文选自《Python金融应用编程:衍生品定价和套期保值的随机进程》。

点击标题查阅往期内容

R言语核算资本财物定价模型(CAPM)中的Beta值和可视化
R言语中进行期权定价的Heston随机动摇率模型
R言语根据线性回归的资本财物定价模型(CAPM)
R言语对巨灾危险下的再保险合同定价研讨事例:广义线性模型和帕累托散布Pareto distributions剖析
R言语Black Scholes和Cox-Ross-Rubinstein期权定价模型事例
R言语用多元ARMA,GARCH ,EWMA, ETS,随机动摇率SV模型对金融时刻序列数据建模
R言语HAR和HEAVY模型剖析高频金融数据动摇率
R言语ARMA-GARCH-COPULA模型和金融时刻序列事例
R言语剖析负利率下金融商场:负利率和年金价值的改变
运用R言语随机动摇模型SV处理时刻序列中的随机动摇率
Python随机动摇率(SV)模型对标普500指数时刻序列动摇性猜测
R言语猜测动摇率的完成:ARCH模型与HAR-RV模型
R言语时刻序列GARCH模型剖析股市动摇率
R言语ARMA-EGARCH模型、集成猜测算法对SPX实践动摇率进行猜测