program error :Unbalanced or unexpected parenthesis or bracket
Afficher commentaires plus anciens
Hi all
I wrote a program for below formula , but when i run it , it face an error (Unbalanced or unexpected parenthesis or bracket.)

and also for C calculated amount I need a fixation : when calculated C from above formula is less than 0 put C=0 and when C is amount from above formula is bigger than 0 put C=calculated amount ( i mean for exmple when it become -20 then put C=0 and for example when C=20 put C=20 and make no changes)
I attached the program but for certain I write the code here :
clc;
clear;
r=0.01;
u=0.05;
d=-0.04;
n=4;
j=0;
St=40;
K=25;
p=(r-d)/(u-d)
C=(1/(1+r)^n)*(symsum(nchoosek(n,j)*p^j*(1-p)^(n-j)*max(0,((1+u)^j)*(1+d)^(n-j)*St/K))),j,0,n)
Could anyone help me and fix change the program to work and fix C amount
I'm in hurry and just have 2 hours
plz help me
thank you all
8 commentaires
amir khalighi
le 4 Mai 2018
Ameer Hamza
le 4 Mai 2018
You are not adding previous values. Change your code like below. C is incremented in each loop.
clc;
clear;
r=0.01;
u=0.05;
d=-0.04;
n=4;
St=30;
K=25;
p=(r-d)/(u-d);
pi=1-p;
C = 0;
for i=0:n;
v=nchoosek(n,i);
X=((1+u)^i*(1+d)^(n-i)*St-K);
t=max(0,X);
C=C+1/((1+r)^n)*v*(p^i)*(p^(n-i)*t)
end
amir khalighi
le 4 Mai 2018
Ameer Hamza
le 4 Mai 2018
What do you mean? If C < 0, you want to make C = 0?
amir khalighi
le 4 Mai 2018
Ameer Hamza
le 4 Mai 2018
Modifié(e) : Ameer Hamza
le 4 Mai 2018
It appears that what you are saying can be done as follow, replace this line in your code.
C = C + max(1/((1+r)^n)*v*(p^i)*(p^(n-i)*t), 0);
replace this line in your code.
amir khalighi
le 4 Mai 2018
Ameer Hamza
le 4 Mai 2018
You are welcome.
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Calculus dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!