for循环内外循环问题求解-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 会计>>

会计库

>>

for循环内外循环问题求解

for循环内外循环问题求解

发布:sushuiasushui | 分类:会计库

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

经管之家新媒体交易平台

提供"微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯"等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

提供微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

因为输入的参数都是要从excel表格里导入的向量,而且其中两部分的参数维数还不同,再加上又需要蒙特卡洛方法(即生成10000个路径),所以我只能编两个for循环:下面是我写的code:function[price]=mcmc(S,K,B,T,sigma ...
坛友互助群


扫码加入各岗位、行业、专业交流群


因为输入的参数都是要从excel表格里导入的向量,而且其中两部分的参数维数还不同,再加上又需要蒙特卡洛方法(即生成10000个路径),所以我只能编两个for循环:
下面是我写的code:
function [price] = mcmc(S,K,B,T,sigma,v,theta,r,d,M,N,seed)
%M is the number of time steps,
%N is the number of paths,
M = 100;
N = 10000;
MCpayoff = zeros(N,M+1);
S=zeros(N,M+1);
rand('seed',0);
%S is the current price of the underlying asset,
%K is the exercise price of the option,
%B is the barrier of the option,
%r is the risk-free rate,
%d is the dividend,
%T is the time to maturity,
%sigma is the volatility of the asset price,
NUM = xlsread('EuropeanUpAndOutCall.xls');
MCprice = zeros(26,5);
for i = 1:26
B = NUM(i,1);
K = NUM(i,2);
%这两个参数的数据是26行的向量,
for ii = 1:5
T = NUM(ii,3);
sigma = NUM(ii,4);
v = NUM(ii,5);
theta = NUM(ii,6);
r = NUM(ii,7);
d = NUM(ii,8);
S0 = NUM(ii,9);
%这几个参数却是5行的向量,
%choose a time discretization;
Deltat=T/M;
%simulate a random number of gamma processes,independent of all other yet
%simulated random number,
G = gamrnd(Deltat/v,v,N,M);
%simulate a standard normally distributed random number Z_i,
Z = normrnd(0,1,N,M);
%the return is
deltaX = theta*G+sigma*sqrt(G).*Z;
X0 = zeros(N,M);
X = X0+cumsum(deltaX,2);
%the stock prices
S(:,1) = S0*ones(N,1);
t = (Deltat:Deltat:T);
t = repmat(t,N,1);
w = (1/v)*log(1-theta*v-sigma^2*v/2);
S(:,2:M+1) = S0.*exp(r*t+X+w*t);
%the payoff for a Down and Out Put Option
ST = S(:,M+1);
Max = max(S,[],2);
for j=1:length(Max)
ifMax(j,1) < B && K < S(j,M+1)%因为此处需要10000个元素的列向量的每个元素与B,K(26个元素的列向量)的每个元素比较,又设了个for循环和if循环
MCpayoff(j,1) = S(j,M+1)-K;
else
MCpayoff(j,1) = 0;
end;
end;
%the option price is
MCprice = exp(-r*T)*(1/N)*sum(MCpayoff(:,1));%此处是得出10000个路径的平均值,之后要针对有5个元素的列向量循环一次,然后是26个元素的列向量再循环一次。。
end
end
我的问题是:类似这种代入参数维数不同的情况,有没有什么简化的方法?如果没有,循环的顺序是否先内再外呢?好复杂啊,我这个新手撑不住了。。光end都end了好几个,已经分不清了。。
扫码或添加微信号:坛友素质互助


「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-3069243-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
经管之家 人大经济论坛 大学 专业 手机版