您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > Matlab在金融工程中的应用
张树德著参考文献:MATLAB金融计算与金融数据处理北京航空航天大学出版社,2008Matlab金融工具箱模块1.FinancialToolboxMatlab自带金融工具箱,具有下列功能:固定收益计算日期数据处理资产均值-方差分析时间序列分析有价证卷的收益和价格统计分析定价和灵敏度分析年金和现金流计算抵押支持债卷FinancialDerivativesToolbox是金融衍生产品工具箱,用于固定收益、金融衍生物以及风险投资评估分析,也可用于各种金融衍生物定价策略以及敏感度分析。2.FinancialDerivativesToolbox3.FinancialTimeSeriesToolboxFinancialTimeSeriesToolbox用于分析金融市场的时间序列数据。金融数据是时间序列数据,例如股票价格或每天的利息波动,可以用该工具箱进行更加直观的数据管理。该工具箱支持下列功能:③技术分析函数分析投资。②可视化金融时间序列的对象;①提供两种创建金融时间序列的对象(用构造器和转换文本文件);Fixed-IncomeToolbox扩展了Matlab在金融财经方面的应用,可以用固定收益模型进行计算,例如定价、收益和现金流动等有价证券的固定收益计算。支持的固定收益类型包括有价证券抵押回报、社会债卷和保证金等。该工具箱还能够处理相应金融衍生物的计算,支持抵押回收有价证券、国债和可转换债卷等的计算。GarchToolbox提供了一个集成计算环境,允许对单变量金融时序数据的易变性进行建模。GarchToolbox使用一个广义ARMAX/GARCH复合模型对带有条件异方差的金融时序数据进行仿真、预测和参数识别。GarchToolbox提供了基本工具为单变量广义自回归条件异方差GARCH(GeneralizedAutoRegressiveConditionalHeteroskedasticity)易变性进行建模。GarchToolbox采用单变量GARCH模型对金融市场中的变化性进行分析。4.Fixed-IncomeToolbox5.GarchToolbox上述工具箱基本上囊括了通常的金融计算,适用于金融学术研究,特别适合金融实务工作者进行金融计算。FinancialToolbox提供了一个基于Matlab的财务分析支撑环境,可以完成许多种财务分析统计任务;从简单计算到全面的分布式应用,财务工具箱都能够用来进行证卷定价、资产组合收益分析、偏差分析和优化业务量等工作。金融数据统计本讲主要介绍了统计学的基本原理和基本统计量。要求读者掌握均匀分布、正态分布随机数生成办法,学会常用的统计绘图命令,掌握回归的方法,学会运用主成份、因子分析金融问题。一、随机模拟基本原理1977年,菲利浦.伯耶勒(PhelimBoyle)提出了模拟方法求解金融资产定价问题。其想法是假设资产价格分布是随机波动,如果知道了这个波动过程,就可以模拟不同的路径;每做完一次模拟,就产生一个最终资产价值,在进行若干次这样的过程,那么所得到的结果就是一个最终资产价值分布,从这个分布中可以得到期望的资产价格。(一)随机数生成函数在Matlab中unidrnd函数可以生成1~N的均匀分布随机数。其调用方式为:R=unidrnd(N)随机数矩阵确定输出随机矩阵R的行数生成在1~N之间的一个随机数1.均匀分布随机数生成函数R=unidrnd(N,m)R=unidrnd(N,m,n)确定输出随机矩阵R的列数输出方阵unifrnd(0,1)ans=0.4565如果需要生成服从连续均匀分布的随机数,则可以调用unifrnd函数,其调用方式为:R=unifrnd(A,B)A,B是随机数的下界与上界如:生成一个0~1之间随机数:2.生成服从连续均匀分布的随机数R=unifrnd(A,B,m)R=unifrnd(A,B,m,n)m,n表示随机数的维数下面介绍两种方法生成1~2之间随机矩阵K,K为5行6列矩阵。方法1方法2unifrnd(1,2,[5,6])ans=1.93341.13381.57511.01291.61241.58691.68331.20711.45141.38401.60851.05761.21261.60721.04391.68311.01581.36761.83921.62991.02721.09281.01641.63151.62881.37051.31271.03531.19011.7176unifrnd(1,2,5,6)ans=1.69271.15361.55481.27311.90841.64081.08411.67561.12101.25481.23191.19091.45441.69921.45081.86561.23931.84391.44181.72751.71591.23241.04981.17391.35331.47841.89281.80491.07841.1708R=normrnd(mu,sigma)正态分布的均值随机矩阵R的行数正态分布的方差3.生成正态分布的随机数R=normrnd(mu,sigma,m)R=normrnd(mu,sigma,m,n)随机矩阵R的列数调用方式为:normrnd(0,1)ans=-0.4326如:生成均值为0,方差为1正态分布的随机数,可用命令下面用两种方法生成均值为0,方差为1的正态分布矩阵,矩阵为5行6列。方法1方法2normrnd(0,1,[5,6])ans=-0.31790.7310-0.25560.11840.7990-1.00781.09500.5779-0.37750.31480.9409-0.7420-1.87400.0403-0.29591.4435-0.99211.08230.42820.6771-1.4751-0.35100.2120-0.13150.89560.5689-0.23400.62320.23790.3899normrnd(0,1,5,6)ans=0.08800.7812-2.20230.0215-1.0559-1.1283-0.63550.56900.9863-1.00391.4725-1.3493-0.5596-0.8217-0.5186-0.94710.0557-0.26110.4437-0.26560.3274-0.3744-1.21730.9535-0.9499-1.18780.2341-1.1859-0.04120.12864.特定分布随机数发生器在Matlab中有统一格式随机数发生器,函数名称为random,可以生成许多服从不同分布的随机数。调用方式y=random('name',A1,A2,A3,m,n)输出参数name说明随机分布的类型,具体如下表所列。类别贝塔二项分布卡方指数分布F分布伽码对数正态分布BetabinomialChisquareExponentialFGammaLognormal简写betabinochi2expfgamlogn类别均匀分布泊松分布T分布正态分布非中心F分布非中心T分布分布UniformPoissonTNormalNoncentralFNoncentralT简写unifpoisstnormncfnct特定分布的参数表a=random('Normal',0,1,3,2)a=0.6565-0.2624-1.1678-1.2132-0.4606-1.3194下面用random函数生成3行2列的正态分布随机数矩阵,正态分布的均值为0、方差为1。5.多元正态分布的随机数多元正态分布的随机数可以用如下形式表示:式中:μ是均值向量,∑是协方差矩阵。Xi~N(μ,∑)mu均值sigma协方差cases样本个数在Matlab中可使用mvnrnd函数生成多元正态分布函数。调用方式R=mvnrnd(mu,sigma)R=mvnrnd(mu,sigma,cases)输入参数mu=[23];%均值SIGMA=[11.5;1.53];%协方差矩阵r=mvnrnd(mu,SIGMA,100);%生成100个随机样本plot(r(:,1),r(:,2),'+')下面生成一个多元正态分布的例子。样本的散点图如右所示:二元正态分布的散点图(二)多元正态分布密度函数mu=[1-1];Sigma=[0.90.4;0.40.3];X=[21];p=mvnpdf(X,mu,Sigma)p=1.3828e-005多元正态分布的密度函数是mvnpdf。调用方式mvnpdf(X,mu,Sigma)下面是一个例子。mu=[1-1];Sigma=[0.90.4;0.40.3];X=[21];f=mvncdf(X,mu,Sigma)f=0.8541F(x,y)=P(Xx,Yy)如果计算分布函数,则X、Y为二元随机正态分布,分布函数F(x,y)的定义如下:调用方式为:p=mvncdf(X,mu,SIGMA)下面举一个例子。可以看出:对于随机变量X,Y,有P(X2,Y1)=0.8541也即X2且Y1的概率为0.8541。二、随机变量的数字特征A如果A为向量,则返回值为该向量的平均值;如果A是矩阵,则返回值是每列的平均值。dimdim=1(默认)表示每列平均,dim=2表示每行平均。(一)计算平均值调用方式M=mean(A)mean(A,dim)输入参数在Matlab中计算几何平均数的函数为geomean;计算调和平均数的函数是harmmean函数,调和平均数的计算公式是注意样本数据不能为0。a=[12;34];a=1234下面是一个例子。mean(a)ans=23mean(a,2)ans=1.50003.5000,1inMx(二)剔除异常值后的平均值X样本观察矩阵。percent剔除比率,例如percent=10表示同时剔除最大的5%和最小的5%观察值。dimdim=1(默认)表示对每列求平均值,dim=2表示对每行求平均值。有时观察数据中有异常大或异常小的值,这些异常值会对平均值产生影响,需要去掉异常值。例如在体操比赛中,去掉一个最高分和最低分,然后计算运动员的最后得分。在Matlab中也有剔除异常值后的平均数。调用方式M=trimmean(X,percent)M=trimmean(X,percent,dim)输入参数x=rand(1,20)trimmean(x,10)ans=0.5145(三)计算中位数A样本观测矩阵dimdim=1(默认)表示对每列求中位数,dim=2表示对每行求中位数剔除10%的异常值之后的平均数为0.5145。调用方式M=median(A)M=median(A,dim)输入参数有时数据中出现NaN,在计算中位数时需要忽略NaN,这时需要调用nanmedian函数。(四)计算方差与标准差A样本值flag0(默认值)表示方差计算公式为1表示方差计算公式为21()1NiixxVarN21()NiixxVarN一般说来,资产组合的风险越大,方差越大,波动性越大。方差由于其简单、直观以及良好的统计性质使其成为风险的代名词。在Matlab中计算方差、标准差的函数分别是Var、Std。方差调用方式Var(A)Var(A,flag)标准差调用方式Std(A)Std(A,flag)输入参数(五)计算样本的百分位数x=rand(1,20);prctile(x,20)ans=0.1688调用方式Y=prctile(X,p,dim)输入参数X观察值p计算大于p%值的数dim同上下面是一个例子(六)计算样本极差r=range(q)r=range(q,dim)极差就是样本极大值与极小值的差,反映样本的离散程度。调用方式x=rand(1,20);range(x)ans=0.8404下面是一个例子(七)计算偏度与峰度方差作为风险的度量指标并不是完整的。比如讲,两种资产收益分布的均值和方差都是相同的,但是一种资产收益是左偏的,另一种是右偏的。对于
本文标题:Matlab在金融工程中的应用
链接地址:https://www.777doc.com/doc-3382939 .html