全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 悬赏大厅
1182 3
2012-12-10
悬赏 1 个论坛币 未解决
在做股价模拟,在网上下了段程序,但他是用monte carlo做一次模拟,但老师要求做五百次取均值,求大神指导,200币跪谢
程序如下:
----------------------------------------------------- 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;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-12-10 08:49:29
用excel 更简单。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-10 08:53:12
randn('state',100)           % 产生随机态
T = 1; N = 500; dt = T/N;
dW = zeros(1,N);             % 存放位置
W = zeros(1,N);              % 为了加快运算速度

dW(1) = sqrt(dt)*randn;      % 循环前的初始化
W(1) = dW(1);                % W(0) = 0 不允许,所以首先置值
for j = 2:N
   dW(j) = sqrt(dt)*randn;   % 产生序列
   W(j) = W(j-1) + dW(j);
end

plot([0:dt:T],[0,W],'r-')    % 画图。哦耶。
xlabel('t','FontSize',16)
ylabel('W(t)','FontSize',16,'Rotation',0)

参考资料:http://zhidao.baidu.com/question/158825506.html
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-10 09:06:59
谢谢了,虽然好像不符合题意。我上面的程序[Tt,St]=Stock_Process(s0,mu,sigma,Lt),每做一次模拟就得到一个Tt和St,那怎么做500次使它取均值了,怎么写循环了?你设个附件吧,我把币给你
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群