日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

基于NS模型+久期衡量利率风险(Julia)

發(fā)布時(shí)間:2024/3/12 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于NS模型+久期衡量利率风险(Julia) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天剛剛交完金融風(fēng)險(xiǎn)管理的作業(yè),我是覺(jué)得這次作業(yè)可以綜合體現(xiàn)我上大學(xué)以來(lái)學(xué)到的東西,甚至可以代表我的水平了(讓大家見(jiàn)笑了)。

首先,我們利用NS模型計(jì)算國(guó)債的利率期限結(jié)構(gòu)。

假設(shè)順勢(shì)遠(yuǎn)期利率形式滿足下式:

(1)

其中,為瞬時(shí)遠(yuǎn)期收益率,為水平因子,極限下不會(huì)衰減,代表長(zhǎng)期成分貢獻(xiàn),為斜率因子,其衰減速度最快,代表短期成分貢獻(xiàn),為曲率因子,從0開(kāi)始并衰減至0,代表中期成分貢獻(xiàn),為衰減率。到期收益率為瞬時(shí)遠(yuǎn)期收益率的均值,其計(jì)算公式如下:?

(2)

通過(guò)式(1)(2)計(jì)算得國(guó)債利率期限結(jié)構(gòu),作為企業(yè)債的貼現(xiàn)率

using XLSX#讀入數(shù)據(jù) t=XLSX.readtable("D://julia//NS.xlsx","Sheet1","A") r=XLSX.readtable("D://julia//NS.xlsx","Sheet1","B") t=t[1][1] r=r[1][1]function NS(r,t,γ)#基于NS模型的OLS回歸x1=zeros(length(t))#用于儲(chǔ)存x1for i in 1:length(t)#計(jì)算各期x1的值x1[i]=(γ/t[i])*(1-exp(-t[i]/γ))endx2=zeros(length(t))#用于儲(chǔ)存x2for i in 1:length(t)#計(jì)算各期x2的值x2[i]=(γ/t[i])*(1-exp(-t[i]/γ))-exp(-t[i]/γ)end#方法一:用GLM包進(jìn)行OLS回歸#using GLM#using DataFrames#data=DataFrame(:x1=>Float64.(x1),:x2=>Float64.(x2),:r=>Float64.(r))#model=lm(@formula(r~x1+x2),data)X=[ones(length(t)) x1 x2]#將所有解釋變量加常數(shù)項(xiàng)放入X中Y=r#被解釋變量beta=(inv(X'*X))*(X')*YR=zeros(length(t))#預(yù)測(cè)for i in 1:length(t)#依據(jù)回歸后的表達(dá)式計(jì)算各剩余期限的到期收益率R[i]=beta[1]+beta[2]*x1[i]+beta[3]*x2[i]enderror=0#計(jì)算誤差for i in 1:length(t)error=error+(R[i]-r[i])^2endreturn error,beta,R endγ=0.5#設(shè)置γ的初始值 n=1#計(jì)次 Γ=zeros(60)#用于儲(chǔ)存每次的γ Error=zeros(60)#用于儲(chǔ)存每次的誤差,即目標(biāo)函數(shù) while γ<=30#設(shè)置γ的終值error,beta,R=NS(r,t,γ)Γ[n]=γ#儲(chǔ)存γError[n]=error#儲(chǔ)存誤差γ=0.5+0.5*n#增加γ的值(這樣表示可以減少計(jì)算精度問(wèn)題,但不能完全避免)n=n+1#累計(jì)次數(shù) end#尋找誤差最小時(shí)所對(duì)應(yīng)的索引值,并輸出其對(duì)應(yīng)的γ a=Error[1] for j in 1:length(Error)b=Error[j]if b<=aa=bglobal m=jend end error,beta,R=NS(r,t,Γ[m]) γ=Γ[m]

接下來(lái),用NS模型計(jì)算出來(lái)的國(guó)債利率期限結(jié)構(gòu)作為貼現(xiàn)率,計(jì)算久期。主要是麥考利久期、FW久期、修正久期和凸度。由于學(xué)藝不精,一開(kāi)始沒(méi)想起來(lái)麥考利久期假設(shè)各期利率相等,寫(xiě)了個(gè)貼現(xiàn)函數(shù),后來(lái)學(xué)FW久期剛好用上了。不過(guò),說(shuō)實(shí)話我感覺(jué)我的代碼還是一如既往的效率不高。

#初步準(zhǔn)備: function Tiexian(r,P,t) #貼現(xiàn)函數(shù),r為貼現(xiàn)利率序列(長(zhǎng)度為10,從第1年到第10年),P為現(xiàn)金流序列(長(zhǎng)度為t,從對(duì)應(yīng)(10-t)年份到第10年),t為時(shí)間長(zhǎng)度m=zeros(t)#生成長(zhǎng)度為t的零矩陣for j in 1:t#取出P中的元素,進(jìn)行操作后給m賦值for i in (length(r)-t+1):(length(r)-t+j)#取出對(duì)應(yīng)年份的利率進(jìn)行操作P[j]=P[j]/((1+r[i])^1)#循環(huán)除以每年的利率進(jìn)行貼現(xiàn)endm[j]=P[j]#給m賦值endreturn m end function PV(F,i,r,t)C=F*i#計(jì)算每月利息n=zeros(t)#生成長(zhǎng)度為t的零矩陣for j in 1:(t-1)#計(jì)算每個(gè)月的利息n[j]=Cendn[t]=C+F#計(jì)算最后一個(gè)月的利息q=Tiexian(r,n,t)#貼現(xiàn)得到當(dāng)期債券價(jià)值return sum(q) end#麥考利久期、FW久期 function D(F,i,r,t)#麥考利久期函數(shù),F為債券面值,i為票面利率,r為貼現(xiàn)利率(r相同則計(jì)算麥考利久期,r為各期的貼現(xiàn)率則為FW久期),t為時(shí)間長(zhǎng)度C=F*i#計(jì)算每月利息(也可以把C換成序列,這樣就可以計(jì)算每月利息不同的情況,還省掉了下面的一些步驟)m=zeros(t)#生成長(zhǎng)度為t的零矩陣for j in 1:(t-1)#計(jì)算每個(gè)月的久期分子并付給mm[j]=j*C#t*C,時(shí)間*利息endm[t]=t*(C+F)#最后一個(gè)單獨(dú)賦值(債券本金償還)p=Tiexian(r,m,t)#貼現(xiàn)得到麥考利久期的分子n=zeros(t)#生成長(zhǎng)度為t的零矩陣for j in 1:(t-1)#計(jì)算每個(gè)月的利息n[j]=Cendn[t]=C+F#計(jì)算最后一個(gè)月的利息q=Tiexian(r,n,t)#貼現(xiàn)得到當(dāng)期債券價(jià)值return sum(p)/sum(q)#麥考利久期 end#修正久期(麥考利久期隱含假設(shè)收益率不變,即y為定值) function reviseD(P,i,r,t)#修正久期函數(shù)y=sum(r)/length(r)#計(jì)算債券到期時(shí)間內(nèi)利率的均值reviseD=D(P,i,r,t)/(1+y)#依據(jù)修正久期和久期之間的關(guān)系return reviseD end#依據(jù)修正久期計(jì)算資產(chǎn)凈現(xiàn)值變化量: rd=reviseD(P,i,r,t) dy=0.01 dp=-P*rd*dy#凸度: function C(F,i,r,t)#凸度函數(shù)C=F*i#計(jì)算每月利息(也可以把C換成序列,這樣就可以計(jì)算每月利息不同的情況,還省掉了下面的一些步驟)m=zeros(t)#生成長(zhǎng)度為t的零矩陣for j in 1:(t-1)#計(jì)算每個(gè)月的久期分子并付給mm[j]=j*(j+1)*C#t*(t+1)*C,時(shí)間*(時(shí)間+1)*利息endm[t]=t*(t+1)*(C+F)#最后一個(gè)單獨(dú)賦值(債券本金償還)p=Tiexian(r,m,t)#貼現(xiàn)得到凸度的分子n=zeros(t)#生成長(zhǎng)度為t的零矩陣for j in 1:(t-1)#計(jì)算每個(gè)月的利息n[j]=Cendn[t]=C+F#計(jì)算最后一個(gè)月的利息q=Tiexian(r,n,t)#貼現(xiàn)得到當(dāng)期債券價(jià)值y=sum(r)/length(r)return sum(p)/(sum(q)*(1+y)^2) #凸度 end#依據(jù)凸度計(jì)算資產(chǎn)凈現(xiàn)值變化量: c=C(P,i,r,t) dy=0.01 dP=-P*rd*dy+0.5*P*c*(dy^2)

總結(jié)

以上是生活随笔為你收集整理的基于NS模型+久期衡量利率风险(Julia)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。