加载中…

加载中...

个人资料
faruto
faruto 新浪个人认证
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,144,854
  • 关注人气:2,115
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

《量化投资:以MATLAB为工具》连载(8)基于MATLAB的随机模拟

(2014-09-17 09:23:10)
标签:

matlab

quant

股票

金融

分类: 量化投资:以MATLAB为工具

《量化投资:以MATLAB为工具》连载(8)基于MATLAB的随机模拟

《量化投资:以MATLAB为工具》简介

         《量化投资:以MATLAB为工具》是由电子工业出版社(PHEI)下属旗舰级子公司——北京博文视点资讯有限公司出版的《量化投资与对冲基金丛书》之一,丛书主编为丁鹏博士,《量化投资:以MATLAB为工具》由李洋(faruto)、郑志勇(ArisZheng)编著,主要介绍MATLAB在量化投资中的具体应用。该书预计201410月上市,欢迎大家多多支持。在书籍上市之前,会在中国量化投资学会的各种网络平台进行系列连载介绍,方便读者提前一窥书籍概要。

 

《量化投资:以MATLAB为工具》连载(8)基于MATLAB的随机模拟

 

在金融中很多问题由于没有解析的数学方程或概率密度函数,再考虑到市场行情的变化莫测,风险即未来的不确定性无处不在。度量风险的主要方法之一便是随机模拟,例如期权定价、风险价值的计算等等。本章主要介绍概率分布、随机数生成、随机收益率与价格序列的生成等。

 

MATLAB统计工具箱中函数名以rnd三个字符结尾的函数用来生成常见分布的随机数,如表7-4所列

7- 4:生成常见一元分布随机数的MATLAB函数

函数名

   

调用方式

方式一

方式二

方式三

betarnd

Beta分布

R = betarnd(A,B)

R = betarnd(A,B,v)

R = betarnd(A,B,m,n)

binornd

二项分布

R = binornd(N,P)

R = binornd(N,P,v)

R = binornd(N,p,m,n)

chi2rnd

卡方分布

R = chi2rnd(V)

R = chi2rnd(V,u)

R = chi2rnd(V,m,n)

evrnd

极值分布

R = evrnd(mu,sigma)

R = evrnd(mu,sigma,v)

R = evrnd(mu,sigma,m,n)

exprnd

指数分布

R = exprnd(mu)

R = exprnd(mu,v)

R = exprnd(mu,m,n)

frnd

F分布

R = frnd(V1,V2)

R = frnd(V1,V2,v)

R = frnd(V1,V2,m,n)

gamrnd

Gamma分布

R = gamrnd(A,B)

R = gamrnd(A,B,v)

R = gamrnd(A,B,m,n)

geornd

几何分布

R = geornd(P)

R = geornd(P,v)

R = geornd(P,m,n)

gevrnd

广义极值分布

R = gevrnd(K,sigma,mu)

R = gevrnd(K,sigma,mu,M,N,)

R = gevrnd(K,sigma,mu,[M,N,])

gprnd

广义Pareto分布

R = gprnd(K,sigma,theta)

R = gprnd(K,sigma,theta,M,N,)

R = gprnd(K,sigma,theta,[M,N,])

hygernd

超几何分布

R = hygernd(M,K,N)

R = hygernd(M,K,N,v)

R = hygernd(M,K,N,m,n)

johnsrnd

Johnson系统

r = johnsrnd(quantiles,m,n)

r = johnsrnd(quantiles)

[r,type] = johnsrnd()

lognrnd

对数正态分布

R = lognrnd(mu,sigma)

R = lognrnd(mu,sigma,v)

R = lognrnd(mu,sigma,m,n)

nbinrnd

负二项分布

RND = nbinrnd(R,P)

RND = nbinrnd(R,P,m)

RND = nbinrnd(R,P,m,n)

ncfrnd

非中心F分布

R =

 ncfrnd(NU1,NU2,DELTA)

R =

ncfrnd(NU1,NU2,DELTA,v)

R =

ncfrnd(NU1,NU2,DELTA,m,n)

nctrnd

非中心t分布

R = nctrnd(V,DELTA)

R = nctrnd(V,DELTA,v)

R = nctrnd(V,DELTA,m,n)

ncx2rnd

非中心卡方分布

R = ncx2rnd(V,DELTA)

R = ncx2rnd(V,DELTA,v)

R = ncx2rnd(V,DELTA,m,n)

normrnd

正态分布

R = normrnd(mu,sigma)

R = normrnd(mu,sigma,v)

R = normrnd(mu,sigma,m,n)

pearsrnd

Pearson系统

r = pearsrnd(mu,sigma,skew,kurt,m,n)

[r,type] = pearsrnd()

poissrnd

泊松分布

R = poissrnd(lambda)

R = poissrnd(lambda,m)

R = poissrnd(lambda,m,n)

randg

尺度参数和形状参数均为1Gamma分布

Y = randg

Y = randg(A)

Y = randg(A,m)

Y = randg(A,m,n,)

Y = randg(A,[m,n,])

randsample

从有限总体中随机抽样

y = randsample(n,k)

 

y = randsample(population,k)

y = randsample(,replace)

y = randsample(,true,w)

raylrnd

瑞利分布

R = raylrnd(B)

R = raylrnd(B,v)

R = raylrnd(B,m,n)

trnd

t分布

R = trnd(V)

R = trnd(v,m)

R = trnd(V,m,n)

unidrnd

离散均匀分布

R = unidrnd(N)

R = unidrnd(N,v)

R = unidrnd(N,m,n)

unifrnd

连续均匀分布

R = unifrnd(A,B)

R = unifrnd(A,B,m,n,)

R = unifrnd(A,B,[m,n,])

wblrnd

Weibull分布

R = wblrnd(A,B)

R = wblrnd(A,B,v)

R = wblrnd(A,B,m,n)

random

指定分布

Y = random(name,A)

Y = random(name,A,B)

Y = random(name,A,B,C)

Y = random(,m,n,)

Y = random(,[m,n,])

 

以上函数直接或间接调用了rand函数或randn函数下面以案例形式介绍normrndrandom函数的用法。

 

蒙特卡罗方法于20世纪40年代美国在第二次世界大战中研制原子弹的曼哈顿计划计划的成员S.M.乌拉姆和J.·诺伊曼首先提出。数学家冯·诺伊曼用驰名世界的赌城摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神秘色彩。在这之前,蒙特卡罗方法就已经存在。1777年,法国数学家布丰(Georges Louis Leclere de Buffon1707—1788)提出用投针实验的方法求圆周率

蒙特卡罗方法的解题过程可以归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。 蒙特卡罗方法解题过程的三个主要步骤:

1)构造或描述概率过程

对于本身就具有随机性质的问题,如粒子输运问题,主要是正确描述和模拟这个概率过 程,对于本来不是随机性质的确定性问题,比如计算定积分,就必须事先构造一个人为的概率过程,它的某些参量正好是所要求问题的解。即要将不具有随机性质的问题转化为随机性质的问题。

2)实现从已知概率分布抽样

构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量),就成为实现蒙特卡罗方法模拟实验的基本手段,这也是蒙特卡罗方法被称为随机抽样的原因。最简单、最基本、最重要的一个概率分布是(01)上的均匀分布(或称矩形分布)。随机数就是具有这种均匀分布的随机变量。随机数序列就是具有这种分布的总体的一个简单子样,也就是一个具有这种分布的相互独立的随机变数序列。产生随机数的问题,就是从这个分布的抽样问题。在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。另一种方法是用数学递推公式产生。这样产生的序列,与真正的随机数序列不同,所以称为伪随机数,或伪随机数序列。不过,经过多种统计检验表明,它与真正的随机数,或随机数序列具有相近的性质,因此可把它作为真正的随机数来使用。由已知分布随机抽样有各种方法,与从(0,1)上均匀分布抽样不同,这些方法都是借助于随机序列来实现的,也就是说,都是以产生随机数为前提的。由此可见,随机数是我们实现蒙特卡罗模拟的基本工具。

3)建立各种估计量

 一般说来,构造了概率模型并能从中抽样后,即实现模拟实验后,我们就要确定一个随机变量,作为所要求的问题的解,我们称它为无偏估计。建立各种估计量,相当于对模拟实验的结果进行考察和登记,从中得到问题的解。

 

 

更多内容参见《量化投资:以MATLAB为工具》。

         该书预计201410月上市。

书籍交流论坛:MATLAB技术论坛读书频道《量化投资:以MATLAB为工具》专版,地址:http://www.matlabsky.com/forum-112-1.html

 

作者简介

李洋(faruto),中国量化投资学会专家委员会成员,MATLAB技术论坛(www.matlabsky.com)联合创始人,北京师范大学应用数学硕士,先后就职于私募、期货公司、保险公司,从事量化投资相关工作。十年MATLAB编程经验,对机器学习、量化投资等相关领域有深入研究,已出版《MATLAB神经网络30个案例分析》和《MATLAB神经网络43个案例分析》等书籍。

邮箱:farutoliyang@foxmail.com

微博:http://weibo.com/faruto

郑志勇(Ariszheng),中国量化投资学会专家委员会成员,方正富邦基金产品总监,北京理工大学运筹学与控制论硕士,先后就职于中国银河证券、银华基金、方正富邦基金,从事金融产品研究与设计工作。十余年MATLAB编程经验,专注于产品设计、量化投资等相关领域的研究,尤其对于各种结构化产品、分级基金产品有着深入的研究,已出版《运筹学与最优化MATLAB编程》和《金融数量分析:基于MATLAB编程》等书籍。

邮箱:ariszheng@gmail.com

微博:http://weibo.com/ariszheng

 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有