why do I receive an error in my codes?
1 view (last 30 days)
Show older comments
I am trying to find the maximum of the function.I want to find teta for each x which is maximize the my function. the function is
F(x)=(F(x-1)+cr*Y(x-1))*exp(r+teta(x-1)*((mu-1/2*sigma.^2)+sigma*Z(1,x)))
I write the codes but it has errors. could you possibly help me?
lambda=4.5; % loss aversion ratio
nu1=0.44; % curvature parameter for gains
nu2=0.88; % curvature parameter for loss
rl=0.02;
sigma1=0.05;
sigma2=0.02;
h1=-0.1865;
h2=0.7537;
r=0.02; % real risk-free return
mu=0.04; % equity risk premium
sigma=0.18; % volatility of equity return
beta=0.96; % discount factor
cr=0.15; % contribution rate
w=0.5; % weight of interim target
a=15.8382; % price of annuity on retirement
x=21:65;
Z(1,x)=randn(1,45);
Z(2,x)=randn(1,45);
hist(x,-1:.05:1) % Notice the symmetry around point Mu
Z(1,x) = Z(1,x) + abs(min(Z(1,x))); % Move everything to the right
Z(2,x) = Z(2,x) + abs(min(Z(2,x))); % Move everything to the right
%%Return on risky assets
R(x)=r+mu-1/2*sigma^2+sigma*Z(1,x);
S(x)=1+h1*(-1+(x-20)/45)+h2*(-1+4*(x-20)/45-((3^1/2)*(x-20)/45).^2);
I(x)=rl+(S(x)-S(x-1))/S(x-1)+sigma1*Z(1,x)+sigma2*Z(2,x);
Y(20)=1;
for x=21:65
Y(x)=Y(x-1)*exp(I(x));
end
function F = myfun(teta)
F(x)=(F(x-1)+cr*Y(x-1))*exp(r+teta(x-1)*((mu-1/2*sigma.^2)+sigma*Z(1,x)));
teta=fminbnd(@myfun,0,1);
end
10 Comments
Answers (0)
See Also
Categories
Find more on Risk Management Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!