Blog Archive

Thursday, June 21, 2012

Asset Pricing Model for simulation

There are two type of Pricing Model: Stochastic for Growth, Factor for Mean Reversion. In both case mu for $ return or % return or factors can be observed and used in Simulation

% google get_hist_stock_data.m
[hist_date, hist_high, hist_low, hist_open, hist_close, hist_vol] =get_hist_stock_data('AAPL','2010');
R_dollar=hist_close(2:end)-hist_close(1:end-1);
R_pct=R_dollar./hist_close(1:end-1);

% $ return Random Walk
dT=1; %daily
mu=mean(R_dollar);
sigma=std(R_dollar);
St=zeros(100,1);
St(1)=560;

for i=1:1:100
    St(i+1)=St(i)+mu+sigma*sqrt(dT)*normrnd(0,1);
end 
f1=figure(1);
set(f1,'name','$ return Random Walk');
plot(0:100,St);

% % return Ramdom Walk
dT=1; %daily
mu=mean(R_pct);
sigma=std(R_pct);
St=zeros(100,1);
St(1)=560;
for i=1:1:100
    St(i+1)=St(i)*exp((mu-sigma^2/2)*dT+sigma*sqrt(dT)*normrnd(0,1));
end 
f2=figure(2);
set(f2,'name','% return Random Walk');
plot(0:100,St);

% % return Mean Reversion Factor Model
dT=1; %daily
mu=mean(R_dollar);
sigma=std(R_dollar);
St=zeros(100,1);
St(1)=560;

p=polyfit(hist_close(2:end),R_pct,1)



% google get_hist_stock_data.m
[hist_date, hist_high, hist_low, hist_open, hist_close, hist_vol] =get_hist_stock_data('USO','2010');
R_dollar=hist_close(2:end)-hist_close(1:end-1);
R_pct=R_dollar./hist_close(1:end-1);

days=100
% $ return Mean Reversion Factor Model
dT=1; %daily
mu=mean(hist_close);
sigma=std(hist_close);
St=zeros(days,1);
St(1)=hist_close(end);

b=regress(R_dollar,hist_close(2:end));
b  
k=-b;

for i=1:1:days
    St(i+1)=St(i)+k*(mu-St(i))+sigma*normrnd(0,1);
end 
f1=figure(1);
set(f1,'name','$ return Mean Reversion Factor Model');
plot(0:days,St);


% % return Mean Reversion Factor Model---see MR Factor Model

No comments: