章金融時間序列分析_第1頁
章金融時間序列分析_第2頁
章金融時間序列分析_第3頁
章金融時間序列分析_第4頁
章金融時間序列分析_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

金融數(shù)值計算與應(yīng)用軟件

--MATLAB王輝中央財經(jīng)大學(xué)金融學(xué)院E-mail:第5章金融時間序列分析5.1MATLAB中時間序列變量的創(chuàng)立

(a)使用函數(shù)fints(b)函數(shù)ascii2fts把文本文件ASCII內(nèi)容保存為時間序列變量。

利用fints函數(shù)創(chuàng)立時間序列對象

(a)簡單矩陣的輸入(b)向量輸入(c)數(shù)據(jù)名輸入(d)頻率顯示輸入(e)描述字段的輸入fints函數(shù)—簡單矩陣的輸入

調(diào)用方式:fts=fints(dates_and_data)【例5.1.1】創(chuàng)建一個僅僅包含一組觀察值(或一個數(shù)據(jù)序列)的金融時間序列。答案見ex5_1_1.m【例5.1.2】創(chuàng)建一個包含兩組觀察值(兩個數(shù)據(jù)序列)的金融時間序列。

答案見ex5_1_2.m【例5.1.3】創(chuàng)建一個金融時間序列,包含時間信息。答案見ex5_1_3.mfints函數(shù)—向量輸入

調(diào)用方式:fts=fints(dates,data)【例5.1.4】包含時間信息的例子。答案見ex5_1_4.m日期字符串可允許的輸入格式(1)'ddmmmyyhh:mm'或'ddmmmyyyyhh:mm'(2)'mm/dd/yyhh:mm'或'mm/dd/yyyyhh:mm'(3)'dd-mmm-yyhh:mm'或'dd-mmm-yyyyhh:mm’(4)'mmm.dd,yyhh:mm'或'mmm.dd,yyyyhh:mm'如果時間的信息包含在日期字符串格式中,用戶必須把它作為一個列轉(zhuǎn)置元胞數(shù)組提供給函數(shù)fints。

f=fints({'01-Jan-2008';'02-Jan-2008'},(1:2)')

fints函數(shù)—數(shù)據(jù)名輸入、頻率顯示輸入、描述字段的輸入fts=fints(dates,data,datanames,freq,desc)datanames:一個字符串的元胞數(shù)組freq:有效的頻率顯示Desc:其內(nèi)容用戶可以任意設(shè)置【例5.1.5】本例假設(shè)有兩個數(shù)據(jù)序列,它們的名稱分別為First和Second,在MATLAB中執(zhí)行如下m文件:答案見ex5_1_5.m金融時間序列文件的讀取

文本文件所滿足的條件:包含標(biāo)題文本行包含標(biāo)題信息。最左邊的一列必須是日期,而且日期必須是一個有效的日期字符串格式列與列之間必須用空格鍵或tab鍵分開金融時間序列文件的讀取

函數(shù)的調(diào)用方式:

tsobj=ascii2fts(filename,descrow,colheadrow,skiprows);tsobj=ascii2fts(filename,timedata,descrow,colheadrow,skiprows);【例5.1.6】查閱ftsdata中的ASCII文件disney.dat,它位于ftsdata子目錄下。typedisney.dat

disfts=ascii2fts('disney.dat')disfts=ascii2fts('disney.dat',1,3,2)

disfts.freq=1【例5.1.7】現(xiàn)有一個數(shù)據(jù)文件times.txt,該文件沒有對它所包含的數(shù)據(jù)做任何描述,文件內(nèi)容如下:

1/3/9512:0036.7536.906336.656336.875116791/4/9512:003737.281336.62537.156319947在MATLAB中輸入如下命令:times1=ascii2fts('times.txt',’t’)

日期運算

1)查找現(xiàn)在時刻:>>now2)查詢當(dāng)天時間:>>today3)序數(shù)型日期轉(zhuǎn)換為字符串日期:>>datestr(732714)>>datestr(733064.7394612615,’yyyy,mm,dd,HH:MM.SS.FFFAM’)日期運算4)確定每月的第幾天:>>day1=day(’22-Jan-2007’)>>day2=day(733064)5)查詢星期:>>[N,s]=weekday(733064)>>weekday(’22-Jan-2007’)日期運算7)把字符串型日期轉(zhuǎn)換為序數(shù)型日期>>datenum(’03-aug-2000’)8)計算日期間隔>>dasact(’27-feb-2006’,’01-mar-2006’)日期運算—特定日期抽取函數(shù)(1)todaily函數(shù):從時間序列中抽取日數(shù)據(jù)。(2)toweekly函數(shù):從時間序列中抽取周末數(shù)據(jù)。(3)tomonthly函數(shù):從時間序列中抽取月末數(shù)據(jù)。(4)toquarterly函數(shù):從時間序列中抽取季度末數(shù)據(jù)。(5)tosemi函數(shù):從時間序列中抽取半年度末數(shù)據(jù)。(6)toannual函數(shù):從時間序列中抽取年度末數(shù)據(jù)。【例5.1.8】文本文件bldcts.txt中保存了保利地產(chǎn)從2010.316到2010.4.16日的交易數(shù)據(jù),利用該數(shù)據(jù)創(chuàng)建金融時間序列對象,并抽取周末數(shù)據(jù)

答案見ex5_1_8.m

將時間序列數(shù)據(jù)保存為文本文件

調(diào)用方式stat=fts2ascii(filename,tsobj,exttext)stat=fts2ascii(filename,dates,data,colheads,desc,exttext)【例5.1.9】baolidichan=ascii2fts('bldcts.txt',1,2);a=fts2ascii('mytxt.txt',baolidichan,'price')將時間序列數(shù)據(jù)轉(zhuǎn)換為矩陣數(shù)據(jù)

調(diào)用方式tsmat=fts2mat(tsobj,datesflag)tsmat=fts2mat(tsobj,seriesnames)tsmat=fts2mat(tsobj,datesflag,seriesnames)例如baolidichan是fints型數(shù)據(jù),現(xiàn)轉(zhuǎn)化為矩陣,如果不輸入datesflag,則日期就不會出現(xiàn),代碼如下:>>a1=fts2mat(baolidichan);如果將datesflag設(shè)為1,則日期也被輸出,代碼如下:>>a2=fts2mat(baolidichan,1);也可以只轉(zhuǎn)化其中的某些變量:>>a3=fts2mat(baolidichan.Open,1);金融時間序列的使用

1)fieldnamesfnames=fieldnames(tsobj)fnames=fieldnames(tsobj,srsnameonly)>>na1=fieldnames(baolidichan)

>>na2=fieldnames(baolidichan,1)

2)chfieldnewfts=chfield(oldfts,oldn,newn)>>nb=chfield(baolidichan,'Open','oprice')

金融時間序列的使用3)fints型數(shù)據(jù)求最大值、最小值、均值、標(biāo)準(zhǔn)差和排序:命令分別是max、min、mean、std和sortfts。>>min(baolidichan)>>sortfts(baolidichan,'Open')4)實現(xiàn)時間序列的轉(zhuǎn)換newfts=convertto(oldfts,newfreq)

>>wbaolidichan=convertto(baolidichan,'w')金融時間序列的使用5)查找金融時間序列對象的開始日期和結(jié)束日期:ftsbound

>>myd=ftsbound(baolidichan)>>datestr(myd)%轉(zhuǎn)換成字符型日期6)刪除時間序列中的某些數(shù)據(jù)序列:rmfields=rmfield(s,'fieldname')s=rmfield(s,fields)>>nhigh=rmfield(baolidichan,'Open')>>nnc=rmfield(baolidichan,{'High','Low'})時間序列數(shù)據(jù)的提取可以直接抽?。?gt;>tem=baolidichan.Close利用extfield函數(shù)實現(xiàn)時間序列數(shù)據(jù)的抽取。調(diào)用方式

ftse=extfield(tsobj,fieldnames)

>>tem2=extfield(baolidichan,'Close')金融時間序列的索引

>>baolidichan('18-Mar-2010')>>baolidichan.close('18-Mar-2010')>>baolidichan({'18-Mar-2010','30-Mar-2010'})>>baolidichan(2)處理時間序列中缺失的數(shù)據(jù)ewfts=fillts(oldfts,fill_method)oldfts%金融時間序列對象的原始數(shù)據(jù)fill_method%(Optional)處理缺失值的方法:

'linear'或‘l’或‘le’%線形插值方法(默認(rèn)值)

'cubic'或‘c’或‘ce’%3次插值

'spline'或‘s’或‘se’%樣條插值

'nearest'或‘n’或‘ne’%最近插值法

'pchip'或‘p’或‘pe’%逐段光滑的3次Hemite多項式法

處理時間序列中缺失的數(shù)據(jù)>>randn('seed',0);>>a=randn(6,1);>>b=[today:today+5]';>>fts=fints(b,a)>>fts(3)=NaN;>>fts(3)>>newdata=fillts(fts,'linear')金融時間序列對象的加、減、乘、除等運算

【例5.1.11】下載一個MAT-file,該文件包含了一些金融時間序列對象。在MATLAB中執(zhí)行如下命令:>>loaddji30short>>myfts1>>newfts=fints(myfts1.dates,fts2mat(myfts1)/100,{'Open','High','Low','Close'},1,'NewFTS')>>addup=myfts1+newfts>>newfts2=fints(myfts1.dates,fts2mat(myfts1/10000),...{'Rat1','Rat2','Rat3','Rat4'},1,'NewFTS');>>myfts1+fts2mat(newfts2)具有不同數(shù)據(jù)序列名稱的代數(shù)運算金融時間序列建模

建立具體的時間序列模型,需解決如下三個問題:(1)模型的具體形式(2)時間序列變量的滯后期(3)通過檢查隨機擾動項的結(jié)構(gòu)對模型進行檢驗常用的線性模型(均值模型)p階自回歸過程(AR(p)):Xt=

1Xt-1+

2Xt-2+…+

pXt-p+

t

q階滑動平均過程(MA(q)):Xt=

t+

1

t-1+

2

t-2+

+

q

t-q(p,q)階自回歸滑動平均過程Xt=

1Xt-1+

2Xt-2+…+

pXt-p+

t

1+

t-1+

2

t-2+

+

q

t-q自相關(guān)函數(shù)與偏自相關(guān)函數(shù)(1)autocorrautocorr(Series,nLags,M,nSTDs)[ACF,Lags,Bounds]=autocorr(Series,nLags,M,nSTDs)(2)parcorr

parcorr(Series,nLags,R,nSTDs)[PartialACF,Lags,Bounds]=parcorr(Series,nLags,R,nSTDs)利用MATLAB自帶數(shù)據(jù)進行演示>>loadgarchdata.mat>>a=price2ret(DEM2GBP);>>parcorr(a);%計算并畫出收益率序列的偏相關(guān)系數(shù)>>title('DEM2GBP的PACF')>>[PartialACF,Lags,Bounds]=parcorr(a,[],2);

>>autocorr(a);title('DEM2GBP的ACF')%計算并畫出收益率序列的自相關(guān)系數(shù)>>[ACF,Lags]=autocorr(a);時間序列的定階

ACF和PACFFPE

AIC和BIC也是判別時間序列模型優(yōu)劣的標(biāo)準(zhǔn)AIC=(-2×LIF)+2×參數(shù)個數(shù)

BIC=(-2×LIF)+參數(shù)個數(shù)×log(樣本個數(shù))

帶外部變量的ARMA模型m=armax(data,orders)m=armax(data,'na',na,'nb',nb,'nc',nc,'nk',nk)例:用MA(5)時間序列模型對深發(fā)展2005年10月21日到2006年9月29日的日收益率進行估計,并計算其自相關(guān)系數(shù)。

【例5.2.1】下面我們利用MATLAB自帶數(shù)據(jù)進行演示,執(zhí)行如下代碼:>>loadgarchdata.mat>>a=price2ret(DEM2GBP);>>parcorr(a);>>title('DEM2GBP的PACF')>>[PartialACF,Lags,Bounds]=parcorr(a,[],2);>>[Lags,PartialACF]ARMA-GARCH模型garchset、garchfit、garchsim、garchinfer和garchpred。,,

garchset具有創(chuàng)建或修改GARCH模型結(jié)構(gòu)的功能

調(diào)用方式:Spec=garchset('Parameter1',Value1,'Parameter2',Value2,...)Spec=garchset(OldSpec,'Parameter1',Value1,...)Spec=garchsetgarchset【例5.2.3】建立一個GARCH(1,1)模型,然后將其修改成一個GARCH(1,2)模型,并且提取參數(shù)P,Q的值。在MATLAB中執(zhí)行如下命令:>>spec=garchset(‘P’,1,‘Q’,1)%建立一個GARCH(P=1,Q=1)模型>>spec=garchset(spec,'Q',2)%改變spec成一個GARCH(P=1,Q=2)模型創(chuàng)建AR(2)-GARCH(1,2)的模型>>spec=garchset('C',0,'AR',[0.5-0.8],'K',0.0002,'GARCH',0.8,'ARCH',[0.10.05],'distribution','T','DoF',5);>>garchplot(garchsim(spec))GARCH過程的參數(shù)估計

garchfit的調(diào)用方式:[Coeff,Errors,LLF,Innovations,Sigmas,Summary]=garchfit(Series)[Coeff,Errors,LLF,Innovations,Sigmas,Summary]=garchfit(Spec,Series)[Coeff,Errors,LLF,Innovations,Sigmas,Summary]=garchfit(Spec,Series,X)【例5.2.5】對自帶數(shù)

溫馨提示

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

評論

0/150

提交評論