24小时热门版块排行榜    

查看: 371  |  回复: 1
当前主题已经存档。

zjun

[交流] 基于Web环境与Matlab技术进行期权价值分析

基于Web环境与Matlab技术进行期权价值分析

1  引言
Mat lab 是Math Works公司开发的“演算纸”式的程序计算语言,是一个跨平台的科学计算环境。它以其强大的计算和绘图功能、大量稳定可靠的算法库、简洁高效的编程语言以及庞大的用户群,成为数学计算工具方面事实上的标准。
在过去的20年中,投资者通过运用布莱克—斯克尔斯期权定价模型,将这一抽象的数字公式转变成了大量的财富。
本文利用MATLAB工具箱中的MATLAB Web Server 工具,使世界各地的用户通过Internet,利用布莱克—斯克尔斯期权定价模型进行期权价格分析,并借助于MATLAB强大的计算与图形展示功能,以图文并貌的方式返回到客户面前。
MATLAB Web Server 可运行于Solaris、Linux 和Windows NT 网络平台,并要求网络服务器软件能够运行公共网关程序(CGI) 。本文以Windows 2000 Server + IIS5. 0 为平台,介绍利用MATLAB 6.5 及其工具箱中的MATLAB Web Server 工具开发基于MATLAB 的Web 应用程序,实现布莱克—斯克尔斯期权定价模型进行期权价格分析的具体过程。
2  MATLAB Web Server工作原理
MATLAB 的Web 应用主要由两部分组成,一部分是MATLAB后台服务程序,它实际上是一个可执行的应用程序matlabserver.exe,是MATLAB应用程序运行的环境;另一部是matlabserver的TCP/IP客户程序,一个可执行程序matweb.exe,是MATLAB Web Server 的核心,负责解释客户机通过HTML页面发送请求,转换为运MATLAB应用程序,应用程序通过matweb.conf 文件找出MATLAB 程序路径,把参数传给该进程进行计算以及其参数传递给matlabserver.exe,matlabserver.exe负责进程进行计算,并将处理结果通过matweb.exe返回给客户。其原理图如图2-1。
由图2-1可知MATLAB Web 应用必须Web服务环境,浏览器客户通过TCP/ IP 协议,请求Web 服务器,它将所有对MATLAB 的请求重定向到进行处理。处理流程见图2-2。


3 MATLAB Web Server环境设置
3.1 系统环境
Windows server 2000
Internet 信息服务IIS 5.0
Mat lab 6.5(包含MATLAB Web Server组件)
3.2 环境配置
(1) 配置IIS
在IIS 管理器中新建Web站点,并在该Web站点建两个目录,一个名为“cgi_bin”,用来存放CGI文件(matlab.exe和matweb.conf),另一个名为“icons”,用于存放MATLAB文件生成的图片文件和应用程序所需的图片文件,其它的HTML文件和M文件放在根目录下。最后为各目录设置好目录属性。
(2) 建立并设置MATLAB 配置文件。
在新建Web 站点的根目录下,建立配置文件matweb. conf 和matlabserver. Conf,并对其进行配置。Matweb.conf 的内容如下:
[Black]
Mlserver=wasdf
Mldir=C:\Inetpub\wwwroot
且每增加一个MATLAB Web 应用,需在matweb.conf 中增加一项配置。
Matwebserver. conf 的内容如下:
-M 1
-P 80
MATLAB Web Server的演示程序需要生成图片,要求有一个\icons目录保存图片。
4 期权价格分析编程系统应用示例
从理论意义上讲,期权的理论可以说是20世纪经济学领域最伟大的发现之一。从金融问题的分析与决策,远远不至于证券投资领域。重大投资的决策分析,总是要有转化为财务指标等形式的信息的支撑。类似可行性研究的分析过程中,财务分析形成重要组成部分。由于传统企业投资分析手段的局限性,无法对投资的战略意义或间接价值量化,财务分析实际只能忽略对它的评价。布莱克—斯科尔斯模型依靠数学计算,对市场迅速反应以降低投资风险的特点,寻求投资的灵活度也能在一定程度制约所造成的危害。经济投资需要进行定量分析、科学预测分析,降低风险等措施。布莱克—斯科尔斯模型如下。
        (公式4-1)
其中:
Pc——买入期权价值
S——当前股票市价
K——施权价
T——距到期日时间长度
——年无风险利率
、 是参数 、 标准正态分布的概率,即



其中: 股票收益的方差、 股票收益的标准差
编制用于MATLAB Web server 的程序,关键在于解决两个问题:MATLAB 程序如何通过HTML 页面获取输入参数;MATLAB 程序如何生成包含输出数据和图片的HTML 文件。这两个问题的解决可以参考mat lab/ toolbox/ webserver/wsdemos 目录下的4 个模板文件(input_template.html、output_template.html、mfile_template.m、tmfile_template.m),其中要点如下。
4.1 HTML输入页面的设计
将文件input_template.html简化和注释删除之后帖在这里,并修改如下:


MATLAB Web Server --Black-Scholes option



Black-Scholes模型的期权资产价格分析系统


请输入系统参数:


%必备项

当前股票市价: %必备项

施权价:

距到期日时间长 度:

年无风险利率:

股票收益:




将其保存为blackscholes.html文件,放在目录C:\Inetpub\wwwroot下,通过 IE就可以浏览了,如图4-1所示:

图4-1 输入页面
可以看到,参数的提交是通过html页面中的表单来完成的。表单
的action 属性必须为"/cgi-bin/matweb.exe",这样才能在用户单击确定时调用mat web程序。
4.2编写MATLAB Web Server应用程序
Function rs = black (in, outfile)
mild = get field(in, 'mild');           % 获得唯一的标志
cd(in.mldir);                     % 设置存储图片的路径
wscleanup('ml*pic.jpeg', 1);        % 删除超出一个小时jpegs图片文件
SS = str2double(in.s_value);        % 从HTML文件取回s_value值
Rr = str2double (in.r_value);
XX = str2double (in.k_value);
TT = str2double (in.t_value);
Vv = str2double (in.v_value);
f = figure('visible','off');           % 创建空的图片文件
N=8                           % 期权价格计算
[TT, XX]=mesh grid (0.01:TT*1.6/N: TT*1.6,0.01:XX*1.6/N: XX*1.6)
For I = 1:N
    For j = 1:N
        d1(i, j)=(log (SS/XX (i,j))+(rr+vv^2/2)*TT (i,j))/(vv*sqrt(TT(i,j)));
        d2(i,j)=d1(i,j)-vv*sqrt(TT(i,j));
        zz(i,j)=SS*normcdf(d1(i,j))-XX(i,j)*exp(-rr*TT(i,j))*normcdf(d2(i,j))
    end
end
mesh(XX,TT,zz)                          % 显示需要生成的图形
xlabel('执行价格');
ylabel('时间(T)');
zlabel('买入期权的价值');
title('布莱克—斯克尔斯期权定价模型进行期权价格分析');
pos = get(gcf, 'position');                        % 设置生成的图形大小
pos(3) = 800;
pos(4) = 500;
set(gcf, 'Position', pos, 'PaperPosition', [.25 .25 16 16]);
drawnow;                     % 把生成的图形传递给图形文件
s_pic = sprintf('%s_pic.jpeg', mlid);
wsprintjpeg(f, s_pic);
close(f);
out.s_pic=s_pic;  
% Put name of graphic file into HTML template file.
tempfile = which('helix_out.html');             % 把图片文件传递给HTML输出文件
rs = htmlrep(out, tempfile, outfile);
4.3 HTML输出页面的设计
输出HTML文件是一个预先编制的文件,包含了事先设计好的页面布局、文字说明等信息,其中用到Mat lab程序输出变量的地方都用$var_name$的形式表示。
Htmlrep的工作就是将$var_name$形式的变量转换为实际数据,变量的数值则从输入的outstruct结构中获得。转换后html是一个纯文本文件,其内容通过restr以字符串的形式返回。
以下是例程的输出页面:



MATLAB Web Server测试程序-输出页面


计算结果为:






图4-2输出页面
5 小结:
本文给出了构建布莱克—斯克尔斯期权定价模型进行期权价格分析系统的具体过程,依次分析了MATLAB Web 应用开发的原理、流程及配置文件。通过期权价格分析系统的实例展示了MATLAB的Web开发流程、解决了Web应用中数值计算图像处理繁琐的问题,进一步发挥了MATLAB强大的工程计算能力。这给Internet用户带来了方便,也解决了MATLAB用户编写用户界面能力较弱的问题,将对远程教育、各学科教学软件的制作将有深远的影响。
参考文献
1 《MATLAB 扩展编程》何强 何英 主编…………清华大学出版社,2002。
2 《MATLAB M语言高级编程》 陈永春编著…….…清华大学出版社,2004。
3 《Windows 2000 Server 配置管理与应用》 甘登岱编著…….…清华大学出版社,2001.

[ Last edited by 幻影无痕 on 2006-11-29 at 07:44 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

enjoylife117

铜虫 (小有名气)

请教

可否在winxp系统下运行
世事洞明皆学问
2楼2005-12-27 11:49:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zjun 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见