program error :Unbalanced or unexpected parenthesis or bracket
Show older comments
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 Comments
amir khalighi
on 4 May 2018
Ameer Hamza
on 4 May 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
on 4 May 2018
Ameer Hamza
on 4 May 2018
What do you mean? If C < 0, you want to make C = 0?
amir khalighi
on 4 May 2018
Ameer Hamza
on 4 May 2018
Edited: Ameer Hamza
on 4 May 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
on 4 May 2018
Ameer Hamza
on 4 May 2018
You are welcome.
Accepted Answer
More Answers (0)
Categories
Find more on Calculus 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!