金融數(shù)學(xué)課程論文Word版_第1頁
金融數(shù)學(xué)課程論文Word版_第2頁
金融數(shù)學(xué)課程論文Word版_第3頁
金融數(shù)學(xué)課程論文Word版_第4頁
金融數(shù)學(xué)課程論文Word版_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、傳播優(yōu)秀word版文檔 ,希望對(duì)您有幫助,可雙擊去除! 一、二叉樹模型中的參數(shù)估計(jì)1.1 二叉樹參數(shù)估計(jì)算法原理想要預(yù)測(cè)股價(jià)二叉樹,在知道初始值的前提下,還需要知道模型中的的u和d,但對(duì)于一支只知道對(duì)應(yīng)于日期的股票價(jià)格,我們應(yīng)該進(jìn)行怎樣的數(shù)據(jù)處理呢?下面通過實(shí)證數(shù)據(jù)對(duì)二叉樹模型中的參數(shù)進(jìn)行估計(jì)。原理:hull-white算法令,并用如下公式計(jì)算u和d:我們假設(shè):,這里是獨(dú)立的伯努利隨機(jī)變量,則我們可以得出和的合理估計(jì)值為:其中:和是來自實(shí)際市場(chǎng)數(shù)據(jù)的樣本均值和樣本方差,我們可以得出和的估計(jì)值為: 則: 1.2舉例應(yīng)用我選用中國農(nóng)業(yè)銀行2013年的股票價(jià)格,具體數(shù)據(jù)見附件1.由表可知,,,這個(gè)二

2、叉樹中所用的和與數(shù)據(jù)的相同,公式u和d可以簡(jiǎn)化成: 做4期二叉樹圖為:這里的是一天,我們通過選擇更大的時(shí)間間隔,令,即以一周為一個(gè)時(shí)間段,則有: 4期二叉樹圖變?yōu)椋涸倭罴匆园雮€(gè)月為一個(gè)時(shí)間段,則有: 4期二叉樹圖又變?yōu)椋河捎谠擃}的可以改變,時(shí)間間隔越長,股價(jià)“分叉”得更快。二、 幾何布朗運(yùn)動(dòng)估計(jì)與模擬2.1幾何布朗運(yùn)動(dòng)參數(shù)估計(jì)原理令代表某股票在時(shí)刻的價(jià)格,由以下公式給出s的模型。 其中,是常量,b服從布朗運(yùn)動(dòng),而該方程的解就是幾何布朗運(yùn)動(dòng)。即: 其中,是均值為0,方差為t的正態(tài)隨機(jī)變量,由此得到的就是股價(jià)的幾何布朗運(yùn)動(dòng)模型。我們將采用修正的股價(jià)模型對(duì)歐式看漲期權(quán)進(jìn)行定價(jià),在此之前,要對(duì)股價(jià)模型

3、進(jìn)行參數(shù)估計(jì),即波動(dòng)率和漂移率。假設(shè)我們得到了在一段較長時(shí)間0, t內(nèi)的股價(jià)數(shù)據(jù)記錄,這段時(shí)間由n個(gè)長度相等的子區(qū)間組成,再假設(shè)我們知道每個(gè)子區(qū)間末的股價(jià),將股價(jià)表示為: si:第i個(gè)子區(qū)間末的股價(jià)樣本觀測(cè)值為n+1個(gè);令表示均值,則: 樣本方差用s2表示,則: 而u的觀測(cè)值的均值為,方差為。即: 最后算的參數(shù)和為: 及而對(duì)于,則需要隨機(jī)產(chǎn)生一系列標(biāo)準(zhǔn)正態(tài)分布,通過累加處理獲得計(jì)算所需要的值。也可運(yùn)用對(duì)數(shù)正態(tài)分布模型,即: 其中,是一個(gè)均值為0,方差為t的隨機(jī)正態(tài)分布變量,的獲取與相仿。2.2舉例應(yīng)用我選用中國農(nóng)業(yè)銀行2013年的股票價(jià)格,具體數(shù)據(jù)見附件2.計(jì)算股價(jià),先隨機(jī)生成均值為0,方差為

4、n的正態(tài)分布隨機(jī)數(shù),而后進(jìn)行處理生成預(yù)測(cè)值,結(jié)果如下:而后將預(yù)測(cè)值與實(shí)際值進(jìn)行比較,得到:根據(jù)圖可直觀地看出,預(yù)測(cè)值的波動(dòng)率比較大,整個(gè)曲線趨勢(shì)很不平穩(wěn),因此需要進(jìn)行修正;于是,再隨機(jī)生成均值為0,方差為1的標(biāo)準(zhǔn)正態(tài)分布隨機(jī)數(shù),而后進(jìn)行處理生成預(yù)測(cè)值,結(jié)果如下:而后將預(yù)測(cè)值與實(shí)際值進(jìn)行比較,得到:由此可以看出,擬合程度還是很好的,可以用來預(yù)測(cè)未來幾期的股票價(jià)格。預(yù)測(cè)未來兩個(gè)月的股價(jià),結(jié)果如下:三、b-s模型及多期二叉樹的期權(quán)定價(jià)3.1.b-s期權(quán)定價(jià)公式:假設(shè)有一股票現(xiàn)價(jià)為,v是看漲期權(quán)的價(jià)格, 看漲期權(quán)v值可表示為:其中: 對(duì)于歐式看跌期權(quán)的價(jià)格p,可表示為:;3.2舉例應(yīng)用我選用了2013

5、年11月16日的執(zhí)行價(jià),而后通過運(yùn)用bs公式及多期二叉樹計(jì)算期權(quán)價(jià)格的方式,將實(shí)際值與兩方法的預(yù)測(cè)值進(jìn)行比較,而后進(jìn)行分析,詳細(xì)數(shù)據(jù)見附件3。計(jì)算結(jié)果數(shù)據(jù):再將預(yù)測(cè)所得數(shù)據(jù)與實(shí)際值進(jìn)行擬合比較,得到如下圖:從該圖主觀地看出,三種期權(quán)的價(jià)格的趨勢(shì)基本上一致,擬合程度也比較高,但對(duì)來說,bs的擬合程度更好一點(diǎn)。這樣相對(duì)來說主觀了一點(diǎn),接著對(duì)數(shù)據(jù)進(jìn)行再一次的處理分析:最后算的,多期二叉樹的預(yù)測(cè)誤差的方差為:0.162756979,而幾何布朗運(yùn)動(dòng)的預(yù)測(cè)誤差的方差為:0.15752995 ,由此也可以得出,幾何布朗運(yùn)動(dòng)擬合程度更好一些。四、對(duì)沖4.1做題思路計(jì)算對(duì)沖,即計(jì)算值,而,對(duì)一只股票,在一年的時(shí)

6、間里,假設(shè)我們每周進(jìn)行一次對(duì)沖,那每周相應(yīng)的對(duì)沖值又該如何計(jì)算呢?在解這個(gè)題目時(shí),最重要的計(jì)算出的值,在第一周時(shí),為初始價(jià),但到了第二周,有所變動(dòng),它的值為:,而對(duì)于,其值等于到期時(shí)間周數(shù)與總周期數(shù)的比值。對(duì)于,先產(chǎn)生隨機(jī)數(shù),而后再將它轉(zhuǎn)換為正態(tài)分布隨機(jī)數(shù)。4.2舉例應(yīng)用對(duì)于附件2里的數(shù)據(jù),t=0.51506849,s0=55.56,x=50,sigma=0.20203053, miu=0.724348005,r=0.04, 假設(shè)賣出1000股股票,在這樣的情況下,實(shí)現(xiàn)對(duì)沖為:課程小結(jié):對(duì)于金融數(shù)學(xué)這門課程,一個(gè)多星期的計(jì)算機(jī)操作,讓我驚嘆。突然間才發(fā)現(xiàn),這是一門綜合性特別強(qiáng)的學(xué)科,才明白自己

7、在某些知識(shí)點(diǎn)的掌握上拿捏得不是很好,所以做起來還是有一定的挑戰(zhàn)性的,可能在學(xué)習(xí)理論知識(shí)的時(shí)候,這樣的缺陷不是暴露的特別明顯。一開始決定編寫c語言,是因?yàn)樽约弘娔X上安裝了這一軟件,如果趕不上進(jìn)度自己可以補(bǔ)一下,最后才發(fā)現(xiàn)自己這一舉動(dòng)是那么的正確,因?yàn)樽约涸赾這方面學(xué)的不扎實(shí),下課后,我還不得不窩在電腦前一次次修改程序,不過看到自己的程序可以完美實(shí)現(xiàn)的時(shí)候,真的真的特別開心,“廢寢忘食”的程序員生活,稍稍體驗(yàn)了一把,才可以懂得他們?yōu)槭裁磿?huì)有很大的情緒波動(dòng)。在做這個(gè)課程設(shè)計(jì)的時(shí)候,最麻煩的是計(jì)算積分與產(chǎn)生正態(tài)分布隨機(jī)變量,這個(gè)涉及到了數(shù)值計(jì)算方法和概率統(tǒng)計(jì)的知識(shí),自然,c語言是基礎(chǔ),在計(jì)算積分的時(shí)候

8、,我運(yùn)用了復(fù)合梯形公式,但在n的取值上遇到了一點(diǎn)問題,不能很好地把握它的取值。在后面進(jìn)行分析比較時(shí),我運(yùn)用了統(tǒng)計(jì)預(yù)測(cè)與決策的相關(guān)知識(shí)??偟膩碚f,這一個(gè)星期真的過的特別充實(shí),懂得了時(shí)間的概念。但是時(shí)間比較緊張,我們要做的內(nèi)容又比較多,做的還是不夠精細(xì)。附 錄源程序如下:歐式看漲期權(quán):#include "stdio.h"#include "stdlib.h"#include "math.h"#define n 200main() int n,k,j; float s0,i,x,u,d,r,q,p,t,w,v; float ann+1; p

9、rintf("請(qǐng)輸入初始價(jià)s0:n"); scanf("%f",&s0); printf("請(qǐng)輸入每期利率i:n"); scanf("%f",&i); printf("請(qǐng)輸入增長因子u:n"); scanf("%f",&u); printf("請(qǐng)輸入下降因子d:n"); scanf("%f",&d); printf("請(qǐng)輸入執(zhí)行價(jià)x:n"); scanf("%f",

10、&x); printf("請(qǐng)輸入期數(shù)n:n"); scanf("%d",&n); r=exp(-i); q=(1/r-d)/(u-d); p=1-q; printf("股價(jià)二叉樹為:n"); for(k=0;k<=n;k+) for(j=1;j<=k+1;j+) w=pow(u,j-1); v=pow(d,k-j+1); akj=s0*w*v; printf("%.6lf ",akj); printf("n"); printf("期權(quán)二叉樹為:n"

11、); for(j=n+1;j>=1;j-) w=pow(u,j-1); v=pow(d,n-j+1); akj=s0*w*v; if(anj>x) anj=anj-x; else anj=0; printf("%f ",anj); printf("n"); for(k=n-1;k>=0;k-) for(j=k+1;j>=1;j-) akj=r*(p*ak+1j+q*ak+1j+1); printf("%.6lf ",akj); printf("n"); printf("歐式看漲期權(quán)

12、定價(jià)為: "); printf("%f n",a01); 歐式看跌期權(quán):#include "stdio.h"#include "stdlib.h"#include "math.h"#define n 200main() int n,k,j; float s0,i,x,u,d,r,q,p,t, w,v; float ann+1; printf("請(qǐng)輸入初始價(jià)s0:n"); scanf("%f",&s0); printf("請(qǐng)輸入每期利率i:n&quo

13、t;); scanf("%f",&i); printf("請(qǐng)輸入增長因子u:n"); scanf("%f",&u); printf("請(qǐng)輸入下降因子d:n"); scanf("%f",&d); printf("請(qǐng)輸入執(zhí)行價(jià)x:n"); scanf("%f",&x); printf("請(qǐng)輸入期數(shù)n:n"); scanf("%d",&n); r=exp(-i); q=(1/r-d)

14、/(u-d); p=1-q; printf("股價(jià)二叉樹為:n"); for(k=0;k<=n;k+) for(j=1;j<=k+1;j+) w=pow(u,j-1); v=pow(d,k-j+1); akj=s0*w*v; printf("%f ",akj); printf("n"); printf("期權(quán)二叉樹為:n"); for(j=n+1;j>=1;j-) w=pow(u,j-1); v=pow(d,n-j+1); akj=s0*w*v; if(anj<x) anj=x-anj; e

15、lse anj=0; printf("%f ",anj); printf("n"); for(k=n-1;k>=0;k-) for(j=k+1;j>=1;j-) akj=r*(p*ak+1j+q*ak+1j+1); printf("%f ",akj); printf("n"); printf("歐式看跌期權(quán)定價(jià)為: "); printf("%f n",a01); 歐式向上敲出障礙看跌期權(quán):#include "stdio.h"#include &

16、quot;stdlib.h"#include "math.h"#define n 200main() int n,k,j; float s0,i,x,u,d,r,q,p,t,w,v,q; float ann+1; printf("請(qǐng)輸入初始價(jià)s0:n"); scanf("%f",&s0); printf("請(qǐng)輸入每期利率i:n"); scanf("%f",&i); printf("請(qǐng)輸入增長因子u:n"); scanf("%f",

17、&u); printf("請(qǐng)輸入下降因子d:n"); scanf("%f",&d); printf("請(qǐng)輸入執(zhí)行價(jià)x:n"); scanf("%f",&x); printf("請(qǐng)輸入期數(shù)n:n"); scanf("%d",&n); printf("請(qǐng)輸入向上敲出障礙期權(quán)q:n"); scanf("%f",&q); r=exp(-i); q=(1/r-d)/(u-d); p=1-q; printf(

18、"股價(jià)二叉樹為:n"); for(k=0;k<=n;k+) for(j=1;j<=k+1;j+) w=pow(u,j-1); v=pow(d,k-j+1); akj=s0*w*v; printf("%f ",akj); printf("n"); printf("期權(quán)二叉樹為:n"); for(j=n+1;j>=1;j-) w=pow(u,j-1); v=pow(d,n-j+1); akj=s0*w*v; if(anj<x&&anj<q) anj=x-anj; else

19、anj=0; printf("%f ",anj); printf("n"); for(k=n-1;k>=0;k-) for(j=k+1;j>=1;j-) if(akj<q) akj=r*(p*ak+1j+q*ak+1j+1); else akj=0; printf("%f ",akj); printf("n"); printf("歐式向上敲出障礙看跌期權(quán)定價(jià)為: "); printf("%f n",a01); 歐式向上敲出障礙看漲期權(quán):#include &q

20、uot;stdio.h"#include "stdlib.h"#include "math.h"#define n 200main() int n,k,j; float s0,i,x,u,d,r,q,p,t,w,v,q; float ann+1; printf("請(qǐng)輸入初始價(jià)s0:n"); scanf("%f",&s0); printf("請(qǐng)輸入每期利率i:n"); scanf("%f",&i); printf("請(qǐng)輸入增長因子u:n&qu

21、ot;); scanf("%f",&u); printf("請(qǐng)輸入下降因子d:n"); scanf("%f",&d); printf("請(qǐng)輸入執(zhí)行價(jià)x:n"); scanf("%f",&x); printf("請(qǐng)輸入期數(shù)n:n"); scanf("%d",&n); printf("請(qǐng)輸入向上敲出障礙期權(quán)q:n"); scanf("%f",&q); r=exp(-i); q=(1

22、/r-d)/(u-d); p=1-q; printf("股價(jià)二叉樹為:n"); for(k=0;k<=n;k+) for(j=1;j<=k+1;j+) w=pow(u,j-1); v=pow(d,k-j+1); akj=s0*w*v; printf("%f ",akj); printf("n"); printf("期權(quán)二叉樹為:n"); for(j=n+1;j>=1;j-) w=pow(u,j-1); v=pow(d,n-j+1); akj=s0*w*v; if(anj>x&&

23、;anj<q) anj=anj-x; else anj=0; printf("%f ",anj); printf("n"); for(k=n-1;k>=0;k-) for(j=k+1;j>=1;j-) if(akj<q) akj=r*(p*ak+1j+q*ak+1j+1); else akj=0; printf("%f ",akj); printf("n"); printf("歐式向上敲出障礙看漲期權(quán)定價(jià)為: "); printf("%f n",a01

24、); 歐式向下敲出障礙看跌期權(quán):#include "stdio.h"#include "stdlib.h"#include "math.h"#define n 200main() int n,k,j; float s0,i,x,u,d,r,q,p,t,w,v,q; float ann+1; printf("請(qǐng)輸入初始價(jià)s0:n"); scanf("%f",&s0); printf("請(qǐng)輸入每期利率i:n"); scanf("%f",&i);

25、 printf("請(qǐng)輸入增長因子u:n"); scanf("%f",&u); printf("請(qǐng)輸入下降因子d:n"); scanf("%f",&d); printf("請(qǐng)輸入執(zhí)行價(jià)x:n"); scanf("%f",&x); printf("請(qǐng)輸入期數(shù)n:n"); scanf("%d",&n); printf("請(qǐng)輸入向下敲出障礙期權(quán)q:n"); scanf("%f&quo

26、t;,&q); r=exp(-i); q=(1/r-d)/(u-d); p=1-q; printf("股價(jià)二叉樹為:n"); for(k=0;k<=n;k+) for(j=1;j<=k+1;j+) w=pow(u,j-1); v=pow(d,k-j+1); akj=s0*w*v; printf("%f ",akj); printf("n"); printf("期權(quán)二叉樹為:n"); for(j=n+1;j>=1;j-) w=pow(u,j-1); v=pow(d,n-j+1); akj=s

27、0*w*v; if(anj<x&&anj>q) anj=x-anj; else anj=0; printf("%f ",anj); printf("n"); for(k=n-1;k>=0;k-) for(j=k+1;j>=1;j-) if(akj>q) akj=r*(p*ak+1j+q*ak+1j+1); else akj=0; printf("%f ",akj); printf("n"); printf("歐式向下敲出障礙看跌期權(quán)定價(jià)為: ");

28、printf("%f n",a01); 歐式向下敲出障礙看漲期權(quán):#include "stdio.h"#include "stdlib.h"#include "math.h"#define n 200main() int n,k,j; float s0,i,x,u,d,r,q,p,t,w,v,q; float ann+1; printf("請(qǐng)輸入初始價(jià)s0:n"); scanf("%f",&s0); printf("請(qǐng)輸入每期利率i:n"); sc

29、anf("%f",&i); printf("請(qǐng)輸入增長因子u:n"); scanf("%f",&u); printf("請(qǐng)輸入下降因子d:n"); scanf("%f",&d); printf("請(qǐng)輸入執(zhí)行價(jià)x:n"); scanf("%f",&x); printf("請(qǐng)輸入期數(shù)n:n"); scanf("%d",&n); printf("請(qǐng)輸入向下敲出障礙期權(quán)q:n

30、"); scanf("%f",&q); r=exp(-i); q=(1/r-d)/(u-d); p=1-q; printf("股價(jià)二叉樹為:n"); for(k=0;k<=n;k+) for(j=1;j<=k+1;j+) w=pow(u,j-1); v=pow(d,k-j+1); akj=s0*w*v; printf("%f ",akj); printf("n"); printf("期權(quán)二叉樹為:n"); for(j=n+1;j>=1;j-) w=pow(u,

31、j-1); v=pow(d,n-j+1); akj=s0*w*v; if(anj>x&&anj>q) anj=anj-x; else anj=0; printf("%f ",anj); printf("n"); for(k=n-1;k>=0;k-) for(j=k+1;j>=1;j-) if(akj>q) akj=r*(p*ak+1j+q*ak+1j+1); else akj=0; printf("%f ",akj); printf("n"); printf("

32、;歐式向下敲出障礙看漲期權(quán)定價(jià)為: "); printf("%f n",a01); 美式看跌期權(quán):#include "stdio.h"#include "stdlib.h"#include "math.h"#define n 100main() int n,k,j; float s0,i,x,u,d,r,q,p,t,w,v,t; float ann+1; printf("請(qǐng)輸入初始價(jià)s0:n"); scanf("%f",&s0); printf("

33、請(qǐng)輸入每期利率i:n"); scanf("%f",&i); printf("請(qǐng)輸入增長因子u:n"); scanf("%f",&u); printf("請(qǐng)輸入下降因子d:n"); scanf("%f",&d); printf("請(qǐng)輸入執(zhí)行價(jià)x:n"); scanf("%f",&x); printf("請(qǐng)輸入期數(shù)n:n"); scanf("%d",&n); r=exp(

34、-i); q=(1/r-d)/(u-d); p=1-q; printf("股價(jià)二叉樹為:n"); for(k=0;k<=n;k+) for(j=1;j<=k+1;j+) w=pow(u,j-1); v=pow(d,k-j+1); akj=s0*w*v; printf("%f ",akj); printf("n"); printf("期權(quán)二叉樹為:n"); for(j=n+1;j>=1;j-) w=pow(u,j-1); v=pow(d,n-j+1); akj=s0*w*v; if(anj<x

35、) anj=x-anj; else anj=0; printf("%f ",anj); printf("n"); for(k=n-1;k>=0;k-) for(j=k+1;j>=1;j-) t=x-akj; akj=r*(p*ak+1j+q*ak+1j+1); if(t<akj) akj=akj; else akj=t; printf("%f ",akj); printf("n"); printf("美式看跌期權(quán)定價(jià)為: "); printf("%f n",

36、a01); 歐式看漲期權(quán)bs價(jià)格:#include<stdio.h>#include<math.h>#define d -1000#define pi 3.1415926double f(double x) return exp(-x*x/2);double n(double b,double a,int n) double h,s1,s,s2=0; int k; for(k=1;k<n-1;k+) h=(b-a)/n;s1=a+k*h;s2=f(s1)+s2; s=1/sqrt(2*pi)*h/2*(f(a)+2*s2+f(b); return (s); mai

37、n() double s0,x,t,p,r,d1,d2,v;int n; printf("請(qǐng)輸入股票初始價(jià)格s0:n");scanf("%lf",&s0); printf("請(qǐng)輸入執(zhí)行價(jià)x:n");scanf("%lf",&x); printf("請(qǐng)輸入以年為單位的到期時(shí)間t:n");scanf("%lf",&t); printf("請(qǐng)輸入波動(dòng)率p:n");scanf("%lf",&p); printf("請(qǐng)輸入無風(fēng)險(xiǎn)利率r:n");scanf("

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論