Matlab金融计算讲义

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

专题十一:MATLAB金融计算目录金融时间序列分析1固定收益证券计算2资产组合计算3金融衍生品计算4蒙特卡罗模拟6金融数据可视化技术7有限差分法定价5时间序列变量的创立1.1金融时间序列的统计特征1.2时间序列模型的估计1.3GARCH模型的参数估计1.4第1章金融时间序列分析金融时间序列GUI1.51.1时间序列变量的创立1.1.1fints函数创立时间变量序列Matlab中有专门的时间序列格式来保存时间序列数据。命令为fints(dates,data)。第一列为时间,其他列为相应的数据。例1-1文件:fts_ex01.m程序:dates=[today:today+5]';data=[1:6]';tsobjkt=fints(dates,data)1.1.2时间序列数据的读取(1)ascii2fts函数读取后缀为txt、dat文件的数据。tsobj=ascii2fts(filename,timedata,descrow,colheadrow,skiprows)filename:文件名timedata:判断是不是按天记录的数据,是则输入‘t’,否则为‘nt’。可缺省。descrow:确定文件中文字说明的行数colheadrow:变量名所在的行数skiprows:不需要读入的列例1-2读取文件名为fts_ex02.txt内的数据命令:tsobj=ascii2fts('fts_ex02.txt',1,2)结果:tsobj=desc:USSTCompanyStockfreq:Unknown(0)'dates:(6)''CLOSE:(6)''06-Jun-2013'[1]'07-Jun-2013'[2]'08-Jun-2013'[3]'09-Jun-2013'[4]'10-Jun-2013'[5]'11-Jun-2013'[6](2)xlsread函数读取excel中的数据。[data,txt]=xlsread(‘filename.xlsx','Sheet1');data:读取的数据txt:读取的文本,包括日期。例1-3读取文件名为fts_ex03.xlsx内的数据。[data,txt]=xlsread('fts_ex03.xlsx','Sheet1');结果:2013/012013/022013/032013/042013/053233343536373839日期收盘价2013.1.4-2013.5.21青岛啤酒的日收盘价(3)fetch函数从网络获取股票数据(Yahoo、Bloomberg)c=yahoo;%从雅虎获取数据x=fetch(c,'security_name','fields','fromedate','todate','period');security:证券的名字(代号)fields可取close,high,volumeperiod可取d,w,m,v,分别表示日、周、月、红利例1-4从雅虎获取宝钢股份2013.1.4至2013.5.21的日收盘价,并绘图。文件:fts_ex04.m结果:2013/012013/022013/032013/042013/054.74.754.84.854.94.9555.055.15.155.2日期收盘价2013.1.4-2013.5.21宝钢股份的日收盘价1.1.3数据的简单处理(1)日期运算函数用途格式now现在时刻a=nowtoday现在日期a=todaydatestr数字日期转换为字符串日期a=datestr(num)datenum字符串日期转换为数字日期a=datenum(str)day确定每月的第几天a=day(date)weekday查询星期[num,str]=weekday(date)month查询月份[num,str]=month(date)daysact计算日期间隔a=dayscat(date1,date2)函数用途格式todaily从时间序列中抽取日数据a=todaily(fints_data)toweekly从时间序列中抽取周末数据a=toweekly(fints_data)tomonthly从时间序列中抽取月末数据a=tomonthly(fints_data)toquarterly从时间序列中抽取季度末数据a=toquarterly(fints_data)tosemi从时间序列中抽取半年度末数据a=tosemi(fints_data)toannual从时间序列中抽取年度末数据a=toannual(fints_data)特定日期抽取函数(2)数据类型转换函数用途格式fts2ascii保存为文本文件a=fts2ascii(name,tsobj)fts2mat转换为矩阵数据a=fts2mat(tsobj,datesflag)extfield抽取列数据a=extfield(tsobj,name)price2ret转换为收益率a=price2ret(price)ret2price转换为价格a=ret2price(ret,StartPrice)(3)缺失数据的处理利用插值法补全数据。命令:newfts=fillts(oldfts,method)oldfts:原始数据method:处理方法。‘linear’:线性插值法‘cubic’:3次插值法‘spline’:样条插值法‘nearest’:最近法‘pchip’:逐段光滑的3次hemite多项式法1.2.1平稳性检验(1)ADF检验原假设h0:时间序列为单位根过程[h,pValue,stat,cValue,reg]=adftest(y,'Para_Name',Para_Value,...)输入参数:y:时间序列变量;Para_Name:参数名字,包括:'alpha','lags','model','test'model包括AR,ARD,TS,test包括t1,t2,Fh=0不能拒绝时间序列为单位根过程的假设,h=1拒绝pValue:p值,若pValuealpha,拒绝时间序列为单位根过程的原假设cValue:统计量拒绝原假设的临界值reg:结构型变量,包括有效样本容量,回归系数等1.2金融时间序列的统计分析(2)Phillips-Perron检验调用方式:[h,pValue,stat,cValue,reg]=pptest(y,'Para_Name',Para_Value,...)输入参数同上1.2.2相关性函数名称格式corrcoef相关系数r=corrcoef(x,y)parcorr偏相关系数[a,b]=parcorr(series)autocorr自相关系数[a,b]=autocorr(x)1.2.3假设检验(1)单个样本均值的t检验命令:[h,p,ci,stats]=ttest(X,m,alpha,tail)输入参数:X:样本m:理论值alpha:显著性水平tail:检验方式,tail=0表示双尾检验,tail=1表示右尾检验(h0:ux=m),tail=-1表示左尾检验(h0:ux=m)ci:1-alpha的置信区间stats:结构型变量,给出了t统计量,t统计量的自由度,样本的标准差;(2)两个样本均值的t检验[h,p,ci,stats]=ttest2(X,Y,alpha,tail,vartpye)输入参数:vartpye:equal表示两个样本的方差相等,unequal表示方差不等。(3)单个样本卡方检验[h,p,ci,stats]=vartest(X,V,alpha,tail)输入参数:V:方差的理论值(4)两个样本的F检验[h,p,ci,stats]=vartest2(X,Y,alpha,tail)1.3时间序列模型的估计1.3.1时间序列模型介绍(1)自回归(AR)模型如果时间序列是它前期值与随机项的线性函数,即引入滞后算子Q,并记AR(Q)为:模型可以写为:(2)移动平均(MA)模型如果时间序列是随机项的线性组合,即引入滞后算子Q,并记MA(Q)为:模型可以表示为:(3)自回归移动平均模型(ARMA)如果时间序列是随机项的线性组合和前期的线性函数,即引入滞后算子Q,模型可以表示为:MATLAB中时间序列的模型如下:其中:A(Q),B(Q),C(Q),D(Q),F(Q)都是含有延迟算子的多项式。1.3.2时间序列模型估计(1)AR模型的估计命令:m=ar(y,n)[m,ref1]=ar(y,n,approach,window)y:观察值n:模型的阶数approach:计算模型参数的方法‘fb’:Forward-Backward方法’ls’:最小二乘’yw’:Yule-Walker方法’burg’:Burg’sLattic-Based方法’gl’:GeomaticLattic方法window:处理缺失值的方法‘now’:没有缺失值‘yw’:Yule-Walker方法处理缺失值例1-5给出青岛啤酒2012年5月2日至2013年5月21日的日收盘价收益率,用2阶的AR模型进行估计。文件:fts_ex05.m结论:偏相关系数都落在置信区间内,AR模型不适合描述其收益率。(2)ARMAX模型的估计命令:sys=armax(data,[nanbncnk])sys=armax(data,[nanbncnk],Name,Value)data:数据[nanbncnk]:滞后阶数ARMAX模型的格式:其中:如果只取nanc,则模型变为ARMA模型如果只取na,则模型变为AR模型如果只取nc,则模型变为MA模型如果只取na,nb,nk,则模型变为ARX模型即:AR模型:armax(data,’na’,na)ARX模型:armax(data,’na’,na,’nb’,nb,’nk’,nk)MA模型:armax(data,’nc’,nc)ARMA模型:armax(data,’na’,na,’nc’,nc)例1-6利用例5中的数据,用MA模型进行估计。文件:fts_ex06.m例1-7利用青岛啤酒和沪深300指数2012年5月2日至2013年5月21日的日收盘价收益率,用ARMAX模型进行估计。文件:fts_ex07.m(3)广义线性模型PEM调用方式:sys=pem(data,’na’,na,’nb’,nb,’nc’,nc,’nd’,nd,’nf’,nf,’nk’,nk)(4)Box-Jenkins模型调用方式:sys=bj(data,’nb’,nb,’nc’,nc,’nd’,nd,’nf’,nf,’nk’,nk)1.4GARCH模型1.4.1广义自回归条件异方差(GARCH)模型1.4.2GARCH模型的参数设定命令:Spec=garchset(param1,val1,param2,val2,...)例1-8生成GARCH模型可识别的参数命令:spec=garchset(‘c’,0,’k’,0.0001,’garch’,0.9,’arch’,0.05)1.4.3模拟生成GARCH(P,Q)数据命令:y=garchsim(spec,num)例1-9模拟生成出例8中GARCH(1,1)模型的10个样本值。命令:spec=garchset(‘c’,0,’k’,0.0001,’garch’,0.9,’arch’,0.05)y=garch(spec,10)1.4.4GARCH模型的参数估计命令:[Coeff,Errors,LLF,Innovations,Sigmas]=garchfit(Spec,Series)Series:时间序列的样本观测值Coeff:模型的参数估计值Errors:模型参数的标准差LLF:最大似然估计法中的对数目标函数值Innovations:残差向量Sigmas:对应于Innovations的标准差。例1-10对于例8中的GARCH(1,1)模型,模拟生成数据,然后进行估计。文件:fts_ex10.m1.5金融时间序列GUI1.5.1ftstool演示1.5.2ftsgui演示1.5.3tatool演示1.5.1ftstool1.建立和管理时间序列对象;2.并可以连接ftstool。演示文件:f

1 / 137
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功