第1章-MATLAB数值计算及金融运用

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

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

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

资源描述

MATLAB金融计算MATLAB金融界主要用户金融服务银行中央银行资产管理保险能源贸易金融分析与建模流程图数据获取文件数据库网上数据研究和量化数据分析与可视化金融建模应用开发发布报告应用产品金融计算工具箱数据获取文件数据库网上数据研究和量化数据分析与可视化金融建模应用开发发布报告应用产品FixedincomeFinancialDerivativesEconometricsSpreadsheetLinkEXDatabaseDatafeedFinancialStatisticsOptimizationBuilderExBuilderNEBuilderJAMATLABCompilerReportGeneratorMATLABParallelComputingMATLABDistributedComputingServer创立时间序列变量时间序列数组的创立和读取•利用fints函数创立日期型数组price=[1:6]’dates=[today:today+5]’Tsobjkt=fints(dates,price)•金融时间序列文件读取Tsobjkt=ascii2fts(’at.dat’)16-Oct-2008117-Oct-2008218-Oct-2008319-Oct-2008420-Oct-2008521-Oct-20086时间序列数组运算•日期运算–查找现在时刻nowdateste(ans)–查询当天日期today–序数型日期转化为字符串日期datestr(ans)–字符串日期转化为序数型日期datenum(’03-aug-2003’)–确定每月的第几天Day=day(’22-Jan-2007’)查询星期[n,s]=weekday(’22-Jan-2007’)查询月份[n,s]=month(D)将字符型日期以向量形式输出V=datevec(N)计算日期间隔daysact(’27-feb-2008’,’08-aug-2008’)时间序列数据合并newfts=merge(fts1,fts2,…,Method,RefObj)特定日期抽取函数todaily,toweekly,tomonthly,toquarterly,tosemi,toannual时间序列数组运算•以招商银行(600036)为例,说明如何将分析家软件数据导入到MATLAB中,然后进行相关操作.可从分析家网站()下载步骤1:打开分析家软件,输入代码600036,出现招商银行股价图时间序列数组运算•步骤2:单击鼠标右键,在弹出的快捷菜单中选择“复制数据”命令,弹出一个提示框时间序列数组运算•步骤3:打开Excel,将数据粘贴到Excel文件中时间序列数组运算•步骤4:由于日期型格式是yyyy-mm-dd,不符合MATLAB默认格式,单击“A”列,单击鼠标右键,选择“设置单元格格式”菜单项,出现对话框时间序列数组运算•步骤5:对日期型数据进行修改,选择“14-Mar-01”的格式,单击“确定”按钮,日期显示格式发生变化时间序列数组运算•步骤6:拖动鼠标把所要复制的内容确定下来,单击鼠标右键,选择“复制”菜单项,打开Windows记事本,把复制的内容粘贴到记事本中,注意把汉字译成英文,以便MATLAB识别时间序列数组运算•步骤7:将数据保存到MATLAB7/work目录下的at.txt文件•步骤8:用ascii2fts函数将at.txt中的数据读入MATLAB中,命令如下:–zhaohang=ascii2fts(‘at.txt’,2,2)时间序列数组运算•时间序列数据转化为其他类型数据–时间序列数据保存为文本文件stat=fts2ascii(filename,tsobj,exttext)filename——新文件名tsobj——需要转化的fints型格式数据exttext——不需要的描述项的行数,也可以不输入–时间序列数据转化为矩阵数据tsmat=fts2mat(tsobj,datesflag)tsobj——需要转化的fints型格式数据datesflag——0(默认值)表示不输出日期到矩阵中,1表示日期也转换时间序列数组运算•fints型数据求最大值、最小值、均值、标准差及排序–max,min,mean,std,sortfts•实现时间序列的转换–newfts=convertto(oldfts,newfreq)–oldfts——需要转换的数据–newfreq——转换的目标,具体如下:•’D’或’d’——天•’W’或’w’——周•’M’或’m’——月•’Q’或’q’——季度•’S’或’s’——半年•’A’或’a’——年–如:•weekzh=converto(zhaohang,’w’)时间序列数组运算•时间序列数据的抽取–ftse=extfield(tsobj,fieldnames)–tsobj——原始数据–fieldnames——原始数据中的字段名–如:•weekzhclose=extfield(weekzh,’close’)–还可以用结构变量的方法•weekzhclose=weekzh.close•将价格序列转化为收益率序列–price2ret•将收益率序列转化为价格序列–ret2price时间序列数组运算•处理时间序列中的缺失数据–newfts=fillts(oldfts,method)–method:•’linear’或’le’——线性插值法•’cubic’或’c’——三次插值法•’spline’或’s’——样条法•’nearest’或’n’——最近法•’pchip’或’p’——逐段光滑的三次Hemite多项式法MATLAB和Excel数据连接1.打开Excel软件,单击“工具”菜单,选择“加载宏”菜单项,弹出“加载宏”对话框。2.在“加载宏”对话框中,单击“浏览”按钮,在MATLAB/toolbox/exlink文件夹下选中Excllink文件,单击“确定”按钮。3.重新回到Excel中“加载宏”对话框,在“ExcelLink2.2forusewithMATLAB”选项前打钩加载ExcelLinkMATLAB和Excel数据连接启动MATLAB将变量输入MATLAB把MATLAB中变量输入Excel中执行MATLAB命令MATLAB和Excel数据连接MATLAB自动启动和Excel连接设置鼠标在桌面MATLAB图标上右击,弹出“属性”快捷菜单,在对话框“目标”文本框的“Matlab\bin\win32\MATLAB.exe”后面加上“/automation”MATLAB和Excel数据连接ExcelLink的使用连接管理函数函数作用函数作用MATLABinit初始化ExcelLink,启动MATLABMLClose终止MATLABMLAutoStart自动启动MATLABMLOpen启动MATLABMATLAB和Excel数据连接ExcelLink的使用数据管理函数函数作用函数作用MATLABfcn对于给定的Excel数据运行MATLAB命令MLAppendMatrix向MATLAB工作区添加Excel数据表MATLABsub对于给定的Excel数据运行MATLAB命令,并制定输出位置MLPutMatrix用Excel数据表创建或覆盖MATLAB数据MLEDeleteMatrix删除MATLAB矩阵MLPutVar用Excel数据表VBA创建或覆盖MATLAB数据MLEvalString执行MATLAB命令MLGetVar向Excel数据表VBA写MATLAB数据内容MLGetMatrix向Excel数据表写入MATLAB数据MATLAB和Excel数据连接ExcelLink的使用直接把数据输入到MATLAB中把Excel中盐田港(000088)从2008年8月1日到9月30日数据录入MATLAB中,保存变量名为ytg_0000881.Excel中盐田港数据分别为日期、收盘价和成交量2.单击“startmatlab”按钮启动MATLABMATLAB和Excel数据连接ExcelLink的使用直接把数据输入到MATLAB中3.单击“putmatrix”按钮弹出一个菜单,根据菜单提示将Excel中数据用鼠标选定,传输到MATLAB中变量名为ytg_000088,然后单击“确定”按钮MATLAB和Excel数据连接ExcelLink的使用直接把数据输入到MATLAB中MATLAB和Excel数据连接ExcelLink的使用MATLAB中自带Excel文件介绍打开MATLAB的toolbox中exlink目录下的ExliSamp.xls文件MATLAB和Excel数据连接ExcelLink的使用MATLAB中自带Excel文件介绍1.打开sheet1,将Excel中DATA数据传给MATLAB工作区中变量data(存储了3个变量25个观察值)•MLPutMatrix(”data”,DATA)2.在Excel中执行MATLAB命令•MLEvalString(“y=data(:,3)”)•MLEvalString(“e=ones(length(data),1)”)•MLEvalString(“A=[edata(:,1:2)]”)3.计算回归系数•MLEvalString(“beta=A\y”)4.计算回归结果•MLEvalString(“bfit=A*beta”)5.将原结果和回归结果相比较•MLEvalString(“[y,k]=sort(y)”)•MLEvalString(“fit=fit(k)”)•MLEvalString(“n=size(data,1)”)6.用MATLAB中多项式进行拟合•MLEvalString(“[p,S]=polyfit(1:n,y’,5)”)•MLEvalString(“newfit=polyval(p,1:n,S)”)7.对拟合结果作图•MLEvalString(plot(1:n,y,'bo',1:n,fit,'r:',1:n,newfit,'g')05101520252004006008001000120014001600180020002200datafitnewfitMATLAB和Excel数据连接ExcelLink的使用MATLAB中自带Excel文件介绍用二叉树方法计算欧式看跌期权价格1.打开”sheet4”,数据B4:B10名称是bindata,分别存放股票价格、行权价、无风险利率、期权存续期(5/12)、时间离散步长(1/12)、股票标准差以及是否是欧式(美式)期权,B15开始存放二叉树各节点价格asset_tree,B23开始存放现金流value_tree2.激活D5单元,将Excel中bindata传到MATLAB变量b中,激活D12单元,调用MATLAB中计算二叉树函数binprice,其二叉树数据结果保存在变量p中,价格保存在变量o中。激活D11、D12,分别保存在MATLAB变量asset_tree与value_tree中,注意B15与B23分别是asset_tree与value_tree的起点。MATLAB和Excel数据连接ExcelLink的使用简易方法将Excel数据导入MATLAB1.在Excel中建立一个数据文件MATLAB和Excel数据连接ExcelLink的使用简易方法将Excel数据导入MATLAB2.在MATLAB文件目录浏览器下找到magic文件,将鼠标移动到magic文件上,右击,弹出菜单MATLAB和Excel数据连接ExcelLink的使用简易方法将Excel数据导入MATLAB3.单击数据输入选项。选择变量名。MATLAB和Excel数据连接ExcelLink的使用将Excel日期转化为MATLAB日期•函数——x2mdate•调用方法•MATLABDate=x2mdate(ExcelDateNumber,Convention)•输入参数•xcelDateNumber——Excel日期•Convention——转化方式•0(默认)

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

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

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

×
保存成功