Matlab金融计算讲义解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)缺失数据的处理 利用插值法补全数据。
命令:newfts=fillts(oldfts,method) oldfts:原始数据 method:处理方法。 ‘linear’:线性插值法 ‘cubic’:3次插值法 ‘spline’:样条插值法 ‘nearest’:最近法 ‘pchip’:逐段光滑的3次hemite多项式法
1.1 时间序列变量的创立
1.1.1 fints函数创立时间变量序列 Matlab中有专门的时间序列格式来保存时间
序列数据。命令为fints(dates, data)。第一列为时 间,其他列为相应的数据。 例1-1
文件:fts_ex01.m 程序:dates=[today:today+5]';
data=[1:6]'; tsobjkt = fints(dates, data)
2013.5.21的日收盘价,并绘图。
文件:fts_ex04.m
结果:
5.2
2013.1.4-2013.5.21宝 钢 股 份 的 日 收 盘 价
5.15
5.1
5.05
5
收盘价
4.95
4.9
4.85
4.8
4.75
4.7 2013/01
2013/02 2013/03
2013/04
2013/05
1.1.3数据的简单处理
(2)xlsread函数 读取excel中的数据。
[data,txt] = xlsread(‘filename.xlsx','Sheet1'); data:读取的数据 txt:读取的文本,包括日期。
例1-3
读取文件名为fts_ex03.xlsx内的数据。
[data,txt] = xlsread('fts_ex03.xlsx','Sheet1');
1.2 金融时间序列的统计分析
1.2.1平稳性检验 (1)ADF检验
原假设h0:时间序列为单位根过程 [h,pValue,stat,cValue,reg]=adftest(y,'Para_Name',Para_Value,...) 输入参数: y:时间序列变量; Para_Name:参数名字,包括:'alpha','lags','model','test'
专题十一: MATLAB 金融计算
目录
1 金融时间序列分析 2 固定收益证券计算 3 资产组合计算 4 金融衍生品计算 5 有限差分法定价 6 蒙特卡罗模拟 7 金融数据可视化技术
第1章 金融时间序列分析
1.1 时间序列变量的创立 1.2 金融时间序列的统计特征 1.3 时间序列模型的估计 1.4 GARCH模型的参数估计 1.5 金融时间序列GUI
特定日期抽取函数
函数 todaily toweekly tomonthly toquarterly tosemi toannual
用途 从时间序列中抽取日数据 从时间序列中抽取周末数据 从时间序列中抽取月末数据 从时间序列中抽取季度末数据 从时间序列中抽取半年度末数据 从时间序列中抽取年度末数据
格式 a=todaily(fints_data) a=toweekly(fints_data) a=tomonthly(fints_data) a=toquarterly(fints_data) a=tosemi(fints_data) a=toannual(fints_data)
入‘t’,否则为‘nt’。可缺省。 descrow:确定文件中文字说明的行数 colheadrow:变量名所在的行数 skiprows:不需要读入的列
例1-2 读取文件名为fts_ex02.txt内的数据
命令:
tsobj = ascii2fts('fts_ex02.txt',1, 2) 结果:
tsobj = desc: USST Company Stock freq: 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]
结果:
39
2013.1.4-2013.5.21青 岛 啤 酒 的 日 收 盘 价
38
37
36
收盘价
35
34
33
32 2013/01
2013/02
2013/03 日期
2013/04
2013/05
(3)fetch函数 从网络获取股票数据(Yahoo、Bloomberg) c=yahoo;%从雅虎获取数据
函数 fts2ascii fts2mat extfield price2ret ret2price
(2)数据类型转换
用途 保存为文本文件 转换为矩阵数据 抽取列数据 转换为收益率 转换为价格
格式 a=fts2ascii(name,tsobj) a=fts2mat(tsobj,datesflag) a=extfield(tsobj,name) a=price2ret(price) a=ret2price(ret, StartPrice)
x=fetch(c,'security_name','fields','fromedate',
'todate','period'); security:证券的名字(代号) fields可取close,high,volume period可取d,w,m,v,分别表示日、周、月、 红利
例1-4
从雅虎获取宝钢股份2013.1.4至
1.1.2 时间序列数据的读取
(1)ascii2fts函数 读取后缀为txt、dat文件的数据。
tsobj = ascii2fts(filename, timedata, descrow, colheadrow,skiprows)
filename:文件名 timedata:判断是不是按天记录的数据,是则输
ቤተ መጻሕፍቲ ባይዱ(1)日期运算
函数 now today datestr datenum day weekday month daysact
用途 现在时刻 现在日期 数字日期转换为字符串日期 字符串日期转换为数字日期 确定每月的第几天 查询星期 查询月份 计算日期间隔
格式 a=now a=today a=datestr(num) a=datenum(str) a=day(date) [num,str]=weekday(date) [num,str]=month(date) a=dayscat(date1,date2)