底下程序取自matlab,
楼主有R基础,应该很容易转换.
Numerical methods in finance And Economics :
A Matlab-based introduction
AssetPaths.m
% usage: SPaths = AssetPath(S0,mu,sigma,T,NSteps,NReps)
% description: returns NReps rows whose entries are a random path
% for asset with drift mu, volatility sigma and initial price S0,
% starting at t=0 ending with t=T in steps of dt = T/NSteps.
S0=50; %initial price S0
mu=0.04; %drift mu
sigma=0.3; % volatility sigma
T=1; %1 year
NSteps=252;
NReps=1000;
% usage: SPaths = AssetPath(S0,mu,sigma,T,NSteps,NReps)
% description: returns NReps rows whose entries are a random path
% for asset with drift mu, volatility sigma and initial price S0,
% starting at t=0 ending with t=T in steps of dt = T/NSteps.
SPaths = zeros(NReps,NSteps+1);
SPaths(:,1) = S0;
dt = T/NSteps;
nudt = (mu-0.5*sigma^2)*dt;
sidt = sigma*sqrt(dt);
for i = 1:NReps
for j = 1:NSteps
SPaths(i,j+1) = SPaths(i,j)*exp(nudt + sidt*randn);
end
end
|