金融數(shù)學課程論文_第1頁
金融數(shù)學課程論文_第2頁
金融數(shù)學課程論文_第3頁
金融數(shù)學課程論文_第4頁
金融數(shù)學課程論文_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 一、二叉樹模型中的參數(shù)估計1.1 二叉樹參數(shù)估計算法原理想要預測股價二叉樹,在知道初始值的前提下,還需要知道模型中的的u和d,但對于一支只知道對應于日期的股票價格,我們應該進行怎樣的數(shù)據(jù)處理呢?下面通過實證數(shù)據(jù)對二叉樹模型中的參數(shù)進行估計。原理:Hull-White算法令,并用如下公式計算u和d:我們假設:,這里是獨立的伯努利隨機變量,則我們可以得出和的合理估計值為:其中:和是來自實際市場數(shù)據(jù)的樣本均值和樣本方差,我們可以得出和的估計值為: 則: 1.2舉例應用我選用中國農(nóng)業(yè)銀行2013年的股票價格,具體數(shù)據(jù)見附件1.由表可知,,,這個二叉樹中所用的和與數(shù)據(jù)的相同,公式u和d可以簡化成: 做

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

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

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

5、樹計算期權(quán)價格的方式,將實際值與兩方法的預測值進行比較,而后進行分析,詳細數(shù)據(jù)見附件3。計算結(jié)果數(shù)據(jù):再將預測所得數(shù)據(jù)與實際值進行擬合比較,得到如下圖:從該圖主觀地看出,三種期權(quán)的價格的趨勢基本上一致,擬合程度也比較高,但對來說,BS的擬合程度更好一點。這樣相對來說主觀了一點,接著對數(shù)據(jù)進行再一次的處理分析:最后算的,多期二叉樹的預測誤差的方差為:0.162756979,而幾何布朗運動的預測誤差的方差為:0.15752995 ,由此也可以得出,幾何布朗運動擬合程度更好一些。四、對沖4.1做題思路計算對沖,即計算值,而,對一只股票,在一年的時間里,假設我們每周進行一次對沖,那每周相應的對沖值又該

6、如何計算呢?在解這個題目時,最重要的計算出的值,在第一周時,為初始價,但到了第二周,有所變動,它的值為:,而對于,其值等于到期時間周數(shù)與總周期數(shù)的比值。對于,先產(chǎn)生隨機數(shù),而后再將它轉(zhuǎn)換為正態(tài)分布隨機數(shù)。4.2舉例應用對于附件2里的數(shù)據(jù),T=0.51506849,S0=55.56,X=50,sigma=0.20203053, miu=0.724348005,r=0.04, 假設賣出1000股股票,在這樣的情況下,實現(xiàn)對沖為:課程小結(jié):對于金融數(shù)學這門課程,一個多星期的計算機操作,讓我驚嘆。突然間才發(fā)現(xiàn),這是一門綜合性特別強的學科,才明白自己在某些知識點的掌握上拿捏得不是很好,所以做起來還是有一

7、定的挑戰(zhàn)性的,可能在學習理論知識的時候,這樣的缺陷不是暴露的特別明顯。一開始決定編寫C語言,是因為自己電腦上安裝了這一軟件,如果趕不上進度自己可以補一下,最后才發(fā)現(xiàn)自己這一舉動是那么的正確,因為自己在C這方面學的不扎實,下課后,我還不得不窩在電腦前一次次修改程序,不過看到自己的程序可以完美實現(xiàn)的時候,真的真的特別開心,“廢寢忘食”的程序員生活,稍稍體驗了一把,才可以懂得他們?yōu)槭裁磿泻艽蟮那榫w波動。在做這個課程設計的時候,最麻煩的是計算積分與產(chǎn)生正態(tài)分布隨機變量,這個涉及到了數(shù)值計算方法和概率統(tǒng)計的知識,自然,C語言是基礎,在計算積分的時候,我運用了復合梯形公式,但在n的取值上遇到了一點問題,

8、不能很好地把握它的取值。在后面進行分析比較時,我運用了統(tǒng)計預測與決策的相關(guān)知識。總的來說,這一個星期真的過的特別充實,懂得了時間的概念。但是時間比較緊張,我們要做的內(nèi)容又比較多,做的還是不夠精細。附 錄源程序如下:歐式看漲期權(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("請輸入初始價s0:n"

9、;); scanf("%f",&s0); printf("請輸入每期利率i:n"); scanf("%f",&i); printf("請輸入增長因子u:n"); scanf("%f",&u); printf("請輸入下降因子d:n"); scanf("%f",&d); printf("請輸入執(zhí)行價X:n"); scanf("%f",&X); printf("請輸入期數(shù)

10、n:n"); scanf("%d",&n); r=exp(-i); q=(1/r-d)/(u-d); p=1-q; printf("股價二叉樹為: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"); for(j=n+1;j>=1;j-) w=

11、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)定價為: "); printf("

12、%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("請輸入初始價s0:n"); scanf("%f",&s0); printf("請輸入每期利率i:n"); scanf("%f",&

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

14、;股價二叉樹為: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; else anj=0; printf("%f

15、",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)定價為: "); printf("%f n",a01); 歐式向上敲出障礙看跌期權(quán):#include "stdio.h"#include "stdlib.h"#include

16、 "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("請輸入初始價s0:n"); scanf("%f",&s0); printf("請輸入每期利率i:n"); scanf("%f",&i); printf("請輸入增長因子u:n"); scanf("%f",&u); printf("請輸入下降

17、因子d:n"); scanf("%f",&d); printf("請輸入執(zhí)行價X:n"); scanf("%f",&X); printf("請輸入期數(shù)n:n"); scanf("%d",&n); printf("請輸入向上敲出障礙期權(quán)Q:n"); scanf("%f",&Q); r=exp(-i); q=(1/r-d)/(u-d); p=1-q; printf("股價二叉樹為:n"); for(

18、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 anj=0; printf("%f &quo

19、t;,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)定價為: "); printf("%f n",a01); 歐式向上敲出障礙看漲期權(quán):#include "stdio.h"#include &

20、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("請輸入初始價s0:n"); scanf("%f",&s0); printf("請輸入每期利率i:n"); scanf("%f",&i); printf("請輸入增長因子u:n"); scanf("%f",

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

22、"股價二叉樹為: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=anj-X; else

23、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)定價為: "); printf("%f n",a01); 歐式向下敲出障礙看跌期權(quán):#include &q

24、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("請輸入初始價s0:n"); scanf("%f",&s0); printf("請輸入每期利率i:n"); scanf("%f",&i); printf("請輸入增長因子u:n&qu

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

26、/r-d)/(u-d); p=1-q; printf("股價二叉樹為: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&&

27、;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)定價為: "); printf("%f n",a01

28、); 歐式向下敲出障礙看漲期權(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("請輸入初始價s0:n"); scanf("%f",&s0); printf("請輸入每期利率i:n"); scanf("%f",&i);

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

30、t;,&Q); r=exp(-i); q=(1/r-d)/(u-d); p=1-q; printf("股價二叉樹為: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

31、0*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("歐式向下敲出障礙看漲期權(quán)定價為: ");

32、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("請輸入初始價s0:n"); scanf("%f",&s0); printf("請輸入每期利率i:n"); scanf(&q

33、uot;%f",&i); printf("請輸入增長因子u:n"); scanf("%f",&u); printf("請輸入下降因子d:n"); scanf("%f",&d); printf("請輸入執(zhí)行價X:n"); scanf("%f",&X); printf("請輸入期數(shù)n:n"); scanf("%d",&n); r=exp(-i); q=(1/r-d)/(u-d); p=1-q

34、; printf("股價二叉樹為: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; else anj=0; pr

35、intf("%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)定價為: "); printf("%f n",a01); 歐式看漲期權(quán)BS價格:#include&l

36、t;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); main() double s0,X,t,p,r,d1,d2

37、,v;int n; printf("請輸入股票初始價格s0:n");scanf("%lf",&s0); printf("請輸入執(zhí)行價X:n");scanf("%lf",&X); printf("請輸入以年為單位的到期時間t:n");scanf("%lf",&t); printf("請輸入波動率p:n");scanf("%lf",&p); printf("請輸入無風險利率r:n");scanf("%l

溫馨提示

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

最新文檔

評論

0/150

提交評論