Posted by: arikuncoro2id | April 21, 2008

Tugas Fineng “Bilangan Random dan Monte Carlo”

Sebenarnya ini tugas yang mudah. Bisa dilakukan dengan program apapun. MATLAB, C++, Fortran terbaru, Visual Basic, dsb bisa melakukannya. Karena TA saya berhubungan dengan MATLAB, saya menggunakan MATLAB. Berikut ini soalnya:

1. Generate bilangan random sebanyak 1000 buah!

Jawab:

Lakukan perintah:

rand(1000,1) >> karena matriks 1000×1 menuliskannya kurang efektif, sehingga diringkas saja dengan cara men-generate matriks dengan matriks 10×100.

rand(10,100) >> 10 baris, 100 kolom.

2. Menentukan ekspektasi dan risiko dari skenario tertentu, dengan men-generate 200 bilangan random dan simulasi Monte Carlo 200 kali. Berikut ini scriptnya:

clear;

clc;

a=0;

b=0;

c=0;

d=0;

k=200;

% membangkitkan basic random number sebanyak k

bilangan=rand(k,1);

% melakukan monte Carlo simulation sebanyak 200 kali

for j=1:200;

% looping sebanyak k kali, mengubah nilai random sesuai soal

for i=1:k

if bilangan(i)<=0.2;

bilang(i)=950;

a=a+1;

elseif bilangan(i)<=0.6;

bilang(i)=975;

b=b+1;

elseif bilangan(i)<=0.9;

bilang(i)=1050;

c=c+1;

else

bilang(i)=1150;

d=d+1;

end

end

% hasil rata-rata (Ekspektasi)

ekspektasi(j)= mean(bilang);

% standard deviasi (Risiko)

risiko(j)= std(bilang);

end

% ekspektasi total dan standard deviasi

ekspektasi_total= mean(ekspektasi);

risiko_total= mean(risiko);

Jadi, ekspektasi total sebesar 1018.1 dollar dengan risiko 64.7 dollar

3. Carilah harga put option yang pantas, mirip dengan soal kedua,

Script:

clear;

clc;

a=0;

b=0;

c=0;

d=0;

k=200;

% membangkitkan basic random number sebanyak k (tugas 1)

bilangan=rand(k,1);

% melakukan Monte Carlo Simulation sebanyak 200 kali

for j=1:200

% looping sebanyak k kali, mengubah nilai random sesuai soal

for i=1:k

if bilangan(i)<=0.1;

bilang(i)=925;

a=a+1;

elseif bilangan(i)<=0.4;

bilang(i)=975;

b=b+1;

elseif bilangan(i)<=0.8;

bilang(i)=1050;

c=c+1;

else

bilang(i)=1100;

d=d+1;

end

end

ekspektasi(j)=mean(bilang);

risiko(j)=std(bilang);

end

ekspektasi_total=mean(ekspektasi);

risiko_total=mean(risiko);

% nilai_ekspektasi_teori=(1100*0.2)+(1050*0.4)+(975*0.3)+(925*0.1);

a0=1000; % harga option saat t=0

a1=a0+0.05*a0; % harga option saat t

harga_put_option_t_0=(a0/a1)*ekspektasi_total; % harga put option pantas pada t=0

hasil:

Jadi, ekspektasi total sebesar 1026.3 dollar dan harga put option yang pantas pada saat t=0 sebesar 977.38 dollar.

Leave a response

Your response:

Kategori