借助Matlab完全可以建立很多的分析模型,用MATLAB构造股票过程,最重要的两个基本函数就是wiener prcoess和股票过程。
构造布朗运动(Wiener_Prcoess),下面的MATLAB程序,生成一个标准Wiener Process:
------------------------------------------------------ Wiener Prcoes Generating ---------------------------
function [Tt,Wn]= Wiener_Process(mu,sigma,Lt)
dt=0.001;inc=0.1;
k=sigma*sqrt(dt);
p=0.5*(1+mu*sqrt(dt)/sigma);q=1-p;sumx=0;X=[sumx];
for bt=0.1:inc:Lt
nx=inc/dt;
ns=binornd(nx,p);nf=nx-ns;net=ns-nf;
sumx=sumx+(net*k);X=[X sumx];
end
t=0.1:inc:Lt;t=[0 t];n=length(t);
[W]=zeros(n,2);
W(:,1)=t';
W(:,2)=X';
plot(W(:,1),W(:,2));
Tt=W(:,1);
Wn=W(:,2);
------------------------------------------------------------------------------------------------------------------
然后,利用指数模型生成股票价格的随机过程:
S(t)=S(0)*Exp(sigma*Wiener_Process+u*t)
------------------------------------------------ Stock Process -----------------------------------------------
function [Tt,St]=Stock_Process(s0,mu,sigma,Lt)
%生成一个股票过程
[t,w]=Wiener_Process(0,1,Lt) % creat a wiener process
X=[length(t)];
X=s0*exp(sigma*w+mu*t); % the stock process
plot(t,X);
Tt=t;
St=X;
-----------------------------------------------------------------------------------------------------------------
看看一个S0=30, u=0.087, sigma=0.178,时间=30,输出的股票过程:
利用这两个函数生成股票的随机过程的数值模型,可以发现wiener process可以很好的模拟股票的价格过程。
>>s0=30;mu=0.087,;sigma=0.178,Lt=30;
>>[Tt,St]=Stock_Process(s0,mu,sigma,Lt)
untitled.jpg
(19.09 KB, 下载次数: 12316)
2008-9-7 01:15 上传