Metode Binomial untuk opsi dan put erop

MODEL BINOMIAL UNTUK PENENTUAN HARGA
OPSI DAN PUT EROPA SERTA AMERIKA

TUGAS I

OLEH

SARBAINI
NIM. 20116020

PROGRAM STUDI MAGISTER MATEMATIKA
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT TEKNOLOGI BANDUNG
BANDUNG
2017

Pendahuluan
Pada umumnya terdapat dua jenis kontrak opsi yang paling sering dijumpai
adaah call dan put. Call adalah opsi untuk membeli sedangkan put adalah opsi
untuk menjual. Sebual call option memberikan hak, bukan kewajiban, kepada

pemiliknya untuk memeli saham dari writer dengan harga yang telah disepakati
(disebut strike price atau exercise price), dan hak tersebut berakhir pada waktu
yang telah ditentukan (disebut maturity atau expiration date).

Sebuah put option memberikan hak, bukan kewajiban, kepada pemiliknya untuk menjual sebuah saham kepada writer dengan harga yang telah disepakati,
dan hak tersebut berakhir pada waktu yang telah ditentukan. Opsi yang dapat
di exercise pada setiap saat sebelum atauun pada saat expiration date dikenal
sebagai American Option. Sedangkan opsi yang hanya dapay di exercise pada
saat expiration date nya dikenal sebagai European Option.

Metode Binomial untuk Menentukan Harga Saham Opsi
Metode binomial merupakan suatu model pergerakan harga saham yang simple.
Selang waktu [0, T ] dibagi menjadi M sub selang yang sama panjang dengan
titik-titik bagi 0 = t0 < t1 < ... < tM = T dengan ti = i∆t(i = 0, 1, ..., M ), ∆t =
T
M

dan Si = S(ti ) harga saham pada saat ti . Asumsi yang digunakan adalah

(1) Dalam selang waktu ∆t, harga saham S dapat naik menjadi S.u dan turun

menjadi S.d dengan 0 < d < 1 < u
(2) Peluang harga saham naik P (naik)=p
(3) Ekspektasi return harga saham besarnya sama dengan risk free interest
rate r. Sehingga untuk harga saham S yang bergerak secra acak dari Si
pada saat ti menjadi Si+1 pada saat ti+1 ini berarti E(Si+1 ) = Si er∆t .

2

Penentuan Nilai Parameter
Dari asumsi di atas, dapat diketahui terdapat tiga buah parameter u, d dan p
yang nilainya belum diketahui. Ketiga nilai parameter tersebut dapat diperoleh dari tiga persamaan. Persamaan pertama dan kedua diperoleh dengan
menyamakan ekspektasi dan variansi model binomial dengan model kontinu.
E(Si+1 ) = pSi u + (1 − p)Si d

(1)

⇔ er∆t = pu + (1 − p)d
er∆t − d
. Sementara itu, dengan menyau−d
makan variansi kedua model diperoleh

Dari (1) dapat diketahui nilai p =

V ar(Si+1 ) = E[Si+1 2 ] − (E[Si+1 ])

⇔e

2r∆t



e

σ 2 △t

−1

⇔ e(2r+σ

2




)∆t

2

= pu2 + (1 − p)d2 − (er∆t )2
= p2 + (1 − p)d2

Sedangkan persamaan ketiga ditentukan sendiri. Pilihan yang sering digunakan
adalah
ud = 1 atau p =

1
2

Solusi untuk ud = 1 adalah
u=β+

p


β 2 − 1, d =

β=

p
1
er∆t − d
= β − β 2 − 1 dan p =
u
u−d



2
1 −r∆t
e
+ e(r+σ )∆t
2


dan solusi untuk p = 21 adalah




p
p
1
u = er∆t 1 + eσ2 ∆t − 1 , d = er∆t 1 − eσ2 ∆t − 1 dan p =
2

3

Penentuan Harga Opsi
Seperti yang disebutkan pada pendahuluan mengenai metode binomial, harga
opsi dihitung dengan mencari present value dari ekpekstasi payoff ketika opsi
digunakan pada waktu maturity time. Untuk menghitung payoff diperlukan
harga saham dan harga exercise. Harga saham hingga maturity time dimodelkan
dengan menggunakan metode binomial N langkah dengan,
Si,j = S0,0 uj di−j ∀j = 0, 1, ..., N dan i = 0, 1, ..., j

merupakan saham pada saat tj yang telah mengalami kenaikan sebanyak j kali
dan penurunan sebanyak i kali dari harga awalnya.
Ekspektasi dari nilai payoff pada saat maturity time sama dengan nilai payoff
itu sendiri. Nilai payoff pada saat maturity time untuk sebuah opsi call dihitung
dengan menggunakan rumus
Ci,N = max{Si,N − K} ∀i = 0, 1, ..., N
Sedangkan untuk opsi put dihitung dengan menggunakan rumus
Pi,N = max{K − Si,N } ∀i = 0, 1, ..., N
Selanjutnya berdasarkan pergerakan saham, metode binomial bergerak mundur
dari i = N −1 ke i = 0 secara rekursif. Harga suatu opsi pada saat ke-i dihitung
dengan menggunakan rumus
Vi,j = e−r∆t (pVi,j+1 + (1 − p)Vi+1,j+1 )∀i = 0, 1, ..., j
dan j = N − 1, N − 2, ..., 0

(2)
(3)

dengan Vi,j = Ci,j untuk perhitungan opsi call dan Vi,j = Pi,j untuk perhitungan opsi put. Vi,j merupakan nilai present value dari harga opsi pada saat
indeks j + 1. Nilai V0,0 yang diperoleh merupakan harga opsi tersebut pada saat
sekarang.


Perhitungan untuk opsi Amerika memerlukan sedikit modifikasi. Karena pada
opsi amerika terdapat fasilitas early exercise, persamaan (2) harus ditambahkan
dengan memasukkan perbandingan gain yang diperoleh jika exercise dilakukan

4

pada saat sekarang dan ditangguhkan hingga sub selang berikutnya. Sehingga
untuk opsi amerika, diperoleh untuk opsi call amerika.


−r∆t
Ci,j = max 0, Si,j − K, e
(pCi,j+1 + (1 − p)Ci+1,j+1 )
∀i = 0, 1, ..., 2j + 1 dan j = N − 1, N − 2, ..., 0
dimana Si,j − K merupakan early exercise dan e−r∆t (pCi,j+1 + (1 − p)Ci+1,j+1 )
tidak di exercise.

Sedangkan untuk opsi put amerika



−r∆t
Pi,j = max 0, K − Si,j , e
(pPi,j+1 + (1 − p)Pi+1,j+1 )
∀i = 0, 1, ..., 2j + 1 dan j = N − 1, N − 2, ..., 0
dengan K − Si,j early exercise dan e−r∆t (pPi,j+1 + (1 − p)Pi+1,j+1 ) tidak di
exercise

5

Simulasi dan Hasil dengan Matlab
(1) Input Opsi Call Eropa
clear all;clc;
r=0.06;
sigma=0.3;
N=38;
s0=9;
k=16;
T=0.75;
delta=T/N;

beta=(exp(-r*delta)+exp((r+sigma^2)*delta))*1/2;
u=beta+sqrt(beta^2-1);
d=1/u;
p=(exp(r*delta)-d)/(u-d);
s(1,1)=s0;
for i=1:N
for j=1:i+1
s(j,i+1)=s(1,1)*(u^(j-1))*(d^(i-(j-1)));
end
end
c=zeros(N+1,N+1);
for j=1:N+1
c(j,N+1)=max(s(j,N+1)-k,0);
end
id=N;
while id>=1
for j=1:1:id
c(j,id)=exp(-r*delta)*(p*c(j+1,id+1)+(1-p)*c(j,id+1));
end
id=id-1;

end
v=c;
t=zeros(N,1);
6

v1=zeros(N,1);
v2=zeros(N,1);
l=1;
for i=1:N+1
for j=1:i
t(l)=i-1;
s1(l)=s(j,i);
v1(l)=v(j,i);
v2(l)=0;
l=l+1;
end
end
x=0:0.5:N;
nx=floor((N/0.5)+1);
for p=1:nx
y(p)=k;
end
scatter(t,s1,9,’bd’,’filled’);hold on
plot(x,y)
xlabel(’t’)
ylabel(’harga saham’)
title(’Tugas Komputasi Keuangan’)
disp([’Harga Opsi Call=’,num2str(v1(1))])
(2) Input Opsi Put Eropa
clear all;clc;
r=0.06;
sigma=0.3;
N=38;
s0=9;
k=16;
T=0.75;
delta=T/N;

7

beta=(exp(-r*delta)+exp((r+sigma^2)*delta))*1/2;
u=beta+sqrt(beta^2-1);
d=1/u;
p=(exp(r*delta)-d)/(u-d);
s(1,1)=s0;
for i=1:N
for j=1:i+1
s(j,i+1)=s(1,1)*(u^(j-1))*(d^(i-(j-1)));
end
end
c=zeros(N+1,N+1);
for j=1:N+1
c(j,N+1)=max(k-s(j,N+1),0);
end
id=N;
while id>=1
for j=1:1:id
c(j,id)=exp(-r*delta)*(p*c(j+1,id+1)+(1-p)*c(j,id+1));
end
id=id-1;
end
v=c;
t=zeros(N,1);
v1=zeros(N,1);
v2=zeros(N,1);
l=1;
for i=1:N+1
for j=1:i
t(l)=i-1;
s1(l)=s(j,i);
v1(l)=v(j,i);
v2(l)=0;
l=l+1;

8

end
end
x=0:0.5:N;
nx=floor((N/0.5)+1);
for p=1:nx
y(p)=k;
end
scatter(t,s1,9,’bd’,’filled’);hold on
plot(x,y)
xlabel(’t’)
ylabel(’harga saham’)
title(’Tugas Komputasi Keuangan’)
disp([’Harga Opsi Put=’,num2str(v1(1))])
(3) Input Opsi Put Amerika
clear all;clc;
r=0.06;
sigma=0.3;
N=38;
s0=9;
k=16;
T=0.75;
delta=T/N;
beta=(exp(-r*delta)+exp((r+sigma^2)*delta))*1/2;
u=beta+sqrt(beta^2-1);
d=1/u;
p=(exp(r*delta)-d)/(u-d);
s(1,1)=s0;
for i=1:N
for j=1:i+1
s(j,i+1)=s(1,1)*(u^(j-1))*(d^(i-(j-1)));
end
end

9

c=zeros(N+1,N+1);
for j=1:N+1
c(j,N+1)=max(s(j,N+1)-k,0);
end
id=N;
while id>=1
for j=1:1:id
c(j,id)=max(max(k-s(j,i),0),exp(-r*delta)*(p*c(j+1,id+1)+(1-p)*c(j,id+1)));
end
id=id-1;
end
v=c;
t=zeros(N,1);
v1=zeros(N,1);
v2=zeros(N,1);
l=1;
for i=1:N+1
for j=1:i
t(l)=i-1;
s1(l)=s(j,i);
v1(l)=v(j,i);
v2(l)=0;
l=l+1;
end
end
x=0:0.5:N;
nx=floor((N/0.5)+1);
for p=1:nx
y(p)=k;
end
scatter(t,s1,9,’bd’,’filled’);hold on
plot(x,y)
xlabel(’t’)

10

ylabel(’harga saham’)
title(’Tugas Komputasi Keuangan’)
disp([’Harga Opsi Call=’,num2str(v1(1))])
(4) Input Opsi Call Amerika
clear all;clc;
r=0.06;
sigma=0.3;
N=38;
s0=9;
k=16;
T=0.75;
delta=T/N;
beta=(exp(-r*delta)+exp((r+sigma^2)*delta))*1/2;
u=beta+sqrt(beta^2-1);
d=1/u;
p=(exp(r*delta)-d)/(u-d);
s(1,1)=s0;
for i=1:N
for j=1:i+1
s(j,i+1)=s(1,1)*(u^(j-1))*(d^(i-(j-1)));
end
end
c=zeros(N+1,N+1);
for j=1:N+1
c(j,N+1)=max(s(j,N+1)-k,0);
end
id=N;
while id>=1
for j=1:1:id
c(j,id)=max(max(s(j,i)-k,0),exp(-r*delta)*(p*c(j+1,id+1)+(1-p)*c(j,id+1)));
end
id=id-1;

11

end
v=c;
t=zeros(N,1);
v1=zeros(N,1);
v2=zeros(N,1);
l=1;
for i=1:N+1
for j=1:i
t(l)=i-1;
s1(l)=s(j,i);
v1(l)=v(j,i);
v2(l)=0;
l=l+1;
end
end
x=0:0.5:N;
nx=floor((N/0.5)+1);
for p=1:nx
y(p)=k;
end
scatter(t,s1,9,’bd’,’filled’);hold on
plot(x,y)
xlabel(’t’)
ylabel(’harga saham’)
title(’Tugas Komputasi Keuangan’)
disp([’Harga Opsi Call=’,num2str(v1(1))])

12

Figure 1: Output Opsi Call Eropa

Figure 2: Output Opsi Put Eropa

13

Figure 3: Output Opsi Put Amerika

Figure 4: Output Opsi Call Amerika

14