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.



bro its a basic stuff that you do…
could you give me more explanation if I want to do fixed random data?
coz as I recall, monte carlo should use a fixed random data in order to be analyze-able coz if you are using your method, means that when I run the script at 08:00 with 09:00 the result will be different….
so what you should be doing is like this:
assumptions (avg = 5 stdev = 1)
1st run: a = 5.1; b = 5.5; c = 4.6
2nd run: a = 5.1; b = 5.5; c = 4.6
so it should be a fixed random data if the parameter doesn’t change.