假设该一般化的维纳过程(布朗运动)的描述如下:
其中μ为瞬时期望漂移率,即股票收益期望值0.001;sigma为瞬时标准差,即股票波动率;现生成一维布朗运动;
布朗运动的一维随机序列图:
此例选自郑志勇老师的《金融数量分析——基于MATLAB编程》;代码如下:
文件BrownM.m
function data=BrownM(Npoints,Mean,Std,Opt)
%code by
ariszheng@gmail.com
%2009-6-13
dt=1;
if Opt==1
%%
% standard Brownian motion
data=[0 cumsum(dt^0.5.*random('Normal',Mean,Std,1,Npoints))];
figure
plot(0:Npoints,data);
elseif Opt==2
figure
data = cumsum([zeros(1, 3); dt^0.5*random('Normal',Mean,Std,Npoints-1,3)]);
plot3(data(:, 1), data(:, 2), data(:, 3), 'k');
pcol = (data-repmat(min(data), Npoints, 1))./ ...
repmat(max(data)-min(data), Npoints, 1);
hold on;
scatter3(data(:, 1), data(:, 2),data(:, 3), ...
10, pcol, 'filled');
grid on;
hold off;
else
error('Opt=1 or Opt=2')
end
文件BrownMtest.m
%test BrownM
Npoints=1000;
Mean=0.001;
Std=1.5;
Opt=1;
dataA=BrownM(Npoints,Mean,Std,Opt); %生成一维布郎运动随机序列
% Opt=2;
% dataB=BrownM(Npoints,Mean,Std,Opt); %生成二维布朗运动随机序列