重庆大学统计建模与R软程报告模板

上传人:最*** 文档编号:11160756 上传时间:2020-04-20 格式:DOC 页数:35 大小:630KB
返回 下载 相关 举报
重庆大学统计建模与R软程报告模板_第1页
第1页 / 共35页
重庆大学统计建模与R软程报告模板_第2页
第2页 / 共35页
重庆大学统计建模与R软程报告模板_第3页
第3页 / 共35页
点击查看更多>>
资源描述
精选资料Monte-Carlo方法在期权定价中的应用王秋菊200723162012-3-23摘 要400字以内关键词:5个以内报告要求:(完成报告后删去此要求)1. 题目、作者、学号、时间、摘要、关键词2. 目录要有超链接3. 目录中包括绪论及参考文献4. 整个报告控制在5-20页以内,正文字体用小四宋体5. 此篇文章的内容大家不用关心,参照其格式写作报告6. 报告在本门课程中所占分值:30分7. 报告截止日期:2012-5-13可修改编辑精选资料可修改编辑精选资料目 录1 绪论11.1期权定价的研究和发展11.2期权定价的基本思想12 期权定价的基本模型32.1 B-S期权定价模型32.1.1 模型假设32.1.2 模型建立42.2 蒙特卡洛方法52.2.1 方法背景和思想52.2.2 MC方法的运用63 方差减少技术83.1 方差减少技术背景研究83.2 对偶变量94 数据模拟114.1 三种方法的期权价格模拟(程序见附录A)114.2 标准误差分析(程序见附录A)134.3方差减少技术效果分析(程序见附录B)145 结论及对该模型的评价19参 考 文 献20附录A:21附录B:25精选资料1 绪论1.1期权定价的研究和发展期权是指购买方支付一定的期权费后所获得的在将来允许的时间或买或卖一定数量的基础商品的选择权。一般而言,在期权市场上有两种期权形式,一种是欧式期权,一种是美式期权。前者是指能在到期日执行的期权,后者是指在到期日之前任何一天均能执行的期权。期权是一种特殊的只是权力没有义务的金融合同。而期权价格除了和基础商品的价格和时间长短有关外,也与大众市场心理有密切关系换句话说也就是一个大众信心市场。因此期权价格也是期权合约中唯一一个随市场供求变化(供求变化与大众对价格跌涨的信心直接相关)而改变的变量,它的高低将直接影响买卖双方的盈亏状况,是期权交易的核心问题。在国际衍生金融市场的形成和发展过程中,期权的合理定价也是困扰投资者的一大难题。在1900年法国金融专家劳雷斯巴舍利耶发表的第一篇关于期权定价的文章。此后,各种经验公式或计量定价模型纷纷面世。但由于期权定价的复杂性导致的种种局限而难以得到普遍认同。但是随着期权市场的迅速发展,计算机和先进通讯技术的应用,复杂的期权定价公式的运用成为可能,70年代后期权定价理论的研究取得了突破性进展。第一个完整的期权定价模型由Fisher Black和Myron Scholes创立并于1973年公之于世,布莱克斯克尔斯期权定价模型发表的时间和芝加哥期权交易所正式挂牌交易标准化期权合约几乎是同一时间1。不久,德克萨斯仪器公司就推出了装有根据这一模型计算期权价值程序的计算器。现在,几乎所有从事期权交易的经纪人都持有各家公司出品的此类计算机,利用按照这一模型开发的程序对交易估价。这项工作对金融创新和各种新兴金融产品的面世起到了重大的推动作用。而在过去的20年中,投资者通过对该模型的运用,将这一抽象的数字公式转变成了大量的财富。瑞士皇家科学协会(The Royal Swedish Academyof Sciencese)也称数学家费雪布莱克(Fischer Black)和斯克尔斯在期权定价方面的研究成果是今后25年经济科学中的最杰出贡献。与此同时,默顿也发现了同样的公式及许多其它有关期权的有用结论,扩展了原模型的内涵,使之同样运用于许多其它形式的金融交易2。在1979年,约翰考克斯(John Carrington Cox)、斯蒂芬罗斯(Stephen A. Ross)、马克鲁宾斯坦(Mark Rubinstein)的发表了论文期权定价:一种简化方法提出了二项式模型(Binomial Model),该模型建立了期权定价数值法的基础,解决了美式期权定价的问题。1.2期权定价的基本思想期权定价模型主要是基于对冲证券组合的思想。该对冲思想主要运用的是风险中性原理即通过对期权和股票的组合实现未来现金流的稳定,假设此时投资者的都没有了风险收益,期权股票间的对冲能完全实现风险的“消失”。投资者可建立期权与其标的商品的组合来保证确定的报酬,在均衡时该确定报酬就是无风险利率。期权的这一定价思想与无套利定价的思想是一致的。下面具体解释无套利均衡分析4。所谓套利就是利用不同市场上价格的不一致,在低价市场上买进到高价市场上卖出,从中赚取价差。而这种套利的会使得低价市场上产品的需求增加,价格升高;高价市场上产品的供给增加,价格降低。套利使得数量价格机制和供求分析不起作用,因此我们需要不断地寻找其他的解决方法,这时无套利分析方法开始出现了,它与供求均衡的分析方法不同。无套利的分析方法具有非常简单的基本思想,利用此种分析方法投资只需要确定某种资产的价格在多少时,市场中才不会出现套利的机会。无套利分析方法就不再考虑价格运动后面的数量变化,而是将市场价格作为输出变量;同时因为金融产品之间具有高度的可替代性(金融市场上的供给在很多时候都可以认为是无限的,也就是说,金融市场上的供给曲线在很多时候都是水平的,因此金融研究者的目光不得不转向金融市场的需求方),投资者何时都可以作为供给方或者需求方。不同金融产品的相对的价格水平是投资者最关心的问题无套利分析的核心是“相对定价”。同时无套利分析通过在衍生品定价中的广泛运用,清楚的说明了在近同学方面,研究对象的方法和特点是互动的。衍生品的冗余证券性质决定了其可替代证券的存在,而相应的无套利分析必然成为定价分析的核心。总之无套利定价就是说如果投资是非零投入,得到的回报只能与该项投资的风险平均水平持平,而不能获得超额回报,其中超额回报是指超过风险水平的报酬的利润。相反,任何投资如果是零投资只能得到零回报精选资料2 期权定价的基本模型2.1 B-S期权定价模型2.1.1 模型假设 1、金融资产收益率服从对数正态分布。这包括股票价格连续变化;在整个期权生命期内,股票的预期收益方差保持不变; 任何时间段股票的收益和其他时间段股票的收益互相独立;任何时间段股票的复利收益率服从正态分布;即有2、在期权有效期内,无风险利率和金融资产收益变量是恒定的;并且利率始终按照确定无风险利率连续复利计算。 3、市场无摩擦。包括不存在税收和交易成本;所有资产可以无限细分;没有卖空限制。 4、金融资产在期权有效期内无红利及其它所得(该假设后被放弃); 5、该期权是欧式期权,即在到到期权到期日才能执行的期权。在以上所以假设条件下,股票价格的运动遵循一种类似带漂流的几何布朗运动的规律,在数学上也称作伊藤过程的一种随机变量。可以表示为其中S是标的物(股票)的价格;是所谓的漂流率,所以是连续计算收益率的股票在单位时间内收敛的预期收益率。而即是连续计算收益率的股票在单位时间内收益率的自然对数的数学期望值;是波动率,即连续计算收益率的股票在单位时间内收益的自然对数的标准差;是布朗运动的一种随进过程,满足标准的正态分布,数学期望值为0,方差为1。2.1.2 模型建立布莱克-斯克尔斯期权定价模型采用的是经典的动态无套利均衡分析技术,通过确定上述假设条件,采取一种动态交易的策略达到复制欧式买式期权的期末现金流的结果。即期初t=0时购买一种证券组合,这种证券组合是有无风险证券构成的,和一个由标的物股票,然后通过其头寸的不断动态调整,使无套利的均衡关系保持住,一直持续至到期日t=T。这样t=0时刻的欧式期权的价值与复制组合在t=0时刻的价值是相等的。这一过程有以下特点:1 与复制1份欧式期权买权相比,股票的头寸始终小于1股。2 所对应的股票头寸的大小称为套头比或期权的,表示买权和卖权。3 套头比不停地发生变化,所以为了复制1份期权,需要随时调整复制组合中股票的头寸,但这种是无成本的调整。简而言之,这一动态复制过程就是用期权、标的物股票和一种无风险证券来组合成为一个无套利均衡组合头寸。动态调整组合头寸使之保持无套利均衡规律的随机微分方程为:按照期权到期时的情况可以定义出这个微分方程的终端条件如下:当t=T时,对于买权来说,有;对于卖权来说,有;其中X是期权中预先指定的标的物的价格(预定执行价)。根据上述提到的终端条件,就可以通过逆向得出关于上述微分方程的初始值得表达式,就得出布莱克-斯克尔斯期权定价公式:式中c、p当前的期权价格S(t)t时刻的股票价格N(d)标准正态分布小于d的概率X执行价格e2.71828,自然对数的底离散时间的收益率T期权到期时间In自然对数函数股票连续复利的年收益率的标准差期权价格并不完全取决于股票的期望收益率。实际上该公式中已经包括了股票价格的信息,而股票的价格与股票的风险特性有关。该模型还需进一步解释的问题:第一,该模型中无风险利率必须是连续复利形式。一个简单的或不连续的无风险利率(设为r0)一般是一年复利一次,而r要求利率连续复利。r0必须转化为r方能代入上式计算。两者换算关系为:r=LN(1+r0)或r0=Er-1。例如r0=0.06,则r=LN(1+0.06)=0853,即100以583%的连续复利投资第二年将获106,该结果与直接用r0=0.06计算的答案一致。 第二,期权有效期T的相对数表示,即期权有效天数与一年365天的比值。如果期权有效期为100天,则T=100365=0.274。 2.2 蒙特卡洛方法2.2.1 方法背景和思想Monte Carlo方法,又称Monte Carlo模型,或统计试验方法或随即模拟,亦或称计算机随机模拟方法,所谓模拟就是把某一现实的或抽象的系统的部分状态或特征等,用另外一个模拟系统,常称为模型,来代替或者模仿,在模型上做实验通称为模拟实验,而自己所建造的模型叫做模拟模型。Monte Carlo 是摩纳哥国的世界著名赌城,二战期间,Von Neumann和Ulam把他们所从事的秘密与胭脂原子弹有关的一些工作以赌城为代号。他们对裂变中的中字的随机扩散分析,计算。这个就是与原子弹有关的“曼哈顿计划”。 Monte Carlo方法的有关思想被人们发现的很早,这种思想的应用时间也比较久远,直到19世纪40年代后,计算机的迅速发展推动了这一思想的大量应用。从而极大地提高了这一思想应用范围和效果。MC方法的基本思想是:将随机事件的模拟与时间的概率特征等数学特性联系起来,利用做试验的方式来确定各种事件的数学期望和相应的概率。所以,MC方法的一个突出的特点就是利用很多次试验的方法来确定所需要的数学期望和概率,而不是通过数学公式计算得到的。MC方法通过计算机产生的大量随机数,相当于进行了大量的试验,最后通过实验数据总结计算。这种方法的计算量是很大的。所以计算机快速发展是MC方法应用的一大优势。随着计算机技术的发展,MC方法得以在现代金融学中得到大量运用。因为作为试验模型的连续变量,证券定价的基础与基本状态通常是随机过程。蒙特卡洛法很自然地把证券定价问题转到期望上。一般来说该方法按以下步骤进行;1、 根据风险中性测度模拟样本路径的状态变量(如:标的资产的价格与利率)超过有关时间的界线。2、 评估每一条有价证券的贴现现金流路径,视每种有价证券的复杂程度而定。3、 找出贴现现金流超平均值的样品的路径。在实践上,这种方法就是计算一个多维积分预期贴现支付的价值在多维空间的样品的路径。这个多维积分大大增加了衍生证券的复杂性,同时也有了评估非线性积分的需要。2.2.2 MC方法的运用蒙特卡罗方法能顺利解决“维数爆炸”的问题。假设要积分的方程式在N维空间的单位超立方体网络。简单的(或原油)蒙特卡罗方法估计的积分等于方程式从n点选择的单位随机变量的平方的超立方体网络的均值。从大量的强大数定律证明这个估计值随著n趋于无穷多时收敛于被积函数的真实值。此外,中心极限定理证明标准差估计为趋向于零。因此我们的问题是错误收敛速度是独立的标准,并且该方法明显优于古典的数值积分方法。唯一的不足在于方程式必须是方形可积的,但这是一个相对温和的限制。我们用MC方法计算欧式看涨期权,我们假设可以产生一个独立标准正态随机变量序列:,每个随机变量的均值为1,方差为0,我们可以得到产生的方法,这样我们就可以用以下的方法估计对于产生的令 则对于任意,估计值是无偏的。因此的期望为根据相合性我们可知当时,同时根据中心极限定理可知1415:当n达到足够大的时候,我们可以得点估计量补充一个置信区间:令 为的标准差,表示标准正态分布的分位数,则95%的置信区间为 (,)方差为可修改编辑精选资料3 方差减少技术3.1 方差减少技术背景研究假设我们需要计算一个参数,例如,而该参数是一种衍生证券的价格。如果我们通过蒙特卡罗方法能产生一个序列为,该序列的每个期望值为,方差为。因此一个自然的基于n个估计值为其均值;由中心极限定理可知,对包含大量样本(时)的样本,近似正态分布13或者;其中为样本均值。显然的均值为,方差为,概率误差的置信区间可以正态逼近并且与估计量成正比为。因此降低10倍的标准差为,或者增加100倍的样本数可以达到同样降低误差的效果。假设,现在我们要在两种类型的蒙特卡洛方法中做出选择,我们表示为和,并且两种方法都是无偏估计,同时均值相同。但,。由前面我们知道n次重复的的样本均值比n次重复的的样本均值更精确。同时生成n次重复的可能会比生成n次重复的花费更多的时间;如何找到足够的理由说明一个估计量超过另一个时取得较小的方差。我们按如下步骤比较不同计算要求的估计值和不同的方差。假设所需产生一个复制的是一个常量(在某些情况下,每次复制都是随机的;并且假定它是常数能简化讨论。)与计算的时间t,重复的的数量可以表示为;为了简单起见,我们放弃了和对比率的探讨,并且假设它们都是整数。若这两个有效估计的计算时间为t,则:和对于更大的t,这些趋向于正态分布的均值为,而标准差为和因此,对于更大的t,第一次估计值优先第二次,当 (1)时。(1)为减少方差和计算要求提供了一个坚实的基础。通过前面的讨论中得出了(l),同时以结果的方差和每次工作的时间作为衡量效率是很有道理。利用效率为比较基础,低方差估计应该只有在方差比小于工作比时才有效。同样,一个高方差估计实际上可能在需要更少的时间来产生时才有效。简而言之,减少方差是能够提高计算效率的。3.2 对偶变量查阅文献可知,对偶变量是一个在金融定价问题上最简单、最广泛使用的技术方法。以下我用一个简单的例子说明。前面我们已经介绍了布莱克-斯科尔斯定价模型。在布莱克-斯科尔斯模型中股票价格遵循一个符合对数的正态扩散,该终端的股票价格独立复制在风险中性测度即可来自于公式是当前股票价格,是无风险利率,是股票波动性,T是期权到期日,是独立标准正态分布。基于n次重复,一个跳跃的无偏估计量的期权价格为K1在这样的情况下,对偶变量方法是基于符合标准正态分布的观察数据,并且也如此。由(2)我们可知价格公式为,我们将带入公式可以得到对偶的样本,从而得到期末的股价分布情况。同样地,每个是一种无偏估计量的期权价格,因此,导致我们选择的决定性因素是因为随机输入的n对对偶序列比2n独立样本的分布更有规律。特别需要指出的是,对偶序列的样本平均值总等于0,而在有限多个独立样本均值几乎是肯定不等于0的。如果输入更多的正常信号,则输出的更可能是较有规律。事实上,一个大的可以引起一的大的正如一个小的导致一个小的 一个比较效率更精确的论点。因为和有相同的方差,因此,如果,则我们可以得到 。然而,是的两次复制,所以我们必须说明计算要求的差异。由于的每次复制引起的时间变化是微不足道的一小部分 (这通常会视情况而定,因为定价是一个更为复杂的选择),那么产生所需时间大约只是产生的一半。从而为了提高效率,我们要求其中,前面公式,简化要求为我们就很容易就遇到的情况进行论证。我们规定使得;是从到股票价格和期权股票价格到期权盈利贴现的映射。做为两组增加的公式,是单调的,所以是一个标准不等的也就是,因此我们可以推断对偶变量是有用的。可修改编辑精选资料4 数据模拟以下所有结果均为MATLAB编程的运行结果。所涉及的原理见前面的叙述,详细程序见附录。4.1 三种方法的期权价格模拟(程序见附录A)参数定义:样本数M有10,100,1000,10000,100000五个循环。假设期权到期日 T=1; 时间t从0到1间计算了个点作为画图的基准点。(对于MC方法来说每个点的值都是M个样本数的均值)现在期权价值S0=100; 股息生息率q=0;期权到期日之前的无风险连续复利利率r=0.10;年度资产价格波动sigma=0.2; 行权价格K=100;看涨期权或看跌期权的随机数为绝对值小于等于1的随机数。运行结果为:图1图1分别画出三种方法(crude MC,antithetic MC,Blsprice)下的欧氏期权价格。时间方向上有N=26=64个点,也就是有64个期权价格。我们以Blsprice(布莱克-斯克尔斯期权定价公式)根据六个变量(S0,K,r,Time,sigma,q)计算得出的期权价格作为精确解,图中红色表示。可以观察得出随着时间的延长,期权价格逐渐上升。上升的价格中包含货币的时间价值和股票价格波动性(一般情况下时间越长波动性越大),这与现实生活中的情况是吻合的。同时也观察得出用crude MC(原始蒙特卡洛方法,即不带任何方差减少技术的MC方法,图中用蓝色表示)模拟得出的期权价格和Blsprice得出的价格差距不大,说明crude MC方法的确能够有效模拟期权价格的变化趋势。图中用黑色-表示antithetic MC方法。总的来说crude MC方法和antithetic MC方法都较好地逼近精确解Blsprice。从该图中可以看出crude MC方法和antithetic MC方法都能很好的模拟期权的价格。下面:比较程序所用时间Time_crude_antithetic = 0.0002 0.0001 0.0007 0.0010 0.0081 0.0058 0.0541 0.0617 0.5305 0.6703其中行表示不同样本数M=(10,100,1000,10000,100000)次模拟所花的时间。第一列表示的是crude MC方法,第二列表示的是antithetic MC方法。可以看出用crude MC和antithetic MC所花的时间都差不多。下面计算随着M值得增加所花时间增加的倍数。Time_ratio = 3.6439 6.7146 10.8671 5.8671 6.6742 10.6023 9.8032 10.8585Time_ratio中的元素是由Time_crude_antithetic中后行元素除以前行元素所得到的结果。Time_ratio说明随着M值的增加,时间大致也是成10倍地增加。4.2 标准误差分析(程序见附录A)误差分析采用了两个误差。一个是最大绝对值误差,一个是RMS(RMS 表示 root mean square)相对误差。同时所有误差都是以布莱克-斯科尔斯期权定价公式计算得出的结果为精确值。同时所作的图形是以loglog函数,对于该函数的具体说明如下:两边同时取对数可得:即: 其中:有了前面的推导,我们已知,因此误差应该是按照-1/2阶收敛的。图2画的是欧式看涨期权的各种误差趋势图,其参数设置为MM;T=1; N=26; S0=100; q=0; r=0.10; sigma=0.2; K=100; call_put=1;其中Error_inf_c=norm(w1-Blsprice,inf); crude MC方法的最大绝对值误差Error_inf_a=norm(w2-Blsprice,inf); antithetic MC方法的最大绝对值误差RMS_relative_error_c=sqrt(mean(w1-Blsprice)./Blsprice).2); crude MC方法的RMS相对误差RMS_relative_error_a=sqrt(mean(w2-Blsprice)./Blsprice).2); antithetic MC方法的RMS相对误差Reference画的是M,M.(-1/2)。它展示的是理论上的-1/2收敛阶。图2图2画的是误差的loglog plot。 从图2可以看出四种误差均是-1/2阶收敛的,同时通过比较可以得到以下结论:1:最大绝对值误差都比RMS相对误差要大;2:不管是最大绝对值误差还是RMS相对误差,由antithetic MC得到的误差均要比由crude MC得到的误差要小。单从误差分析这方面可以说明使用antithetic variate方差减小技术还是有用的。只是效果只好了一点点。对于这样的结论当然不是我们最想要的那个结果,因此我们需要进一步论证使用antithetic variate方差减小技术的效果。4.3方差减少技术效果分析(程序见附录B)参数定义:n=100;评估一个期权的次数 q=0;股息率m=10000; 仿真试验的数量,每一个基于n次重复。总次数= m * n.Sigma=0.2,0.4,0.6; 年度资产价格波动率Ratio=0.9,1.0,1.1 ; 比率=S0/KT=0.2; 期权的有效期限 K=100;期权行使权的价格r=0.10;期权存续期内连续复利计算的无风险利率call_put=1; 期权看涨看跌指标,1表示看涨期权; 2表示看跌期权alpha=0.05 ;置信度=1-alpha运行结果:欧式看涨期权的标准误差 表1No variance reductionAntithetic method0.20.91.01.10.24310.61680.91370.78401.22961.64011.40231.90302.39640.23030.41130.24630.70730.92290.88071.24131.50981.60010.40.91.01.10.60.91.01.1表1展示的是欧式看涨期权的标准误差,值得说明的是:由于每次产生的随机数不可能完全一样,因此每次运行的结果都不尽相同。比较结果不难发现Antithetic method比No variance reduction的标准误差都要小。不同方法的运行时间 表2Time_blspriceTime_cTime_a0.20.91.01.10.00320.00190.00200.00200.00190.00200.00230.00200.00200.11350.10680.10650.11120.11400.12010.11260.11430.11360.14510.14400.14600.40.91.01.10.14360.14670.14480.60.91.01.10.15090.14640.1502表2表示的是不同方法的运行时间,从Time_c和Time_a来看,两者相差不大,Time_c比Time_a所花时间要少一点。但是两者所用时间都比用BS期权定价公式所用的时间要多得多。关于置信度1-alpha=0.95。我们也统计了模拟的实际数PERCENT1 = 0.9559 0.9491 0.9528 0.9505 0.9518 0.9512 0.9532 0.9524 0.9500PERCENT2 = 0.9530 0.9475 0.9517 0.9513 0.9557 0.95050.9492 0.9490 0.9532其中PERCENT1表示的是用crude MC方法统计的的频率。行表示分别取0.2,0.4,0.6。列表示的是的值,分别为0.9,1.0,1.1。而PERCENT2表示的是antithetic MC方法统计的频率,行列同上。PERCENT1和PERCENT2的值都接近于0.95。说明是大致成立的。同时对两种方法的集中程度也作图说明参数定义:Sigma=0.6Ratio=1.1图3图3可以清楚的得知当以Blsprice 为期权精确值时,价格为18.0928。此时antithetic MC方法模拟的结果大致为13-25这个区间,crude MC 方法模拟的结果大致为10-28这个区间。Antithetic MC 方法得出的结果区间显然比 crude MC 方法得出的结果区间要小,也就是说antithetic MC 方法的模拟效果更好。为了更好的说明antithetic MC 方法和crude MC 方法所得结果的离散性,图4画出了正态分布图:参数设置与图3相同。图4图4比较清楚的说明了当期权价格为18.0928时,用antithetic MC方法和用crude MC方法模拟的结果密度分布图,我们可以清晰的看出antithetic MC方法的正态分布更加集中,这说明用antithetic MC方法比用crude MC方法模拟集中程度更好。可修改编辑精选资料5 结论及对该模型的评价通过上面的分析我们可以得出以下结论:1、蒙特卡洛方法能够很好的模拟期权定价过程,能够用于期权定价计算中。2、通过减少方差的确能够提高欧式期权定价的效率。3、对偶变量方法可以有效提高欧式期权定价的效率。值得注意的是这种单一性严重违反了一些特殊期权(例如:看涨、看跌期权),这样或多或少会影响对偶变量的效果。同时在计算对偶变量的置信区间时,估计样本标准误差时使用的是n对的均值的标准偏差而不是2n个独立序列。因为n对序列是独立的,而2n个独立序列却不是。通过该实证分析我们可以放心的运用对偶变量方法和蒙特卡洛方法计算期权价格了。但是我们还是应该注意一般现在都假设股票价格还带有一定的跳跃性(一般用表示股票价格的跳跃程度,则股票价格后面会加上,其中是一个泊松过程)。本文中我没有考虑股票价格的跳跃性,这与现实生活中不是很相符合。可修改编辑精选资料可修改编辑参 考 文 献1 P. Boyle, M. Broadie, and P. Glasserman, Monte Carlo methods for security pricing, J. Econom. Dynam. Control, Vol. 21 (1997), pp. 12671321.2 C. Elman, J. Silvester, and J. Wathen, Finite Elements and Fast Iterative Solvers: with Applications in Incompressible Fluid Dynamics, Oxford University Press, Oxford, 2005.3 L. Feng and V. Linetsky, Pricing options in jump-diffusion models: an extrapolation approach, Operations Research, Vol. 56 (2008), pp. 304325.4 P. Glasserman, Monte Carlo Methods in Financial Engineering, Springer-Verlag, New York, 2004.5 J. Hull, Options, Futures and Other Derivatives, 7th edition, Pearson Prentice Hall, Canada, 2009.6 王学民. 应用多元分析. 第三版. 上海财经大学出版社, 2009.7 薛毅, 陈立萍. 统计建模与R软件. 清华大学出版社, 2009.8 杨虎, 刘琼荪, 钟波. 数理统计. 高等教育出版社. 2004.可修改编辑精选资料附录A:主程序clear; clc;MM=1e1 1e2 1e3 1e4 1e5 % number of sample paths 1e1 1e2 1e3 1e4 1e5L_MM=length(MM);T=1; % time to expiration of the optionN=26; % number of time points in 0,Tdt=T/N; % time stepsTime=(1:N)*dt; % time pointsS0=100; % current/initial price of the underlying asset.q=0; % dividend yieldr=0.10; % continuously compounded risk-free rate of return over the life of the optionsigma=0.2; % annualized asset price volatility (annualized standard deviation of the continuously compounded asset return)K=100; % strike/exercise price of the optioncall_put=1; % 1 for call; 2 for putrandn(state,1);Error_inf=zeros(L_MM,2); RMS_relative_error=zeros(L_MM,2);Time_crude_antithetic=zeros(L_MM,2); Time_ratio=zeros(L_MM-1,2); % Black-Scholes put and call option pricingtic;Call,Put=blsprice(S0,K,r,Time,sigma,q);if call_put=1 % call Blsprice=Call;else % call_put=2, put Blsprice=Put;endtime_blsprice=tocw1_=cell(1,L_MM); w2_=cell(1,L_MM);for im=1:L_MM M=MM(im); fprintf(In this cycle M=%d.n,M) TIME=ones(M,1)*Time; % M*N matrix Z=randn(M,N); w1,time1=w_MC(S0,r,sigma,TIME,Z,call_put,K); w2,time2=w_MC_antithetic(S0,r,sigma,TIME,Z,call_put,K); Time_crude_antithetic(im,1)=time1; Time_crude_antithetic(im,2)=time2 w1_1,im=w1; w2_1,im=w2; Error_inf(im,1)=norm(w1-Blsprice,inf); Error_inf(im,2)=norm(w2-Blsprice,inf); RMS_relative_error(im,1)=sqrt(mean(w1-Blsprice)./Blsprice).2); RMS_relative_error(im,2)=sqrt(mean(w2-Blsprice)./Blsprice).2);endfprintf(display the resultsn)format short eError_infRMS_relative_errorformattime_blspriceTime_crude_antitheticTime_ratio=Time_crude_antithetic(2:end,:)./Time_crude_antithetic(1:end-1,:)figureplot(Time,w1,b-,Time,w2,k-,Time,Blsprice,r:);legend(crude MC,antithetic MC,Blsprice,2);title(European option prices using different MC methods); xlabel(Time); ylabel(Option prices);% Least squares fit of error = C * htq %A = ones(L_MM,1), log(MM); b=log(Error_inf), log(RMS_relative_error);sol = Ab;sol_error=A*sol-b;resid=norm(sol_error(:,1),norm(sol_error(:,2),norm(sol_error(:,3),norm(sol_error(:,4); qr_inf_c_a_RMSr_c_a=sol(2,:);residfigureloglog(MM,Error_inf(:,1),b*-,MM,Error_inf(:,2),c.-,MM,RMS_relative_error(:,1),go-,MM,RMS_relative_error(:,2),k+-,MM,MM.(-1/2),r:);%axis(10-4 106 10-4 106);legend(Error_inf_c,Error_inf_a,RMS_relative_error_c,RMS_relative_error_a,reference);title(loglog plot of the error); xlabel(M); ylabel(Error);子程序:function w,time=w_MC(S0,r,sigma,TIME,Z,call_put,K)tic;S_TIME=S0*exp(r-sigma2/2)*TIME+sigma*sqrt(TIME).*Z);if call_put=1 % call Price=exp(-r*TIME).*max(S_TIME-K,0);else % call_put=2, put Price=exp(-r*TIME).*max(K-S_TIME,0);endw=mean(Price);time=toc;function w,time=w_MC_antithetic(S0,r,sigma,TIME,Z,call_put,K)tic;Z=Z(1:end/2,:); TIME=TIME(1:end/2,:); S_TIME1=S0*exp(r-sigma2/2)*TIME+sigma*sqrt(TIME).*Z);S_TIME2=S0*exp(r-sigma2/2)*TIME+sigma*sqrt(TIME).*(-Z);if call_put=1 % call Price1=exp(-r*TIME).*max(S_TIME1-K,0); Price2=exp(-r*TIME).*max(S_TIME2-K,0); Price=(Price1+Price2)/2;else % call_put=2, put Price1=exp(-r*TIME).*max(K-S_TIME1,0); Price2=exp(-r*TIME).*max(K-S_TIME2,0); Price=(Price1+Price2)/2;endw=mean(Price);time=toc;附录B:主程序clear; clc;n=100; % number of replications to evaluate one optionm=1e4; % number of simulation trials, each one based on n replications. Total replications=m*n.Sigma=0.2,0.4,0.6 % annualized asset price volatility Ratio=0.9,1.0,1.1 % Ratio=S0/KL_Sigma=length(Sigma); L_Ratio=length(Ratio);T=0.2; % time to expiration of the optionK=100; % strike/exercise price of the optionr=0.10; % continuously compounded risk-free rate of return over the life of the optionq=0; % dividend yieldcall_put=1; % 1 for call; 2 for putalpha=0.05 % degree_of_confidence=1-alpharandn(state,1);Time_c=zeros(L_Sigma,L_Ratio); Time_a=zeros(L_Sigma,L_Ratio); Time_blsprice=zeros(L_Sigma,L_Ratio); SE_c=zeros(L_Sigma,L_Ratio); SE_a=zeros(L_Sigma,L_Ratio); PERCENT1=zeros(L_Sigma,L_Ratio); PERCENT2=zeros(L_Sigma,L_Ratio); BLSPRICE=zeros(L_Sigma,L_Ratio); for is=1:L_Sigma sigma=Sigma(is); % annualized asset price volatility for ir=1:L_Ratio S0=K*Ratio(ir); % current/initial price of the underlying asset. fprintf(In this cycle sigma,S0=%d,%d.n,sigma,S0) % Black-Scholes put and call option pricing tic; Call,Put=blsprice(S0,K,r,T,sigma,q); if call_put=1 % call Blsprice=Call; else % call_put=2, put Blsprice=Put; end Time_blsprice(is,ir)=toc BLSPRICE(is,ir)=Blsprice; % Monte-Carlo simulations TIME=T*ones(n,m); % n*m matrix Z=randn(n,m); w1,Time_c(is,ir),SE_c(is,ir)=w_crude_SE(S0,r,sigma,TIME,Z,call_put,K,n); w2,Time_a(is,ir),SE_a(is,ir)=w_antithetic_SE(S0,r,sigma,TIME,Z,call_put,K,n); Time_c Time_a PERCENT1(is,ir)=degree_of_confidence(w1,Blsprice,alpha,SE_c(is,ir),m); PERCENT2(is,ir)=degree_of_confidence(w2,Blsprice,alpha,SE_a(is,ir),m); endendfprintf(display the resultsn)format longBLSPRICEformatSE_cSE_aTime_blspriceTime_cTime_aPERCENT1PERCENT2figureplot(w1,0*ones(m,1),b.,w2,1*ones(m,1),g.,Blsprice,Blsprice,0,1,r*);legend(crude MC,antithetic MC,Blsprice,2);xmin=min(w1;w2)-1; xmax=max(w1;w2)+1; ymin=-1; ymax=2;axis(xmin xmax ymin ymax);title(European option prices using different MC methods); xlabel(Option prices); ylabel(y);figuref1,xi1 = ksdensity(w1); f2,xi2 = ksdensity(w2); plot(xi1,f1,b.,xi2,f2,g.); hold on;fmax=max(f1,f2);plot(Blsprice*ones(2,1),0,fmax,r-); hold off;legend(crude MC,antithetic MC,Blsprice,2);title(Density plots of different MC methods); xlabel(x); ylabel(density);子程序:function w,time,SE_c=w_crude_SE(S0,r,sigma,TIME,Z,call_put,K,n)tic;S_TIME=S0*exp(r-sigma2/2)*TIME+sigma*sqrt(TIME).*Z);if call_put=1 % call Price=exp(-r*TIME).*max(S_TIME-K,0);else % call_put=2, put Price=exp(-r*TIME).*max(K-S_TIME,0);endw=mean(Price); % an m*1 vectorSE_c=std(Price(:)/sqrt(n);time=toc;function w,time,SE_a=w_antithetic_SE(S0,r,sigma,TIME,Z,call_put,K,n)tic;Z=Z(1:end/2,:); TIME=TIME(1:end/2,:); S_TIME1=S0*exp(r-sigma2/2)*TIME+sigma*sqrt(TIME).*Z);S_TIME2=S0*exp(r-sigma2/2)*TIME+sigma*sqrt(TIME).*(-Z);if call_put=1 % call Price1=exp(-r*TIME).*max(S_TIME1-K,0); Price2=exp(-r*TIME).*max(S_TIME2-K,0); Price=(Price1+Price2)/2;else % call_put=2, put Price1=exp(-r*TIME).*max(K-S_TIME1,0); Price2=exp(-r*TIME).*max(K-S_TIME2,0); Price=(Price1+Price2)/2;endw=mean(Price); % an m*1 vectorSE_a=std(Price(:)/sqrt(n/2);time=toc;function percent=degree_of_confidence(w,Blsprice,alpha,SE,m)z_alpha_2=norminv(1-alpha/2,0,1);percent=sum(abs(w-Blsprice)z_alpha_2*SE)/mTHANKS !致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考可修改编辑
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 模板表格


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!