1、第六讲第六讲MATLAB金融计算金融计算1精选课件ppt MATLAB金融工具箱介绍金融工具箱介绍Financial Toolbox(金融工具箱)(金融工具箱)日期数据处理日期数据处理资产均值方差分析资产均值方差分析时间序列分析时间序列分析固定收益计算固定收益计算有价证券的收益和价格有价证券的收益和价格统计分析统计分析定价和灵敏度分析定价和灵敏度分析年金和现金流计算年金和现金流计算抵押支持债券抵押支持债券2精选课件pptFinancial Derivatives Toolbox固定收益、金融衍生品定价固定收益、金融衍生品定价风险评估风险评估敏感度分析敏感度分析对冲比率对冲比率3精选课件pptF
2、inancial Time Series Toolbox创建金融时间序列创建金融时间序列金融时间序列可视化金融时间序列可视化技术分析技术分析4精选课件pptFixed-Income Toolbox国债国债票据票据抵押证券抵押证券公众债券公众债券保证金计算等保证金计算等5精选课件pptGARCH ToolboxGARCH模型参数估计模型参数估计GARCH模型预测模型预测广义自回归条件异方差广义自回归条件异方差(Generalized Auto Regressive Conditional Heteroskedasticity)6精选课件pptMATLAB金融界主要用户金融界主要用户IMF(国际货
3、币基金组织)(国际货币基金组织)Ferderal Reserve Bank(联邦储备银行)(联邦储备银行)Goldman Sachs(高盛)(高盛)JP Morgan(摩根大通)(摩根大通)Morgan Stanley(摩根士丹利)(摩根士丹利)Soloman Smith Barney(所罗门美邦公司)(所罗门美邦公司)Moodys Investors(穆迪投资者服务公司(穆迪投资者服务公司)Ernst&Young(安永国际会计公司(安永国际会计公司)Deloitte&Touche(德勤会计师事务所)(德勤会计师事务所)Price Waterhouse Coopers(普华永道会计师事务所(普
4、华永道会计师事务所)Putnam Investment(百能投资(百能投资)Prudential Securities(美国培基证券公司(美国培基证券公司)Bank of America(美国银行(美国银行)John Hancock(John Hancock互助人寿保险公司互助人寿保险公司)Freddie Mac(房地美(房地美)7精选课件ppt金融业相关内容金融业相关内容常微分与偏微分方程常微分与偏微分方程信号过程信号过程曲线拟合曲线拟合线性代数线性代数矩阵操作矩阵操作概率分布概率分布描述性统计描述性统计非线性回归模型非线性回归模型无约束条件下的非线性最无约束条件下的非线性最小二乘法小二乘法
5、二次规划和线性规划二次规划和线性规划有约束的线性最小二乘法有约束的线性最小二乘法金融数据处理与格式转换金融数据处理与格式转换货币格式货币格式金融数据的图表技术金融数据的图表技术现金流的计算与分析现金流的计算与分析利率期限结构计算利率期限结构计算证券类衍生产品定价与分析证券类衍生产品定价与分析资产组合分析资产组合分析利率模型利率模型利率期限结构敏感性分析利率期限结构敏感性分析条件均值与方差条件均值与方差对冲分析对冲分析GARCH模型模型8精选课件ppt MATLAB金融工具箱框架图金融工具箱框架图 9精选课件ppt创立时间序列变量创立时间序列变量时间序列数组的创立和读取时间序列数组的创立和读取利
6、用利用fints函数创立日期型数组函数创立日期型数组price=1:6dates=today:today+5Tsobjkt=fints(dates,price)金融时间序列文件读取金融时间序列文件读取 Tsobjkt=ascii2fts(at.dat)16-Oct-2008117-Oct-2008218-Oct-2008319-Oct-2008420-Oct-2008521-Oct-2008610精选课件ppt时间序列数组运算时间序列数组运算日期运算日期运算 查找现在时刻查找现在时刻nownowdateste(ans)dateste(ans)查询当天日期查询当天日期todaytoday序数型日
7、期转化为字符串日序数型日期转化为字符串日期期datestr(ans)datestr(ans)字符串日期转化为序数型日字符串日期转化为序数型日期期datenum(03-aug-2003)datenum(03-aug-2003)确定每月的第几天确定每月的第几天Day=day(22-Jan-2007)Day=day(22-Jan-2007)查询星期查询星期n,s=weekday(22-Jan-n,s=weekday(22-Jan-2007)2007)查询月份查询月份n,s=month(D)n,s=month(D)将字符型日期以向量形式输出将字符型日期以向量形式输出V=datevec(N)V=date
8、vec(N)计算日期间隔计算日期间隔daysact(27-feb-daysact(27-feb-2008,08-aug-2008)2008,08-aug-2008)时间序列数据合并时间序列数据合并newfts=merge(fts1,fts2,Menewfts=merge(fts1,fts2,Method,RefObj)thod,RefObj)特定日期抽取函数特定日期抽取函数todaily,toweekly,tomonthly,todaily,toweekly,tomonthly,toquarterly,tosemi,toannualtoquarterly,tosemi,toannual11精选
9、课件ppt时间序列数组运算时间序列数组运算以招商银行以招商银行(600036)为例为例,说明如何将分析家软件数据说明如何将分析家软件数据导入到导入到MATLAB中中,然后进行相关操作然后进行相关操作.可从分析家网站可从分析家网站(http:/)下载下载步骤步骤1:打开分析家软件打开分析家软件,输入代码输入代码600036,出现招商银行股价图出现招商银行股价图12精选课件ppt时间序列数组运算时间序列数组运算步骤步骤2:单击鼠标右键单击鼠标右键,在弹出的快捷菜单中选择在弹出的快捷菜单中选择“复制数据复制数据”命令命令,弹出一个提示框弹出一个提示框13精选课件ppt时间序列数组运算时间序列数组运算
10、步骤步骤3:打开打开Excel,将数据粘贴到将数据粘贴到Excel文件中文件中14精选课件ppt时间序列数组运算时间序列数组运算步骤步骤4:由于日期型格式是由于日期型格式是yyyy-mm-dd,不符合不符合MATLAB默默认格式认格式,单击单击“A”列列,单击鼠标右键单击鼠标右键,选择选择“设置单元格格式设置单元格格式”菜单项菜单项,出现对话框出现对话框15精选课件ppt时间序列数组运算时间序列数组运算步骤步骤5:对日期型数据进行修改对日期型数据进行修改,选择选择“14-Mar-01”的格式的格式,单击单击“确定确定”按钮按钮,日期显示格式发生变化日期显示格式发生变化16精选课件ppt时间序列
11、数组运算时间序列数组运算步骤步骤6:拖动鼠标把所要复制的内容确定下来拖动鼠标把所要复制的内容确定下来,单击鼠标右键单击鼠标右键,选选择择“复制复制”菜单项菜单项,打开打开Windows记事本记事本,把复制的内容粘贴到把复制的内容粘贴到记事本中记事本中,注意把汉字译成英文注意把汉字译成英文,以便以便MATLAB识别识别17精选课件ppt时间序列数组运算时间序列数组运算步骤步骤7:将数据保存到将数据保存到MATLAB7/work目录下的目录下的at.txt文文件件步骤步骤8:用用ascii2fts函数将函数将at.txt中的数据读入中的数据读入MATLAB中中,命令如下命令如下:zhaohang=
12、ascii2fts(at.txt,2,2)18精选课件ppt时间序列数组运算时间序列数组运算时间序列数据转化为其他类型数据时间序列数据转化为其他类型数据时间序列数据保存为文本文件时间序列数据保存为文本文件stat=fts2ascii(filename,tsobj,exttext)filename新文件名新文件名tsobj需要转化的需要转化的fints型格式数据型格式数据exttext不需要的描述项的行数,也可以不输入不需要的描述项的行数,也可以不输入时间序列数据转化为矩阵数据时间序列数据转化为矩阵数据tsmat=fts2mat(tsobj,datesflag)tsobj需要转化的需要转化的fi
13、nts型格式数据型格式数据datesflag0(默认值默认值)表示不输出日期到矩阵中,表示不输出日期到矩阵中,1表示日期也转换表示日期也转换19精选课件ppt时间序列数组运算时间序列数组运算fints型数据求最大值、最小值、均值、标准差及排序型数据求最大值、最小值、均值、标准差及排序max,min,mean,std,sortfts实现时间序列的转换实现时间序列的转换newfts=convertto(oldfts,newfreq)oldfts需要转换的数据需要转换的数据newfreq转换的目标,具体如下:转换的目标,具体如下:D或或d天天W或或w周周M或或m月月Q或或q季度季度S或或s半年半年A
14、或或a年年如如:weekzh=converto(zhaohang,w)20精选课件ppt时间序列数组运算时间序列数组运算时间序列数据的抽取时间序列数据的抽取ftse=extfield(tsobj,fieldnames)tsobj原始数据原始数据fieldnames原始数据中的字段名原始数据中的字段名如:如:weekzhclose=extfield(weekzh,close)还可以用结构变量的方法还可以用结构变量的方法weekzhclose=weekzh.close 将价格序列转化为收益率序列将价格序列转化为收益率序列price2ret将收益率序列转化为价格序列将收益率序列转化为价格序列ret2
15、price21精选课件ppt时间序列数组运算时间序列数组运算处理时间序列中的缺失数据处理时间序列中的缺失数据newfts=fillts(oldfts,method)method:linear或或le线性插值法线性插值法cubic或或c三次插值法三次插值法spline或或s样条法样条法nearest或或n最近法最近法pchip或或p逐段光滑的三次逐段光滑的三次Hemite多多项式法项式法22精选课件pptMATLAB和和Excel数据连接数据连接1.打开打开Excel软件,单击软件,单击“工具工具”菜单,选择菜单,选择“加加载宏载宏”菜单项,弹出菜单项,弹出“加载宏加载宏”对话框。对话框。2.在
16、在“加载宏加载宏”对话框中,单击对话框中,单击“浏览浏览”按钮,在按钮,在MATLAB/toolbox/exlink文件夹下选中文件夹下选中Excllink文文件,单击件,单击“确定确定”按钮。按钮。3.重新回到重新回到Excel中中“加载宏加载宏”对话框,在对话框,在“Excel Link 2.2 for use with MATLAB”选项前打钩选项前打钩加载加载Excel Link23精选课件pptMATLAB和和Excel数据连接数据连接启动启动MATLAB将变量输入将变量输入MATLAB把把MATLAB中变量中变量输入输入Excel中中执行执行MATLAB命令命令24精选课件pptM
17、ATLAB和和Excel数据连接数据连接MATLAB 自动启动和自动启动和Excel连接连接设置设置鼠标在桌面鼠标在桌面MATLAB图标上右击,弹出图标上右击,弹出“属性属性”快捷菜单,在对话框快捷菜单,在对话框“目标目标”文本框的文本框的“Matlabbinwin32MATLAB.exe”后面后面加上加上“/automation”25精选课件pptMATLAB和和Excel数据连接数据连接Excel Link 的使用的使用连接管理函数连接管理函数函数函数作用作用函数函数作用作用MATLABinit初始化初始化Excel Link,启动启动MATLABMLClose终止终止MATLABMLAu
18、toStart自动启动自动启动MATLABMLOpen启动启动MATLAB26精选课件pptMATLAB和和Excel数据连接数据连接Excel Link 的使用的使用数据管理函数数据管理函数函数函数作用作用函数函数作用作用MATLABfcn对于给定的对于给定的Excel数据运数据运行行MATLAB命令命令MLAppendMatrix向向MATLAB 工作区添加工作区添加Excel数据表数据表MATLABsub对于给定的对于给定的Excel数据运数据运行行MATLAB命令,并制命令,并制定输出位置定输出位置MLPutMatrix用用Excel数据表创建或覆数据表创建或覆盖盖MATLAB数据数据
19、MLEDeleteMatrix删除删除MATLAB矩阵矩阵MLPutVar用用Excel数据表数据表VBA创建创建或覆盖或覆盖MATLAB数据数据MLEvalString执行执行MATLAB命令命令MLGetVar向向Excel数据表数据表VBA写写MATLAB数据内容数据内容MLGetMatrix向向Excel数据表写入数据表写入MATLAB数据数据27精选课件pptMATLAB和和Excel数据连接数据连接Excel Link 的使用的使用直接把数据输入到直接把数据输入到MATLAB中中把把Excel中盐田港中盐田港(000088)从从2008年年8月月1日日到到9月月30日数据录入日数据
20、录入MATLAB中中,保存变量保存变量名为名为ytg_0000881.Excel中盐田港数据分别为日期、收盘价中盐田港数据分别为日期、收盘价和成交量和成交量2.单击单击“startmatlab”按钮启动按钮启动MATLAB28精选课件pptMATLAB和和Excel数据连接数据连接Excel Link 的使用的使用直接把数据输入到直接把数据输入到MATLAB中中3.单击单击“putmatrix”按钮弹出一个菜单,根按钮弹出一个菜单,根据菜单提示将据菜单提示将Excel中数据用鼠标选定,中数据用鼠标选定,传输到传输到MATLAB中变量名为中变量名为ytg_000088,然后单击然后单击“确定确定
21、”按钮按钮29精选课件pptMATLAB和和Excel数据连接数据连接Excel Link 的使用的使用直接把数据输入到直接把数据输入到MATLAB中中30精选课件pptMATLAB和和Excel数据连接数据连接Excel Link 的使用的使用MATLAB中自带中自带Excel文件介绍文件介绍打开打开MATLAB的的toolbox中中exlink目录下目录下的的ExliSamp.xls文件文件31精选课件pptMATLAB和和Excel数据连接数据连接Excel Link 的使用的使用MATLAB中自带中自带Excel文件介绍文件介绍1.打开打开sheet1,将将Excel中中DATA数据传
22、给数据传给MATLAB工作区中变量工作区中变量data(存储了(存储了3个变量个变量25个观察值)个观察值)MLPutMatrix(”data”,DATA)2.在在Excel中执行中执行MATLAB命令命令MLEvalString(“y=data(:,3)”)MLEvalString(“e=ones(length(data),1)”)MLEvalString(“A=e data(:,1:2)”)3.计算回归系数计算回归系数MLEvalString(“beta=Ay”)4.计算回归结果计算回归结果MLEvalString(“bfit=A*beta”)5.将原结果和回归结果相比较将原结果和回归结果
23、相比较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)32精选课件pptMATLAB和和Excel数据连接数据连接Excel Link 的使用的使
24、用MATLAB中自带中自带Excel文件介绍文件介绍用二叉树方法计算欧式看跌期权价格用二叉树方法计算欧式看跌期权价格1.打开打开”sheet4”,数据,数据B4:B10名称是名称是bindata,分别存放股票价格、行权价、,分别存放股票价格、行权价、无风险利率、期权存续期(无风险利率、期权存续期(5/12)、时间离散步长()、时间离散步长(1/12)、股票标准差以)、股票标准差以及是否是欧式(美式)期权,及是否是欧式(美式)期权,B15开始存放二叉树各节点价格开始存放二叉树各节点价格asset_tree,B23开始存放现金流开始存放现金流value_tree2.激活激活D5单元,将单元,将Ex
25、cel中中bindata传到传到MATLAB变量变量b中,激活中,激活D12单元,调单元,调用用MATLAB中计算二叉树函数中计算二叉树函数binprice,其二叉树数据结果保存在变量其二叉树数据结果保存在变量p中,中,价格保存在变量价格保存在变量o中。激活中。激活D11、D12,分别保存在,分别保存在MATLAB变量变量asset_tree与与value_tree中,注意中,注意B15与与B23分别是分别是asset_tree与与value_tree的起点。的起点。33精选课件pptMATLAB和和Excel数据连接数据连接Excel Link 的使用的使用简易方法将简易方法将Excel数据
26、导入数据导入MATLAB1.在在Excel中建立一个数据文件中建立一个数据文件34精选课件pptMATLAB和和Excel数据连接数据连接Excel Link 的使用的使用简易方法将简易方法将Excel数据导入数据导入MATLAB2.在在MATLAB文件目录浏览器下找到文件目录浏览器下找到magic文件,将鼠标移动到文件,将鼠标移动到magic文件上,文件上,右击,弹出菜单右击,弹出菜单35精选课件pptMATLAB和和Excel数据连接数据连接Excel Link 的使用的使用简易方法将简易方法将Excel数据导入数据导入MATLAB3.单击数据输入选项。选择变量名。单击数据输入选项。选择变
27、量名。36精选课件pptMATLAB和和Excel数据连接数据连接Excel Link 的使用的使用将将Excel日期转化为日期转化为MATLAB日期日期函数函数x2mdate调用方法调用方法MATLABDate=x2mdate(ExcelDateNumber,Convention)输入参数输入参数xcelDateNumberExcel日期日期Convention转化方式转化方式0(默认)(默认)起始日期为起始日期为1900年年1月月1日日1起始日期为起始日期为1904年年1月月1日日 qw=39083qw=39083 x2mdate(qw)ans=733043 datestr(ans)ans
28、=01-Jan-200737精选课件pptMATLAB与财经网站数据连接与财经网站数据连接获得获得Yahoo网站数据网站数据 建立和建立和yahoo网站服务器连接网站服务器连接调用方式调用方式Connect=yahooConnect=yahoo(URL,IPAdress,PortNumber)输入参数输入参数URLyahoo网站网址网站网址IPAdress代理服务器代理服务器IP地址地址PortNumber代理服务器端口代理服务器端口例子例子Connect=yahoo(http:/,111.222.33.444,5678)38精选课件pptMATLAB与财经网站数据连接与财经网站数据连接获得获
29、得Yahoo网站数据网站数据 获得获得Yahoo网站数据网站数据调用方式调用方式data=fetch(Connect,.)例子例子Connect=yahooClosePrice=fetch(Connect,ko,close,Apr 6 00)ClosePrice=fetch(Connect,IBM,last)Price=fetch(Connect,000001.SZ)Price=fetch(Connect,601168.SS)39精选课件pptMATLAB与财经网站数据连接与财经网站数据连接获得获得bloomberg网站数据网站数据 著名财经数据公司著名财经数据公司 连接函数连接函数bloom
30、berg 调用方式调用方式方式方式1Connect=bloomberg默认端口(默认端口(8194)、默认网址)、默认网址方式方式2Connect=bloomberg(PortNumber,IPAddress)输入参数:机器端口、网址输入参数:机器端口、网址输出参数:用端口建立和输出参数:用端口建立和bloomberg数据服务器的连接数据服务器的连接40精选课件pptMATLAB与财经网站数据连接与财经网站数据连接获得获得bloomberg网站数据网站数据 接受数据函数接受数据函数fetch 调用方式调用方式data=fetch(Connect,)例子例子获取获取IBM股票股票1999年年11
31、月月16日时间序列日时间序列c1=bloombergdata=fetch(c1,IBM US Equity,TIMESERIES,11/16/99)获取获取IBM股票历史上的收盘价,时间从股票历史上的收盘价,时间从1999年年7月月15日到日到8月月2日日data=fetch(c1,IBM US Equity,HISTORY,.Last_Price,07/15/99,08/02/99)确定是否已经连接确定是否已经连接 x=isconnection(Connect)关闭连接关闭连接 close(Connect)41精选课件pptMATLAB和财经网站和财经网站数据接口数据接口GUI命令命令dft
32、ool42精选课件pptMATLAB和财经网站和财经网站数据接口数据接口GUI命令命令dftool43精选课件pptMATLAB和和Word接口接口启动启动Notebook notebook-setup从从Word中启动中启动Notebook 方法方法1:打开:打开MATLABnotebookpc文件夹下文件夹下M-book文件,直接进入编辑状态文件,直接进入编辑状态方法方法2:在:在Word菜单中选中菜单中选中“工具工具”菜单下的菜单下的“模模板和加载项板和加载项”菜单项,然后打开菜单项,然后打开“模板和加载项模板和加载项”对话框菜单,单击对话框菜单,单击“选用选用”按钮,在弹出的对话框按钮
33、,在弹出的对话框中选中中选中M-book即可即可44精选课件ppt上机练习上机练习1.将中国石油将中国石油(601857)2008年年2月月15日至日至2008年年9月月26日的日收益率数据保存到日的日收益率数据保存到zgsy.txt文件中文件中.计算期间的最大跌幅计算期间的最大跌幅.2.计算中国石油计算中国石油(601857)2008年年2月月15日至日至2008年年9月月26日的日收益率均值、标准差及夏普比日的日收益率均值、标准差及夏普比率。把结果分别用率。把结果分别用TXT文件和文件和Excel文件保存。文件保存。45精选课件ppt上机练习上机练习3.将金牛股份(将金牛股份(000937)2005年年10月月14日至日至2006年年1月月10日的股价数据保存在日的股价数据保存在Excel中,然中,然后通过后通过Excllink将收盘价保存到将收盘价保存到MATLAB中。中。计算收益率的均值、方差和夏普比率,然后传计算收益率的均值、方差和夏普比率,然后传回回Excel中。中。46精选课件ppt