program error :Unbalanced or unexpected parenthesis or bracket
Mostra commenti meno recenti
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 Commenti
amir khalighi
il 4 Mag 2018
Ameer Hamza
il 4 Mag 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
il 4 Mag 2018
Ameer Hamza
il 4 Mag 2018
What do you mean? If C < 0, you want to make C = 0?
amir khalighi
il 4 Mag 2018
Ameer Hamza
il 4 Mag 2018
Modificato: Ameer Hamza
il 4 Mag 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
il 4 Mag 2018
Ameer Hamza
il 4 Mag 2018
You are welcome.
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Calculus in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!