[閒聊] 財風管好難

看板NTHU_QFG99作者 (忙碌總比優閒好)時間14年前 (2011/05/21 00:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
難得提供我的意見: h1 clear S = 3; E = 2; T = 1; r = 0.05; sigma = 0.3; M = 400; dt = T/M; p =0.5; u = exp(r*dt)*(1+sqrt(exp((sigma^2)*dt)-1)); d = exp(r*dt)*(1-sqrt(exp((sigma^2)*dt)-1)); W = max(S*d.^([M:-1:0]').*u.^([0:M]')-E,0); for i = M:-1:1 W = exp(-r*dt)*(p*W(2:i+1) + (1-p)*W(1:i)); end disp('Option value is'), disp(W) h2 clear S = 3; E = 2; T = 1; r = 0.05; sigma = 0.3; M = 400; dt = T/M; p =0.5; u = exp(r*dt)*(1+sqrt(exp((sigma^2)*dt)-1)); d = exp(r*dt)*(1-sqrt(exp((sigma^2)*dt)-1)); WT = max(S*u.^([M:-1:0]').*d.^([0:M]')-E,0); WW = zeros(M+1,1); for i = 0:1:M WW(i+1)=nchoosek(M,i)*p^(i)*(1-p)^(M-i)*WT(i+1); end W0 = exp(-r*(dt*M))*sum(WW(:)); disp('Option value is'), disp(W0) h3 clear S = 3; E = 2; T = 1; r = 0.05; sigma = 0.3; M = 400; dt = T/M; u = exp(sigma*sqrt(dt)); d = exp(-sigma*sqrt(dt)); p = (exp(r*dt)-d)/(u-d); [PR,OPT1]=binprice(S,E,r,T,dt,sigma,1); OPT2=zeros(M+1,M+1); OPT2(:,M+1)=OPT1(:,M+1); for i = M:-1:1 OPT2(1:i,i) = exp(-r*dt)*(p*OPT2(1:i,i+1) + (1-p)*OPT2(2:i+1,i+1)); if OPT2(1:i,i) >= max(PR(1:i,i)-E,0); OPT2(1:i,i) = OPT2(1:i,i); else OPT2(1:i,i) = max(PR(1:i,i)-E,0); end end disp('Option value is'), disp(OPT2(1,1)) 第一題跟第二題答案跑出來一樣 我發現 binprice 是算美式的option value 可以用訂價講義的例子證明之 結果會一模一樣 所以第三題的for迴圈其實可以不用寫 答案就直接是binprice算出來的第一期call value 老師的例子 似乎從頭到尾都不會提早執行... 而且有個巧合 就是第三題的u d p 跟前兩題不一樣 但答案卻剛好一樣 也太巧... 有錯請更正~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.77.143 ※ 編輯: hysy 來自: 61.230.72.190 (05/21 19:40)
文章代碼(AID): #1DrfZIzm (NTHU_QFG99)