LAPORAN AKHIR PENELITIAN
PENYELESAIAN BINOMIAL OPTION
PRICING MODEL DENGAN KOMPUTASI
PARALEL PADA KLASTER LINUX
DR. HARYA DAMAR WIDIPUTRA, S.T, M.KOM
PERBANAS INSTITUTE JAKARTA
2016
PENGESAHAN
1. Judul Penelitian : Penyelesaian Binomial Option Pricing Model Dengan Komputasi Paralel Pada Klaster Linux
2. Jenis Penelitian : Penelitian Besar 3. Peneliti
a. Nama Lengkap : Dr. Harya Damar Widiputra, S.T, M.Kom
b. NIDN : 0410127901
c. Jabatan Fungsional : Lektor
d. Program Studi : Teknik Informatika
e. No. Hp : 08121048515
f. Alamat surel (e-mail) : [email protected] 4. Jangka Waktu Penelitian : 8 (delapan) bulan
1 Desember 2015 sampai dengan 31 Juli 2016 5. Hasil yang ditargetkan : Klaster Linux untuk komputasi paralel; publikasi
jurnal internasional 6. Institusi lain yang terlibat : Tidak ada
Jakarta, 23 Nopember 2015
Mengetahui
Kepala Program Studi, Peneliti,
Lely Priska D.T, S.Kom, MMSI Dr. Harya Widiputra, S.T, M.Kom
Menyetujui, Direktur P3M
i
KATA PENGANTAR
Pengambilan keputusan yang tepat dalam waktu yang cepat menjadi salah satu kunci utama suksesnya investasi baik pada produk sekuritas dasar seperti saham maupun derivatifnya seperti halnya opsi. Saat investor hendak mengambil keputusan untuk berinvestasi pada kontrak opsi, baik opsi jual ataupun beli, memiliki kemampuan untuk menghitung harga eksekusi yang fair dari sebuah opsi memiliki pengaruh yang signifikan pada tingkat kesuksesan investasi. Beberapa metode untuk menghitung harga opsi telah diperkenalkan. Perbedaan utama yang ada pada metode-metode tersebut umumnya ada pada asumsi dasar terkait kondisi volatilitas saham yang mendasari opsi tersebut. Untuk menghitung penetapan harga opsi di Bursa Efek Indonesia, yang merupakan opsi tipe Amerika, metode yang bekerja dengan membangun binomial price tree dianggap menjadi teknik yang paling baik dalam menghitung harga opsi yang fair. Namun demikian, kendala yang timbul pada penggunaan teknik ini adalah lamanya waktu penghitungan yang dibutuhkan. Berkaitan dengan hal itu, pada penelitian ini dibangun infrastruktur sistem komputasi terdistribusi berupa klaster komputer yang memungkinkan proses penetapan harga opsi dengan pembangunan binomial price tree atau diagram lattice menjadi lebih cepat. Dengan demikian, model yang dibangun diharapkan dapat membantu para investor dalam mengambil keputusan investasi, khususnya untuk kontrak opsi saham dengan lebih efektif dan efisien.
ii
ABSTRAK
Binary Option Pricing Model atau BOPM adalah salah satu teknik yang dapat digunakan untuk melakukan penghitungan nilai opsi, baik jual maupun beli, yang diterapkan pada opsi tipe Amerika atau dengan kata lain untuk kontrak opsi yang waktu jatuh temponya adalah tertentu. BOPM secara umum bekerja dengan cara membangun sebuah pohon binomial atau diagram lattice dengan menelusuri seluruh kemungkinan nilai opsi yang terjadi berdasarkan penelurusan seluruh kemungkinan pergerakan nilai aset atau saham yang mendasari opsi tersebut pada periode waktu tertentu. BOPM dikenal sebagai teknik yang dapat memberikan penilaian opsi paling fair namun dikarenakan karakteristiknya juga dikenal sebagai teknik yang paling kompleks serta membutuhkan waktu penyelesaian penghitungan nilai opsi yang lebih lama. Penelitian ini bertujuan untuk mempersingkat waktu penyelesaian penghitungan nilai opsi menggunakan BOPM dengan cara membangun klaster komputer dan melakukan implementasi BOPM ke bentuk yang dapat dijalankan secara paralel. Sebuah klaster berbasis Linux telah dibangun dan implementasi BOPM menggunakan Python telah dilakukan dalam studi ini. Hasil yang diperoleh serta analisa perbandingan kinerja yang dilakukan menunjukkan bahwa implementasi BOPM dalam bentuk yang dapat dijalankan secara paralel serta penerapannya pada klaster komputer telah dapat menekan pertumbuhan waktu penyelesaian penghitungan dengan tetap memberikan hasil yang baik.
iii
DAFTAR ISI
KATA PENGANTAR ... i
ABSTRAK ... ii
DAFTAR ISI... iii
DAFTAR GAMBAR ... v
BAB I. PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Perumusan Masalah ... 3
1.3 Tujuan Penelitian ... 4
1.4 Urgensi (Keutamaan) Penelitian ... 4
BAB II. STUDI PUSTAKA ... 1
2.1 Opsi dan Kontrak Opsi... 1
2.2 Opsi Amerika dan Eropa ... 2
2.3 Opsi di Bursa Efek Indonesia ... 3
2.4 Faktor Penentu Nilai Opsi ... 4
2.5 Penetapan Harga Opsi Binomial ... 5
2.6 Penilaian Opsi Black-Scholes ... 9
2.7 Komputasi Paralel ... 11
2.8 Klaster Komputer ... 13
2.8.1 Klaster Beowulf Linux ... 15
2.9 Komputasi Paralel untuk Penyelesaian Masalah Keuangan ... 16
BAB III. METODE PENELITIAN ... 19
3.1 Jenis Penelitian... 19
3.2 Tahapan Penelitian ... 19
3.3 Alat Dukung Penelitian ... 22
3.4 Analisa Hasil ... 22
BAB IV. HASIL DAN DISKUSI ... 23
4.1 Uji Coba Implementasi Algoritma BOPM ... 23
4.1.1 Implementasi Algoritma BOPM dengan Matlab ... 25
iv
4.2 Pembangunan Klaster Linux ... 29
4.3 Uji Coba Klaster Linux ... 31
4.4 Konversi Algoritma BOPM ke Model Komputasi Paralel dengan Algoritma Least-Square Monte Carlo ... 32
4.5 Penghitungan Harga Opsi Dengan BOPM ... 34
BAB V. KESIMPULAN DAN SARAN ... 46
5.1 Kesimpulan ... 46
5.2 Saran ... 47
BAB VI. JADWAL PENELITIAN ... 48
DAFTAR PUSTAKA ... 49
v
DAFTAR GAMBAR
Gambar 1. Ilustrasi proses pembangunan binomial price tree pada BOPM. ... 9
Gambar 2. Konsep komputasi paralel. ... 12
Gambar 3. Arsitektur klaster komputer. ... 14
Gambar 4. Bentuk klaster Beowulf berbasis Linux. ... 16
Gambar 5. Bagan Penelitian Penyelesaian BOPM dengan Komputasi Paralel ... 21
Gambar 6. Konfigurasi Klaster Beowulf di Lab FTI Perbanas Institute ... 30
Gambar 7. Diagram Lattice Pergerakan Harga Saham BMRI 6 Bulan ... 35
Gambar 8. Diagram Lattice Nilai Opsi Beli BMRI 1 Bulan... 37
Gambar 9. Diagram Lattice Nilai Opsi Beli BMRI 2 Bulan... 37
Gambar 10. Diagram Lattice Nilai Opsi Beli BMRI 3 Bulan ... 38
Gambar 11. Diagram Lattice Nilai Opsi Beli BMRI 4 Bulan ... 38
Gambar 12. Diagram Lattice Nilai Opsi Beli BMRI 5 Bulan ... 39
Gambar 13. Diagram Lattice Nilai Opsi Beli BMRI 6 Bulan ... 39
Gambar 14. Diagram Lattice Nilai Opsi Jual BMRI 1 Bulan ... 41
Gambar 15. Diagram Lattice Nilai Opsi Jual BMRI 2 Bulan ... 41
Gambar 16. Diagram Lattice Nilai Opsi Jual BMRI 3 Bulan ... 42
Gambar 17. Diagram Lattice Nilai Opsi Jual BMRI 4 Bulan ... 42
Gambar 18. Diagram Lattice Nilai Opsi Jual BMRI 5 Bulan ... 43
Gambar 19. Diagram Lattice Nilai Opsi Jual BMRI 6 Bulan ... 43
1
BAB I. PENDAHULUAN
1.1 Latar Belakang
Sejak diperkenalkannya produk turunan dari saham yang disebut opsi, yang memungkinkan seorang investor untuk memiliki hak beli ataupun jual terhadap sebuah saham pada harga tertentu yang telah disepakati di masa mendatang, salah satu tantangan utama yang timbul di area financial engineering ataupun financial informatics adalah untuk dapat menghitung ataupun menetapkan harga yang dianggap fair bagi kontrak tersebut (Bodie, Z., 2009).
Berkaitan dengan hal tersebut beberapa metode penghitungan harga opsi telah diperkenalkan dan dipergunakan secara luas. Beberapa metode tersebut diantaranya adalah metode-metode yang berbasis penghitungan numerik dari proses turunan, metode-metode yang berbasis pada simulasi pergerakan harga saham dari waktu ke waktu atau metode lattice (Boyle, P. P., 1988), metode-metode yang berupa model matematika (Jiang, L., 2005), dan juga metode Monte Carlo (Boyle, P. P., 1977).
Dari beberapa metode yang dipaparkan di atas, metode penghitungan harga opsi menggunakan model matematika yang diperkenalkan oleh Fischer Black dan Myron Scholes di tahun 1973 kemudian dikenal luas sebagai model Black-Scholes adalah salah satu metode yang umum digunakan untuk menghitung harga opsi (Black,
F., & Scholes, M., 1973). Dalam penghitungan harga opsi, model Black-Scholes
menggunakan asumsi dasar bahwa volatilitas aset yang mendasari opsi adalah tetap selama jangka waktu kontrak (Black, F., & Scholes, M., 1973).
Sebaliknya metode-metode lattice, seperti halnya Binomial Option Pricing Model (Cox, J. C., Ross, S. A., & Rubinstein, M., 1979), justru berasumsi bahwa
2
volatilitas saham yang mendasari opsi berubah sepanjang waktu dalam periode kontrak tersebut.
Menarik untuk dicermati bahwa pada penelitian sebelumnya, telah disampaikan bahwa penghitungan harga opsi menggunakan model Black-Scholes memberikan hasil yang tidak fair (Hendrawan, R., 2010), khususnya untuk opsi bertipe Amerika dan bukan Eropa. Selain itu, penelitian lainnya juga menemukan bahwa metode lattice seperti halnya Binomial Option Pricing Model lebih cocok untuk digunakan dalam menghitung harga opsi bertipe Amerika (Ganesan, N., Chamberlain, R. D., & Buhler, J., 2009) yang merupakan tipe opsi yang dianut oleh Bursa Efek Indonesia.
Namun demikian, kelemahan utama Binomial Option Pricing Model dibandingkan dengan model Black-Scholes (adalah waktu komputasi yang lama dan dibutuhkannya banyak sumber daya komputasi dalam penyelesaiannya (Ganesan, N., Chamberlain, R. D., & Buhler, J., 2009). Pada saat yang sama, seiring dengan semakin berkembangnya dunia investasi keuangan mucul tantangan untuk dapat mengambil keputusan bentuk investasi yang harus diambil dalam waktu yang cepat
(Lander, D. M., & Pinches, G. E., 1998). Dalam halnya investasi akan dilakukan pada
opsi saham, kemampuan untuk dapat menghitung harga opsi yang fair dalam waktu yang cepat menjadi kebutuhan yang mutlak. Hal ini dikarenakan kecepatan dan ketepatan pengambilan keputusan tersebut memiliki pengaruh yang signifikan terhadap hasil akhir investasi, yaitu untung atau rugi (Lander, D. M., & Pinches, G.
E., 1998).
Oleh sebab itu pada penelitian ini akan dieksplorasi teknik yang dapat digunakan untuk mempercepat proses komputasi pada penghitungan harga opsi menggunakan metode lattice untuk saham-saham yang ada di Bursa Efek Indonesia.
3
Secara spesifik teknik yang akan dikembangkan adalah untuk dapat mendistribusikan proses komputasi harga opsi menggunakan Binomial Option Pricing Model ke beberapa titik mesin yang berbeda sehingga waktu penghitungan penyelesaian model tersebut menjadi lebih cepat dibandingkan jika hanya menggunakan satu titik mesin.
1.2 Perumusan Masalah
Beberapa rumusan masalah yang akan dijawab dalam penelitian ini dijabarkan sebagai berikut:
1. Apakah Binomial Option Pricing Model lebih tepat digunakan dalam menghitung harga opsi pada Bursa Efek Indonesia dibandingkan dengan metode lain yang berasumsi volatilitas aset dasar opsi adalah tetap selama periode kontrak?
2. Apakah penyelesaian Binomial Option Pricing Model dapat dikonversi menjadi bentuk permasalahan yang komputasinya dapat diselesaikan secara paralel untuk mempercepat waktu penghitungan?
3. Apabila Binomial Option Pricing Model dapat diselesaikan menggunakan teknik komputasi paralel, infrastruktur komputasi terdistribusi seperti apakah yang cocok digunakan?
4. Benarkah mengubah Binomial Option Pricing Model menjadi model permasalahan komputasi parallel dapat mempercepat waktu penyelesaian penghitungan harga opsi dan tetap memberikan hasil yang fair?
4
1.3 Tujuan Penelitian
Berdasarkan hal-hal yang telah dipaparkan pada bagian Latar Belakang dan juga yang menjadi Perumusan Masalah, maka beberapa tujuan utama yang ingin dicapai dalam kegiatan penelitian ini adalah:
1. Untuk dapat mengubah Binomial Option Pricing Model ke dalam bentuk persoalan yang dapat diselesaikan menggunakan teknik komputasi parallel.
2. Untuk dapat membangun infrastruktur komputasi terdistribusi yang terdiri dari beberapa titik mesin yang kemudian dapat digunakan untuk menyelesaikan penghitungan Binomial Option Pricing Model.
3. Untuk dapat membuktikan bahwa dengan mengubah Binomial Option Pricing Model menjadi bentuk permasalahan yang dapat diselesaikan menggunakan teknik komputasi parallel yang kemudian dijalankan di atas infrastruktur komputasi terdistribusi multi mesin, waktu penghitungan harga opsi dapat dikurangi secara signifikan dan tetap memberikan hasil yang fair.
1.4 Urgensi (Keutamaan) Penelitian
Keutamaan penelitian ini terdapat pada tiga aspek yang berbeda, yaitu untuk industri investasi keuangan, pengembangan ilmu pengetahuan dan juga bagi pengembangan metode pembelajaran mahasiswa.
Bagi industri investasi keuangan, direalisasikannya sebuah infrastruktur komputasi terdistribusi yang dapat digunakan untuk menghitung harga opsi dengan cepat tentunya akan membantu dalam mengambil keputusan terkait investasi yang
5
akan diambil. Hal ini sebagaimana telah disampaikan sebelumnya, memiliki pengaruh yang signifkan terhadap masa depan investasi yang dilakukan.
Dalam hal pengembangan ilmu pengetahuan, dengan dapat mengubah Binomial Option Pricing Model ke bentuk komputasi paralel untuk penghitungan harga opsi di Bursa Efek Indonesia akan memberikan kontribusi khususnya dalam hal penggunaan teknik komputasi paralel untuk pemecahan masalah investasi keuangan.
Sebagai tambahan, keutamaan lainnya dari penelitian ini adalah bahwa infrastruktur komputasi terdistribusi yang dibangun akan dapat digunakan pada mata kuliah Sistem Terdistribusi pada Program Studi Teknik Informatika dan Sistem Komputer untuk menyimulasikan proses pendistribusian pekerjaan pada beberapa titik mesin.
1
BAB II. STUDI PUSTAKA
2.1 Opsi dan Kontrak Opsi
Opsi adalah salah satu sekuritas derivatif, atau biasa dikenal dengan istilah derivatif saja, yang artinya harga dari sekuritas tersebut ditentukan berdasarkan atau “diturunkan dari” harga sekuritas lain yang mendasarinya (Saunders, A., Cornett, M.
M., & McGraw, P. A., 2006). Di pasar keuangan ada beberapa jenis opsi terdaftar
yang dikenal, yang mana masing-masing merupakan turunan dari aset yang mendasarinya. Beberapa jenis opsi yang dikenal yaitu opsi atas saham, opsi atas indeks pasar, opsi atas valuta asing dan juga opsi atas harga futures atau kontrak berjangka (Saunders, A., Cornett, M. M., & McGraw, P. A., 2006).
Opsi diperdagangkan dalam bentuk kontrak, sehingga juga dikenal dengan istilah kontrak opsi. Dalam hal ini, yang dimaksud diperdagangkan dalam bentuk kontrak berarti opsi memiliki jangka waktu tertentu dan jelas memiliki tanggal jatuh tempo seperti halnya kontrak berjangka.
Kontrak opsi dibagi menjadi dua jenis, yaitu kontrak untuk membeli aset yang mendasari sebuah opsi atau yang dikenal sebagai opsi beli (call option) dan sebaliknya kontrak untuk menjual aset yang mendasari sebuah opsi atau yang disebut sebagai opsi jual (put option).
Apabila seorang investor memiliki opsi beli, maka yang bersangkutan berhak untuk membeli aset yang mendasari opsi tersebut pada harga tertentu yang telah disepakati dalam jangka waktu tertentu sebelum tanggal masa berlakunya kontrak tersebut berakhir (Smit, H., & Trigeorgis, L., 2009). Harga tertentu yang disepakati itu disebut sebagai harga eksekusi atau juga harga penyerahan. Sebaliknya pada opsi jual, maka seorang investor memiliki hak untuk menjual aset yang mendasari opsi tersebut pada harga eksekusi tertentu sebelum tanggal kadaluwarsa kontraknya tiba.
2
Dalam hal ini, harga eksekusi hanya berdasarkan harga yang telah disepakati pada saat kontrak ditransaksikan dan tidak mengacu pada harga aset di pasar.
Untuk mendapatkan hak terhadap kontrak opsi beli maupun jual, maka seorang investor juga diwajibkan membayar harga beli opsi yang juga disebut sebagai premi (premium). Premi dibayarkan kepada penjual opsi, yaitu pihak yang menerbitkan opsi tersebut atau writer. Selanjutnya, selama kontrak opsi tersebut berlaku, writer diwajibkan untuk membeli ataupun menjual aset terkait sesuai dengan harga yang telah ditetapkan dalam kontrak opsi (Saunders, A., Cornett, M.
M., & McGraw, P. A., 2006).
Pada penelitian ini yang akan dilakukan adalah penghitungan harga opsi beli dan jual atas saham dan tidak atas aset lainnya. Penghitungan harga opsi yang fair akan dilakukan dengan membangun sistem komputasi terdistribusi dengan tujuan mempercepat waktu penyelesaian komputasi.
2.2 Opsi Amerika dan Eropa
Pada pasar keuangan global dikenal dua jenis opsi, berdasarkan aturan transaksi perdagangannya, yang kerap menjadi acuan pasar-pasar keuangan di berbagai Negara yaitu opsi Amerika dan opsi Eropa (Bodie, Z., 2009).
Perbedaan utama antara opsi Amerika dan Eropa terdapat pada ketentuan mengenai kapan seorang pemegang opsi dapat memperdagangkan opsi yang dimilikinya. Opsi Amerika mengijinkan pemegang opsi untuk dapat membeli ataupun menjual aset dasar pada ataupun sebelum tanggal jatuh tempo kontraknya. Di sisi lain, opsi Eropa hanya memberikan hak kepada pemegangnya untuk mentransaksikan aset dasar pada tanggal jatuh temponya. Dengan demikian opsi Amerika memberikan
3
keleluasaan lebih kepada pemegangnya sehingga umumnya dianggap lebih bernilai
(Bodie, Z., 2009).
Terlepas dari penamaannya, tidak berarti bahwa opsi Amerika hanya dapat diperdagangkan di pasar-pasar Amerika dan demikian juga dengan opsi Eropa. Sebagaimana disampaikan, penamaan tersebut lebih mengacu kepada aturan transaksi perdagangan opsi yang dianut dan bukanlah lokasi pasar opsinya.
Perbedaan ketentuan mengenai kapan aset yang mendasari opsi tersebut dapat ditransaksikan memiliki pengaruh terhadap metode yang cocok untuk digunakan dalam proses penetapan harga opsi yang fair. Untuk opsi Amerika, dikarenakan aset dasar dapat dijual atau dibeli kapanpun hingga tanggal kadaluwarsa maka tentunya volatilitas harga aset dasar perlu menjadi pertimbangan (Smit, H., & Trigeorgis, L., 2009). Sebaliknya pada opsi Eropa, metode penetapan harga opsi yang menggunakan asumsi dasar bahwa selama jangka waktu kontrak opsi volatilitas harga aset dasar adalah tetap dapat diterapkan (Smit, H., & Trigeorgis, L., 2009).
2.3 Opsi di Bursa Efek Indonesia
Kontrak opsi pada Bursa Efek Indonesia dikenal dengan istilah Kontrak Opsi Saham atau biasa disingkat KOS. Apabila dilihat dari ketentuan kapan seorang pemegang hak dapat membeli ataupun menjual aset dasar dari kontrak opsi yang dimilikinya, maka KOS masuk pada kelompok opsi Amerika. Dalam hal ini, pemegang KOS yang diperdagangkan di Bursa Efek Indonesia dapat membeli ataupun menjual aset dasar kapanpun dalam jangka waktu berlakunya kontrak hingga tibanya tanggal jatuh tempo.
Sehingga, berdasarkan klaim hasil penelitian oleh (Hendrawan, R., 2010) yang menyebutkan bahwa untuk opsi-opsi Amerika metode penetapan harga opsi yang
4
dianggap lebih fair adalah yang metode yang tidak menggunakan tetapnya volatilitas harga aset selama jangka waktu kontrak, penetapan harga KOS di Bursa Efek Indonesia sepatutnya pun penggunakan pendekatan yang sama.
2.4 Faktor Penentu Nilai Opsi
Beberapa faktor yang menjadi penentu dasar dan memiliki pengaruh terhadap nilai opsi adalah harga saham, harga eksekusi, volatilitas harga saham, jangka waktu kontrak, tingkat bunga dan tingkat dividen saham (Bodie, Z., 2009).
Harga saham yang meningkat tentunya akan memberikan dampak positif terhadap pertumbuhan nilai opsi. Seiring dengan meningkatnya harga aset dasar tersebut maka secara logis nilai opsi beli dari aset tersebut juga akan meningkat. Pada sisi yang berlawanan, harga eksekusi yang tinggi akan menurunkan nilai opsi beli. Hal ini dikarenakan opsi-opsi beli dengan harga eksekusi yang tinggi memiliki risiko investasi yang lebih besar karena terdapat kemungkinan harga saham di pasar lebih rendah dibandingkan harga eksekusi yang ditetapkan dalam kontrak.
Selanjutnya untuk saham-saham dengan volatilitas yang tinggi maka akan memiliki dampak positif terhadap nilai opsi beli. Hal ini dikarenakan pada saham-saham dengan volatilitas tinggi kemungkinan untuk mendapatkan untung yang tinggi menjadi lebih besar pada kontrak opsi beli dengan harga eksekusi yang sama.
Demikian juga nilai opsi beli akan meningkat seiring dengan bertambah panjangnya masa berlaku kontrak. Untuk kontrak dengan jangka waktu yang lebih panjang, maka terbuka kesempatan bagi harga saham untuk bertumbuh lebih tinggi. Sehingga seseorang dengan hak beli dapat membeli saham yang di pasar memiliki harga tinggi dengan harga yang lebih rendah berdasarkan pada harga eksekusi dalam kontrak opsi beli yang dimilikinya. Seiring dengan hal ini, nilai opsi beli juga akan
5
meningkat bersamaan dengan naiknya tingkat bunga, dengan asumsi harga saham tetap.
Untuk faktor terakhir, kebijakan pembayaran dividen juga mempengaruhi nilai opsi. Pembayaran dividen yang tinggi akan menahan laju pertumbuhan harga saham, dan oleh sebab itu akan menurunkan potensi pembayaran yang diperoleh dari opsi beli sehingga nilai dari opsi beli tersebut akan menurun.
2.5 Penetapan Harga Opsi Binomial
Penetapan harga opsi binomial menggunakan asumsi dasar yang sangat sederhana, yaitu bahwa pada akhir masa berlakunya kontrak hanya ada dua kemungkinan nilai, yaitu saham meningkat hingga mencapai harga tertinggi ataupun menurun hingga mencapai harga terendah yang mungkin dicapai dalam jangka waktu tersebut sesuai dengan aturan yang berlaku.
Salah satu model penetapan harga opsi menggunakan teknik ini adalah Binomial Option Pricing Model selanjutnya disebut BOPM (Cox, J. C., Ross, S. A., &
Rubinstein, M., 1979). Model ini banyak digunakan karena dapat diterapkan pada
banyak kondisi dimana model-model lain tidak dapat bekerja dikarenakan asumsi-asumsi dasar yang membatasinya (Bodie, Z., 2009; Georgiadis, E., 2011).
BOPM secara umum melakukan penghitungan untuk penetapan harga opsi dengan mempropagasi kemungkinan perubahan harga saham dari waktu ke waktu dan bukanlah hanya pada satu titik waktu tertentu saja. Oleh sebab itu, BOPM cocok digunakan untuk menghitung penetapan harga opsi bertipe Amerika yang memberikan hak kepada pemegangnya untuk membeli ataupun menjual saham kapanpun tanpa harus menunggu waktu kadaluwarsanya (Georgiadis, E., 2011).
6
Teknik yang digunakan dalam BOPM terbilang sederhana apabila dilihat dari pemodelan matematisnya. Namun demikian yang menjadi kendala adalah waktu penyelesaian penghitungan yang relatif lebih lama apabila dibandingkan dengan metode penetapan harga opsi lainnya seperti Black-Scholes (Ganesan, N., Chamberlain, R. D., & Buhler, J., 2009). Lamanya waktu penyelesaian penghitungan pada BOPM disebabkan oleh konsep yang menjadi dasar bekerjanya BOPM, dimana penetapan harga opsi tidak hanya dihitung pada satu titik waktu, yaitu tanggal kadaluwarsa, namun dihitung pada tiap titik waktu selama masa kontrak berjalan dengan menyertakan pertumbuhan probabilitas harga saham pada tiap titik waktu. Tahapan utama yang menjadi proses inti penetapan harga opsi pada BOPM adalah:
1. Pembangunan pohon kemungkinan pergerakan harga saham dari waktu ke waktu. Pohon ini disebut sebagai lattice atau juga tree, sehingga BOPM juga dikenal sebagai metode penetapan harga opsi model lattice. 2. Penghitungan nilai opsi pada tiap titik di akhir waktu kontrak.
3. Penghitungan nilai opsi secara sekuensial pada tiap-tiap titik waktu yang mendahului sebuah titik waktu.
Proses pembangunan pohon kemungkinan pergerakan harga saham, selanjutnya disebut sebagai binomial price tree, dimulai dari titik waktu dilakukannya penilai harga opsi hingga tanggal kadaluwarsa. Pada tiap titik waktu, diasumsikan bahwa harga saham akan bergerkan naik (u) atau turun (d) berdasarkan faktor tertentu sesuai dengan aturan yang berlaku, dimana secara definisi u > 1 dan 0 < d ≤ 1. Sehingga apabila harga saham saat ini adalah S, maka pada titik waktu berkutnya Sup = S.u dan Sdown = S.d. Faktor kenaikan u dan penurunan d dihitung berdasarkan tingkat volatilitas saham σ dan jangka waktu pada titik tertentu t. Menggunakan nilai varian dari logaritma terhadap harga saham σ2
7
u
t
e
d
t
e
u
1
(1) (2)Penghitungan sebagaimana dijabarkan di atas dikenal sebagai metode Cox, Ross dan Rubinstein (Cox, J. C., Ross, S. A., & Rubinstein, M., 1979), selanjutnya disebut sebagai metode CRR. Metode CRR dikenal luas dan telah banyak digunakan untuk membangun lattice, dalam hal ini binomial price tree, dan memberikan kepastian bahwa binomial tree yang dibangun bersifat recombinant (Cox, J. C., Ross, S. A., &
Rubinstein, M., 1979). Metode CRR memungkinkan nilai dari saham pada tiap titik
waktu untuk dapat dihitung secara langsung tanpa membangun tree-nya terlebih dahulu dengan persamaan matematika sebagai berikut:
)
(
0
d
N
u
N
u
S
n
S
(3)Dimana Nu adalah jumlah titik kenaikan dan Nd adalah jumlah titik penurunan pada titik waktu ke-n.
Untuk menghitung nilai opsi pada tiap titik akhir yang merupakan daun atau leaves dari binomial price tree yang dibangun digunakan formula sebagai berikut:
jual opsi untuk beli opsi untuk
],
0
),
[(
Max
],
0
),
[(
Max
n
S
K
K
n
S
(4) (5)Dimana K adalah harga eksekusi dan Sn adalah harga saham yang menjadi aset dasar pada titik waktu ke-n. Nilai opsi pada tiap titik akhir secara otomatis merupakan kandidat nilai eksekusi yang fair bagi saham tersebut (Cox, J. C., Ross, S. A., &
Rubinstein, M., 1979).
Setelah binomial price tree selesai dibangun dan juga harga opsi pada tiap titik akhir dihitung maka langkah selanjutnya untuk bergerak mundur dimulai dari titik
8
akhir binomial price tree yang dibangun dan kemudian menghitung nilai opsi di tiap-tiap titik yang mendahului sebuah titik lainnya. Nilai opsi pada tiap-tiap titik yang berada diantara awal waktu penghitungan hingga tanggal kadaluwarsa dihitung berdasarkan asumsi netralitas risiko (Bingham, N. H., & Kiesel, R., 2013). Selanjutnya apabila diputuskan untuk mentransaksikan opsi pada titik waktu tertentu sebelum tanggal jatuh temponya,maka BOPM akan mengambil nilai yang lebih besar diantara nilai pada titik waktu tersebut dan harga eksekusi di waktu jatuh tempo yang telah dihitung sebelumnya (Cox, J. C., Ross, S. A., & Rubinstein, M., 1979). Ilustrasi binomial price tree dapat dilihat pada Gambar 1.
Karakteristik BOPM sebagaimana dijabarkan dalam proses penghitungannya di atas memberikan gambaran bahwa BOPM bekerja dengan menghitung seluruh kemungkinan nilai opsi pada tiap titik waktu dalam jangka waktu kontrak opsi. Hal ini memberikan keuntungan bahwa BOPM menyajikan hasil penilaian yang komprehensif. Namun demikian, dikarenakan proses penghitungan yang dilakukan pada tiap titik waktu, BOPM umumnya membutuhkan waktu penyelesaian komputasi yang lebih lama (Ganesan, N., Chamberlain, R. D., & Buhler, J., 2009).
9
Gambar 1. Ilustrasi proses pembangunan binomial price tree pada Binomial Option Pricing Model dengan jumlah titik waktu n = 3.
2.6 Penilaian Opsi Black-Scholes
Sebagaimana dijelaskan model penetapan harga opsi secara binomial sangatlah fleksibel namun membutuhkan proses komputasi yang besar. Sehubungan dengan hal tersebut, untuk mengurangi kompleksitas proses penetapan harga opsi secara binomial maka dikembangkanlah rumus matematika untuk dapat menghitung harga opsi dengan cepat. Rumus matematika ini menggunakan dua asumsi tambahan yaitu bahwa volatilitas harga saham adalah konstan selama jangka waktu kontrak dan tingkat bunga bebas risiko. Rumus matematika ini dikembangkan oleh Black, Scholes dan Merton yang selanjutnya dikenal dengan model penetapan harga opsi beli dan jual Black-Scholes (Black, F., & Scholes, M., 1973).
Selanjutnya rumus opsi beli pada model Black-Scholes dijabarkan sebagai berikut:
)
2
(
)
1
(
0
0
S
N
d
Xe
rT
N
d
C
(6) Dimana10
T
d
d
T
T
r
X
S
d
1
2
)
2
/
2
(
)
/
0
ln(
1
(7) (8) dan dimana:C0 = Nilai opsi beli saat ini S0 = Harga saham saat ini
N(d) = Probabilitas penarikan acak dari distribusi normal akan lebih rendah dari d.
X = Harga eksekusi
e = 2.71828
r = Tingkat suku bunga bebas risiko T = Waktu hingga jatuh tempo dalam tahun ln = Fungsi logaritma natural
σ = Deviasi standar tingkat imbal hasil pemajemukan berlanjut yang disetahunkan atas saham
Sedangkan rumus penetapan harga opsi jual model Black-Scholes dijabarkan sebagai berikut:
)]
1
(
1
[
0
)]
2
(
1
[
N
d
S
N
d
rT
Xe
P
(9)Dikarenakan model Black-Scholes menggunakan asumsi bahwa volatilitas harga saham adalah tetap selama jangka waktu kontrak sebagai salah satu asumsi dasarnya, maka bentuk dasar dari model ini cocok digunakan untuk menghitung harga opsi bertipe Eropa yang mana hanya mengijinkan proses penjualan ataupun pembelian aset dasar pada tanggal jatuh temponya (Chriss, N., 1996).
11
2.7 Komputasi Paralel
Komputasi paralel adalah sebuah proses penyelesaian masalah atau model matematika dengan cara menjalankan beberapa proses komputasi secara simultan. Komputasi secara paralel dilakukan dengan cara memecah sebuah masalah menjadi beberapa buah sub-masalah yang lebih kecil untuk kemudian diselesaikan menggunakan beberapa proses komputasi yang bekerja bersamaan. Luaran komputasi dari tiap-tiap proses kemudian akan digabungkan untuk menghasilkan luaran akhir
(Asanovic, K., dkk, 2006).
Dalam realisasinya, komputasi paralel berhubungan erat dengan adanya arsitektur komputer yang berbentuk paralel. Pada arsitektur ini beberapa buah komputer saling dihubungkan untuk membentuk sebuah kesatuan grid dan saling bekerja sama untuk menyelesaikan suatu tugas tertentu (Barney, B., 2010). Seiring perkembangan teknologi mikroprosesor, maka pada saat ini proses komputasi paralel juga dapat dilakukan pada sebuah mesin komputer yang memiliki beberapa buah inti pemrosesan atau multi-core processor. Namun dalam hal melakukan penghitungan yang bersifat kompleks, misalnya melakukan prediksi cuaca (Ritter, B., & Geleyn, J.
F., 1992), maka tetap dibutuhkan arsitektur komputer yang berbetuk grid,
sebagaimana dapat dilihat pada Gambar 2, untuk dapat menyelesaikan penghitungan dalam batas waktu yang masuk akal.
12
Gambar 2. Konsep komputasi paralel dengan memecah sebuah masalah menjadi beberapa sub permasalahan yang diselesaikan pada multi prosesor
(Barney, B., 2010).
Perlu menjadi perhatian bahwa tidak semua permasalahan ataupun model matematika dapat diselesaikan dengan menggunakan teknik komputasi paralel. Dalam halnya penyelesaian suatu model atau persamaan matematika membutuhkan proses yang bekerja secara sekuensial dan tidak dapat dipecah menjadi sub permasalahan yang dapat diselesaikan sendiri-sendiri, maka penggunaan komputasi paralel tidaklah efektif (Asanovic, K., dkk, 2006).
Sejalan dengan kenyataan tersebut, diperlukan proses konversi model atau persamaan matematika ke dalam bentuk sub-sub permasalahan yang dapat diselesaikan secara mandiri dalam penerapan komputasi paralel. Selanjutnya teknik pemrograman yang memungkinkan agar sub permasalahan yang telah dibangun dapat disebar dan diproses pada beberapa titik mesin juga menjadi syarat mutlak implementasi komputasi paralel.
Pada beberapa penelitian sebelumnya, komputasi paralel telah digunakan pada bidang-bidang pengelompokkan pesan teks (Darriba, D., dkk, 2012), pengolahan citra pada komputer (Lee, C. K., & Hamdi, M., 1995), pengolahan data kimia dan genome
13
(Sangket, U., 2010), serta juga dalam hal penyelesaian model-model keuangan
(Zenios, S. A., 1999). Berdasarkan hasil-hasil yang dipaparkan dalam
penelitian-penelitian sebelumnya tersebut, maka pada penelitian-penelitian ini akan dieksplorasi penggunaan komputasi paralel untuk mempercepat proses penetapan harga opsi saham menggunakan model binomial di Bursa Efek Indonesia.
2.8 Klaster Komputer
Klaster komputer adalah sekumpulan komputer yang saling terkoneksi satu dengan yang lainnya namun berfungsi sebagai satu kesatuan sistem (Baker, M., 2000). Dengan kata lain, secara fisik klaster komputer terdiri dari beberapa mesin namun dari secara logis sejumlah mesin atau komputer yang saling terhubung tersebut bekerja sebagai sebuah komputer super. Tiap titik mesin pada sebuah klaster komputer memiliki tugas yang sama dan dikontrol serta dijadwal oleh sebuah perangkat lunak pengatur.
Arsitektur klaster komputer berkembang atas timbulnya kebutuhan untuk dapat melakukan proses komputasi kompleks dengan tetap menjaga biaya yang harus dikeluarkan pada tingkat yang rendah. Oleh sebab itu, pada umumnya klaster komputer dibangun dengan menggunakan komputer-komputer dengan spesifikasi rendah, dan biasanya merupakan komputer yang sudah tidak terpakai.
14
Gambar 3. Arsitektur klaster komputer yang terdiri dari sebuah komputer master (frontend-node) dan beberapa komputer slave (compute-node)
(Sangket, U., dkk, 2010).
Namun demikian dengan menggabungkan beberapa unit komputer dengan spesifikasi rendah tersebut dapat dihasilkan sebuah komputer super dengan kemampuan komputasi yang tinggi.
Arsitektur klaster komputer terdiri dari setidaknya 1 buah komputer yang berfungsi sebagai master dan n buah komputer lainnya yang berfungsi sebagai slave. Komputer master bertugas untuk menerima pekerjaan dan kemudian mendistribusikan serta menjadwalkan pelaksanaan tugas untuk tiap-tiap komputer slave. Setelah komputer-komputer slave menyelesaikan tugasnya maka hasilnya akan dikirimkan ke komputer master untuk kemudian dikompilasi. Arsitektur klaster komputer secara konseptual diperlihatkan pada Gambar 3.
Klaster komputer merupakan arsitektur yang cocok untuk melakukan proses komputasi paralel. Dimana dalam hal ini setelah sebuah permasalahan atau model matematika dipecah menjadi beberapa sub permasalahan, maka penyelesaian tiap-tiap
15
sub permasalahan akan dilakukan pada komputer slave yang ada dalam sebuah klaster komputer.
2.8.1 Klaster Beowulf Linux
Sebagaimana telah dipaparkan sebelumnya, arsitektur klaster komputer dapat dimanfaatkan untuk membangun sebuah sistem yang memiliki kemampuan komputasi setara dengan komputer super dengan memanfaatkan beberapa komputer dengan spesifikasi rendah. Dengan demikian faktor biaya yang dibutuhkan dalam pembuatan komputer super tersebut dapat dijaga agar tetap rendah.
Sejalan dengan fakta tersebut, maka menjadi masuk akal jika kiranya sistem klaster yang dibangun juga memiliki tingkat efisiensi biaya yang tinggi dari sisi perangkat lunak yang digunakan. Dalam hal ini menjadi lazim bahwa pembangunan klaster komputer menggunakan sistem operasi dan juga perangkat lunak yang bersifat gratis serta terbuka atau free/open source software.
Linux yang merupakan sistem operasi bersifat gratis dan terbuka menyediakan fungsi untuk dapat membangun klaster komputer pada paket instalasinya. Salah satu jenis klaster komputer berbasis Linux yang banyak digunakan karena kemudahan konfigurasinya dan kehandalan kemampuannya adalah klaster Beowulf yang diperkenalkan oleh Jacek Radajewski dan Douglas Eadline (Becker, D. J., dkk, 1995). Contoh bentuk sebuah sistem klaster Bewoulf sebagaimana diperkenalkan oleh Radajewski dan Eadline dapat dilihat pada Gambar 4.
16
Arsitektur klaster Beowulf dikenal cocok untuk digunakan sebagai infrastruktur dalam penerapan komputasi paralel. Sehingga dalam penelitian ini untuk menerapkan komputasi paralel dalam penetapan harga opsi dengan Binomial Option Pricing Model akan dibangun sebuah klaster Beowulf dengan memanfaatkan komputer-komputer bekas berspesifikasi rendah di lingkungan laboratorium FTI Perbanas Institute.
Gambar 4. Bentuk klaster Beowulf berbasis Linux yang dibangun oleh laboratorium di MIT (Katsavounidis, E., n.d.).
2.9 Komputasi Paralel untuk Penyelesaian Masalah Keuangan
Salah satu tantangan utama yang ada pada masalah keuangan, khususnya masalah investasi selalu berkaitan dengan kemampuan untuk dapat mengambil keputusan yang tepat dalam waktu yang cepat. Memiliki kemampuan untuk
17
mengambil keputusan yang tepat dengan cepat memiliki andil yang signifikan dalam menentukan hasil investasi yang dilakukan.
Sehubungan dengan hal tersebut pengambilan keputusan yang cepat haruslah didukung dengan kemampuan untuk melakukan pemrosesan serta analisa data ataupun informasi secara cepat. Namun demikian seiring dengan bertambahnya jumlah parameter dan juga ukuran data yang harus diproses maka biaya komputasi pun menjadi tinggi. Untuk dapat mempercepat proses komputasi dibutuhkan komputer dengan spesifikasi tinggi yang pada umumnya juga berharga tinggi.
Penyelesaian masalah biaya komputasi serta investasi komputer yang tinggi dapat diatasi dengan menerapkan teknik komputasi paralel yang kemudian dijalankan di atas arsitektur klaster komputer. Seiringan dengan itu, telah banyak dilakukan penelitian yang berhubungan dengan penerapan komputasi paralel untuk penyelesaian masalah-masalah di bidang keuangan.
Sebagaimana dilaporkan oleh (Zenios, S. A., 1999), komputasi paralel telah digunakan untuk mengkaji nilai sekuritas dan Value-at-Risk-nya menggunakan simulasi Monte Carlo, membangun sistem manajemen risiko yang terintegrasi serta juga digunakan untuk merancang produk-produk keuangan baru. Selain itu penelitian yang dilakukan oleh (Barua, S., Thulasiram, R. K., & Thulasiraman, P., 2005) juga menyebutkan bahwa komputasi paralel telah digunakan untuk melakukan penghitungan Fast Fourier Transform (FFT) dalam penetapan harga produk drivatif keuangan.
Pantas untuk dicermati bahwa ada banyak penelitian sebelumnya yang juga telah menggunakan teknik komputasi paralel dalam penghitungan harga opsi di berbagai pasar opsi di dunia (Peng, Y., dkk, 2010; Sak, H., Özekici, S., & Bodurog, İ.,
18
memaparkan bahwa penggunaan komputasi paralel dapat mempercepat proses penghitungan harga opsi yang fair sehingga dapat membantu para investor dalam mengambil keputusan pada saat akan berinvestasi pada opsi.
Namun demikian, belum ada penelitian yang menggunakan komputasi paralel untuk penghitungan harga opsi di Bursa Efek Indonesia terutama yang diterapkan pada klaster komputer berbasis Linux. Oleh sebab itu penyelesaian proses penghitungan harga opsi di Bursa Efek Indonesia dengan menggunakan teknik komputasi paralel yang berjalan di atas klaster Linux menjadi salah satu kontribusi utama dari penelitian ini.
19
BAB III. METODE PENELITIAN
3.1 Jenis Penelitian
Penelitian yang dilaksanakan bersifat komparatif eksperimental, dimana pada fase komparasi akan dibandingkan hasil penghitungan harga opsi di Bursa Efek Indonesia menggunakan dua metode yang berbeda yaitu Binomial Option Pricing Model dan Black-Scholes. Perbandingan ini dilakukan untuk mengkaji model penghitungan harga opsi manakah yang memberikan hasil lebih fair untuk opsi yang diperdagangkan di Bursa Efek Indonesia.
Selanjutnya pada fase eksperimental akan diamati perbedaan kecepatan waktu komputasi yang dibutuhkan untuk menyelesaikan penghitungan Binomial Option Pricing Model antara sistem satu titik mesin dan sistem multi titik mesin.
Adapun metodologi yang digunakan pada penelitian ini adalah metodologi penelitian konstruktif (Crnkovic, G. D., 2010), dimana untuk membuktikan sebuah teori dibangun sebuah sistem atau prototipe yang berfungsi penuh dan kemudian diuji menggunakan data yang ada. Selanjutnya hasil yang diberikan oleh sistem atau prototipe tersebut diukur dan dianalisa dalam rangka menjawab rumusan masalah yang telah ditetapkan pada penelitian.
3.2 Tahapan Penelitian
Guna merealisasikan tujuan penelitian dan juga menjawab rumusan masalah yang telah ditetapkan pada Bab 1, maka tahapan-tahapan yang akan dilakukan dalam penelitian ini dijabarkan sebagai berikut:
1. Melakukan kajian mengenai teknik valuasi opsi untuk mengidentifikasi keunggulan dan kelemahan masing-masing teknik.
20
2. Implementasi Binomial Option Pricing Model menggunakan bahasa pemrograman tertentu agar dapat dijalankan pada satu titik mesin.
3. Pengumpulan data instrument Bursa Efek Indonesia yang dibutuhkan untuk membentuk harga opsi sesuai dengan aturan yang berlaku dan pada periode yang dibutuhkan.
4. Uji coba dan analisa perbandingan hasil penghitungan harga opsi di Bursa Efek Indonesia menggunakan hasil implementasi Binomial Option Pricing Model dengan model Black-Scholes.
5. Membangun infrastruktur sistem komputasi terdistribusi yang dapat digunakan untuk mendistribusikan pekerjaan komputasi paralel menggunakan platform yang bersifat free/open source.
6. Konversi hasil implementasi Binomial Option Pricing Model satu titik mesin ke bentuk permasalahan komputasi paralel sehingga proses penghitungan harga opsi dapat didistribusikan ke beberapa titik mesin. 7. Implementasi Binomial Option Pricing Model untuk multi titik mesin
pada infrastruktur sistem komputasi terdistribusi yang telah dibangun. 8. Uji coba dan analisa penghitungan harga opsi baik dari sisi fairness
maupun kecepatan waktu komputasi menggunakan infrastruktur sistem komputasi terdistribusi yang telah dibangun.
9. Penarikan kesimpulan berdasarkan hasil uji coba dan analisa.
21
22
3.3 Alat Dukung Penelitian
Alat pendukung utama terlaksananya kegiatan penelitian ini adalah tersedianya perangkat keras berupa sejumlah unit komputer untuk membangun infrastruktur sistem komputasi terdistribusi.
Dalam hal ini, komputer yang akan digunakan adalah komputer bekas yang sudah dalam kondisi tidak terpakai dari hasil peremajaan komputer pada laboratorium Computer Network and Security (Cisco) di FTI Perbanas Institute. Selanjutnya, infrastruktur sistem komputasi terdistribusi yang dihasilkan dalam penelitian ini akan diletakkan di laboratorium Information Systems and Design untuk dapat digunakan sebagai alat penunjang pembelajaran pada mata kuliah Sistem Terdistribusi.
3.4 Analisa Hasil
Sebagaimana telah dijabarkan pada Bab 1 bahwa yang menjadi tujuan utama penelitian ini adalah untuk dapat mempercepat waktu penyelesaian Binomial Option Pricing Model dengan menggunakan teknik komputasi paralel serta tetap menjaga faktor fairness dari penghitungan harga. Oleh sebab itu analisa hasil uji coba dititikberatkan pada dua aspek yaitu kecepatan proses penghitungan harga dan juga fairness.
Diharapkan infrastruktur sistem komputasi terdistribusi yang dibangun dapat mempercepat proses penghitungan dengan tetap menjaga tingkat fairness-nya.
23
BAB IV. HASIL DAN DISKUSI
Dalam pelaksanaan kegiatan penelitian ini beberapa tahapan penelitian sesuai dengan rencana penelitian yang telah ditetapkan telah dilaksanakan. Beberapa tahapan utama yang telah dicapai adalah:
1. Implementasi algoritma BOPM menggunakan Matlab 2. Implementasi algoritma BOPM menggunakan Python
3. Pembangunan klaster komputer dengan menggunakan Linux sebagai platform utamanya.
4. Ujicoba klaster Linux yang telah dibangun menggunakan program sederhana
5. Eksplorasi konversi kode program BOPM ke dalam bentuk yang dapat dijalankan secara paralel di atas klaster Linux yang telah dibangun. 6. Penyelesaian penghitungan harga opsi pada salah satu saham di BEI
menggunakan model BOPM dengan teknik komputasi paralel pada klaster yang dibangun serta analisa perbandingan antara kinerja komputasi tunggal dan komputasi paralel.
Selanjutnya dalam bab ini akan dijabarkan lebih lanjut mengenai masing-masing tahapan yang telah dilakukan tersebut.
4.1 Uji Coba Implementasi Algoritma BOPM
Berdasarkan algoritma BOPM yang telah dijabarkan pada bab sebelumnya, maka dapat dipahami bahwa proses utama dari BOPM adalah dengan membangun sebuah pohon yang berisikan nilai yang dipropagasi kedepannya, baik untuk nilai harga saham, maupun harga eksekusi dari opsi saham (jual maupun beli).
24
Dengan terbangunnya pohon propagasi nilai saham dan juga nilai opsinya, maka pengambil keputusan atau dalam hal ini pada umumnya dalah para investor dapat menilai apakah harga eksekusi opsi yang ditawarkan merupakan harga yang fair atau tidak. Sebagaimana tertuang dalam Ekuasi 6 hingga 9, beberapa data dibutuhkan terkait dengan penyelesaian penghitungan harga opsi yang fair. Dalam penelitian ini data-data tersebut diperoleh dari sumber-sumber seperti Bursa Efek Indonesia (BEI), Yahoo Finance, Bank Indonesia (BI) dan Biro Pusat Statistik (BPS). Khusus untuk data terkait tingkat suku bunga bebas risiko, dalam penelitian ini digunakan data suku bunga BI. Sedangkan untuk nilai volatilitas sebuah saham digunakan koefisien Beta mingguan dari saham tersebut yang dapat dihitung dari pergerakan harga saham hariannya.
Pada penelitian ini uji coba implementasi algoritma BOPM dilakukan menggunakan dua environment pemrograman yang berbeda, yaitu Matlab dan Python. Dalam hal ini Matlab digunakan sebagai initial programming environment guna mengimplementasikan algoritma BOPM. Keputusan digunakannya Matlab sebagai initial programming environment didasarkan pada kelengkapan library dan kemudahan modul komputasi yang tersedia di dalamnya. Namun demikian tantangan lain yang timbul adalah konversi program yang ditulis menggunakan Matlab agar dapat dijalankan secara paralel pada klaster komputer.
Kemudahan konversi program ke dalam bentuk yang dapat dijalankan dengan mudah secara paralel pada klaster komputer ditawarkan oleh environment pemrograman lainnya, yaitu Python. Tidak seperti Matlab yang bersifat komersil, Python merupakan environment pemrograman yang bersifat free dan open-source. Karakteristik inilah yang mendasari keputusan bahwa implementasi algoritma BOPM
25
yang diuji di Matlab kemudian dikonversi ke Python untuk kemudian diubah menjadi bentuk yang dapat dieksekusi secara paralel.
4.1.1 Implementasi Algoritma BOPM dengan Matlab
Implementasi algoritma BOPM di Matlab dilakukan dengan membangun sebuah fungsi yang menerima sejumlah data input yang terdiri dari:
SO = Harga saham
X = Harga eksekusi opsi yang ditawarkan
R = Tingkat suku bunga bebas risiko, dalam hal ini suku bunga BI
T = Waktu hingga eksekusi opsi (dalam tahun)
DT = Satuan kenaikan waktu
SIG = Nilai volatilitas aset (saham)
FLAG = jenis opsi; opsi jual = 1 dan opsi beli = 0
Sebagai luarannya, fungsi tersebut akan mengembalikan nilai propagasi saham (P) dan juga opsi-nya (O) dalam bentuk pohon sesuai dengan interval waktu yang diberikan pada saat pemanggilan fungsi. Selanjutnya, implementasi algoritma BOPM pada environment pemrograman Matlab dapat dilihat secara lengkap pada Source Code 1.
4.1.2 Implementasi Algoritma BOPM dengan Python
Sebagaimana telah dijabarkan sebelumnya, Matlab menawarkan kemudahan dari sisi kelengkapan library komputasi yang dibutuhkan dalam proses implementasi algoritma BOPM.
26
Source Code 1. Implementasi Algoritma BOPM dengan Matlab 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
function [pr,opt] = binprice(so,x,r,t,dt,sig,flag) nper = round(t/dt); % Number of periods after time zero dt = t/nper;
npp = nper+1; % Number of periods including time zero
% Make sure there are no dividend payments after instrument maturity:
if(exdiv > nper)
error(message('finance:binprice:invalidDivPayment')) end
% Calculate the probability of an upward price movement u = exp(sig.*sqrt(dt));
d = 1./u;
a = exp((r-q).*dt); p = (a-d)./(u-d);
jspan = -fix(nper*.5); % j-th node offset number ispan = rem(round(t/dt),2); % i-th node offset number i = ispan:(nper+ispan); % i-th node numbers
j = (jspan:(nper+jspan))'; % j-th node numbers jex = j(:,ones(size(i'))); % expand i and j iex = i(ones(size(j)),:);
pvdiv = div.*exp(-exdiv.*dt.*r); % Find present value so = so-sum(pvdiv(:));% Find current price - div present values
% Asset price at nodes, matrix is flipped so tree appears correct visually
pr = triu(fliplr(flipud(so.*u.^jex.*d.^(iex-jex)))); if div ~= 0 % Present value of future dividends at nodes lendiv = length(div(:));
lenexdiv = length(exdiv(:)); if lendiv ~= lenexdiv
error(message('finance:binprice:mismatchDivExDiv')) end
dpvtot = zeros(npp); % Preallocate matrix for y = 1:lenexdiv
z = (exdiv(y):-1:0); % Create vector from 0 to ex-div date
dpv = div(y)*exp(-z*dt*r); % Discount dividends nodes dpvmat = [dpv(ones(npp,1),:) zeros(npp,npp-
length(dpv))]; dpvtot = dpvtot + dpvmat; end
m = find(pr~=0); % Find nodes where option will have value pr(m) = pr(m)+dpvtot(m); % combine div pv's and prices end
opt = zeros(size(pr)); if flag == 1 % Option is a call
opt(:,npp) = max(pr(:,npp)-x,0); % Determine option values for n = nper:-1:1
k = 1:n;
% Probable option values discounted back one time step discopt = (p*opt(k,n+1)+(1-p)*opt(k+1,n+1))*exp(-r*dt); % Option value is max of current price - X or discopt opt(:,n) = [max(pr(1:n,n)-x,discopt);zeros(npp-n,1)]; end
elseif flag == 0 % Option is a put
opt(:,npp) = max(x-pr(:,npp),0); % Determine option values from prices
for n = nper:-1:1 k = 1:n;
27 53 54 55 56 57 58 59
% Probable option values discounted back one time step discopt = (p*opt(k,n+1)+(1-p)*opt(k+1,n+1))*exp(-r*dt); % Option value is max of X - current price or discopt opt(:,n) = [max(x-pr(1:n,n),discopt);zeros(npp-n,1)]; end
end
Namun demikian guna menunjang proses konversi hasil implementasi algoritma BOPM tersebut agar dapat dieksekusi secara paralel pada klaster komputer maka digunakanlah Python sebagai environment pemrograman berikutnya.
Seperti halnya pada implementasi algoritma BOPM di Matlab, implementasi algoritma BOPM juga menggunakan beberapa data sebagai input, yaitu:
S0 = Harga saham
K = Harga opsi pada saat eksekusi
T = Waktu maturity opsi saham
r = Suku bunga bebas risiko
vola = Nilai volatilitas saham
M = Satuan waktu yang digunakan hingga maturity
Hal ini sesuai dengan algoritma dasar BOPM yang memang membutuhkan setidaknya lima variabel yang terdiri dari nilai aset, nilai opsi pada saat eksekusi, waktu tunggu hingga eksekusi, nilai suku bunga bebas risiko dan nilai volatilitas dari aset (saham).
Implementasi algoritma BOPM di Python menggunakan library tambahan yaitu Numpy. Numpy merupakan ekstensi pada Python yang menyediakan library untuk melakukan penghitungan matematis kompleks disertai dengan kemampuan pengolahan data dan matriks dalam ukuran yang
28
besar. Penggunaan Numpy menjadi penting dikarenakan karakteristik dari BOPM yang harus membangun pohon propagasi baik untuk nilai saham maupun opsinya dalam penyelesaian model nilai opsi saham yang diamati.
Selanjutnya, implementasi algoritma BOPM menggunakan Python dan Numpy dapat dilihat secara lengkap pada Source Code 2.
Source Code 2. Implementasi Algoritma BOPM dengan Python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
from math import exp, sqrt # Option Parameters
S0 = 105.0 # initial index level K = 100.0 # strike price
T = 1. # call option maturity r = 0.05 # constant short rate
vola = 0.25 # constant volatility factor of diffusion # Time Parameters
M = 1000 # time steps
dt = T / M # length of time interval
df = exp(-r * dt) # discount factor per time interval # Binomial Parameters
u = exp(vola * sqrt(dt)) # up-movement d = 1 / u # down-movement
q = (exp(r * dt) - d) / (u - d) # martingale probability import numpy as np
def oVal_py():
# Array Initialization for Index Levels
S = np.zeros((M + 1, M + 1), dtype=np.float64) # index level array S[0, 0] = S0 z = 0 for j in range(1, M + 1, 1): z += 1 for i in range(z + 1): S[i, j] = S[0, 0] * (u ** j) * (d ** (i * 2)) # Array Initialization for Inner Values
iv = np.zeros((M + 1, M + 1), dtype=np.float64) # inner value array z = 0 for j in range(0, M + 1, 1): for i in range(z + 1): iv[i, j] = max(S[i, j] - K, 0) z += 1
# Valuation by Risk-Neutral Discounting
pv = np.zeros((M + 1, M + 1), dtype=np.float64) # present value array
pv[:, M] = iv[:, M] # initialize last time point z = M + 1
for j in range(M - 1, -1, -1): z -= 1
for i in range(z):
pv[i, j] = (q * pv[i, j + 1] + (1 - q) * pv[i + 1, j + 1]) * df
29
4.2 Pembangunan Klaster Linux
Pada penelitian ini guna merealisasikan proses penyelesaian BOPM dengan komputasi paralel maka dibangunlah sebuah klaster komputer dengan memanfaatkan beberapa komputer bekas dari laboratorium FTI Perbanas Institute yang masih fungsional. Dari 20 komputer bekas yang ada, diperoleh 4 buah komputer yang masih dapat beroperasi. Keempat komputer tersebut memiliki spesifikasi serupa sebagai berikut:
Prosesor: Intel Pentium 4
RAM: 2 GByte
Kapasitas hard disk: 64 GByte
Sebuah klaster kemudian dibangun dengan spesifikasi 1 komputer bertugas sebagai master merangkap node dan 3 komputer lainnya bertugas sebagai node. Komputer node dalam hal ini adalah komputer yang hanya bertugas melakukan komputasi sesuai dengan task yang diberikan oleh komputer master. Tugas utama diberikan kepada komputer master yang kemudian akan membagi tugas utama tersebut menjadi beberap sub-tugas dan kemudian mendistribusikannya kepada komputer-komputer node yang ada. Komputer master juga bertugas untuk menerima/mengumpulkan hasil komputasi dari tiap-tiap komputer node.
Arsitektur klaster komputer yang digunakan dalam penelitian ini adalah Beowulf Cluster yang beroperasi diatas platform Linux. Dipilihnya arstitektur Beowulf Cluster didasarkan pada hasil-hasil yang telah dipublikasikan terkait performansi dari Beowulf Cluster yang handal, mudah dikelola dan telah banyak digunakan untuk menjalankan berbagai proses komputasi paralel (Saldaña dkk.,
2012). Skema konfigurasi dari klaster komputer yang dibangun dalam penelitian ini
30
Selanjutnya, untuk menjalankan dan mengelola proses komputasi paralel diatas klaster komputer yang telah dibangun, dalam penelitian ini digunakan protokol pemrosesan paralel yang disebut Message Passing Interface (MPI). Pada hakikatnya MPI menjalankan proses komputasi paralel dengan saling bertukar pesan melalui antarmuka (dalam bentuk program) yang ada pada tiap-tiap komputer node di sebuah klaster. Dalam hal ini MPI memungkinkan proses pendistribusian sub-task dan juga komunikasi antar node komputer yang ada dalam sebuah klaster untuk direalisasikan dengan lebih mudah dan cepat.
Gambar 6. Konfigurasi Klaster Beowulf di Lab FTI Perbanas Institute
Keuntungan lainnya yang diperoleh dengan digunakannya MPI adalah kemudahan instalasi dan juga konfigurasinya di sistem operasi Linux. Dikarenakan arsitektur klaster yang digunakan adalah Beowulf Cluster yang berjalan di atas
31
platform Linux, maka MPI menjadi pilihan yang tepat untuk merealisasikan proses komputasi paralel pada penelitian ini.
4.3 Uji Coba Klaster Linux
Uji coba awal yang dilakukan pada klaster komputer yang telah dibangun adalah dengan menampilkan pesan yang berasal dari keempat komputer yang ada pada klaster tersebut. Program ditulis menggunakan Python yang kemudian akan dieksekusi menggunakan protokol MPI pada klaster yang telah dibangun dan dikonfigurasi.
Kode sumber yang ditulis dalam Python untuk menampilkan pesan dari tiap-tiap prosesor atau komputer node pada klaster yang dibangun ditampilkan pada Source Code 3. Kemudian untuk menjalankan program tersebut perintah yang digunakan adalah “mpiexec” dan bukanlah “python”. Perintah “mpiexec” menandakan bahwa program yang dipanggil akan dieksekusi secara paralel dengan menggunakan MPI sebagai protokolnya.
Hasil dari uji coba awal ini dapat dilihat pada Source Code 4 , dimana nampak bahwa masing-masing prosesor atau komputer node yang ada dalam klaster, dalam hal ini 4 komputer node, menghasilkan pesan dan mengirimkannya kembali ke komputer master untuk kemudian ditampilkan.
Berjalannya hasil uji coba ini mengindikasikan bahwa infrastruktur klaster komputer yang dibangun untuk mendukung kebutuhan komputasi paralel dalam penelitian ini telah siap digunakan. Maka tahap selanjutnya dari penelitian ini adalah untuk menjalankan hasil konversi implementasi algoritma BOPM ke dalam bentuk yang dapat dieksekusi secara paralel di atas klaster komputer yang telah dibangun.
32
Source Code 3. Uji Coba Pemrosesan Paralel pada Klaster Beowulf dengan MPI 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include <mpi.h> #include <stdio.h>
int main(int argc, char** argv) { // Initialize the MPI environment MPI_Init(NULL, NULL);
// Get the number of processes int world_size;
MPI_Comm_size(MPI_COMM_WORLD, &world_size); // Get the rank of the process
int world_rank;
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); // Get the name of the processor
char processor_name[MPI_MAX_PROCESSOR_NAME]; int name_len;
MPI_Get_processor_name(processor_name, &name_len); // Print off a hello world message
printf("Hello from processor %s, rank %d" " out of %d processors\n",
processor_name, world_rank, world_size); // Finalize the MPI environment.
MPI_Finalize(); }
Source Code 4. Hasil Uji Coba Pemrosesan Paralel >>> export MPIRUN=/home/fticluster/bin/mpirun >>> export MPI_HOSTS=host_file >>> cd test >>> ./run.py mpi_hello_world /home/fticluster/bin/mpirun -n 4 -f host_file ./mpi_hello_world
Hello from processor ftinode2, rank 1 out of 4 processors Hello from processor ftinode1, rank 0 out of 4 processors Hello from processor ftinode4, rank 3 out of 4 processors Hello from processor ftinode3, rank 2 out of 4 processors
4.4 Konversi Algoritma BOPM ke Model Komputasi Paralel dengan Algoritma Least-Square Monte Carlo
Memanfaatkan infrastruktur MPI yang digunakan pada klaster komputer yang telah selesai dibangun, maka algoritma BOPM dalam bentuk paralel dibangun menggunakan Python. Namun demikian, adapun algoritma dasar BOPM juga diubah
33
menjadi menggunakan algoritma Least-Square Monte Carlo, sebagaimana diajukan oleh Longstaff-Schwartz pada tahun 2001 (Longstaff dan Schwartz, 2001).
Source Code 5. Implenetasi Algoritma Least Square Monte Carlo untuk Penilaian Harga Opsi secara Paralel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
def optionValue(S0, vol, T, K=40, M=50, I=4096, r=0.06): import numpy as np
np.random.seed(150000) # fix the seed for every valuation
dt = T / M # time interval
df = np.exp(-r * dt) # discount factor per time time interval
# Simulation of Index Levels
S = np.zeros((M + 1, I), dtype=np.float64) # stock price matrix
S[0, :] = S0 # intial values for stock price for t in range(1, M + 1):
ran = np.random.standard_normal(I / 2)
ran = np.concatenate((ran, -ran)) # antithetic variates
ran = ran - np.mean(ran) # correct first moment ran = ran / np.std(ran) # correct second moment S[t, :] = S[t - 1, :] * np.exp((r - vol ** 2 / 2) * dt + vol * ran * np.sqrt(dt))
h = np.maximum(K - S, 0) # inner values for put option V = np.zeros_like(h) # value matrix
V[-1] = h[-1] # Valuation by LSM for t in range(M - 1, 0, -1): rg = np.polyfit(S[t, :], V[t + 1, :] * df, 5) # regression C = np.polyval(rg, S[t, :]) # evaluation of regression V[t, :] = np.where(h[t, :] > C, h[t, :], V[t + 1, :] * df) # exercise decision/optimization V0 = np.sum(V[1, :] * df) / I # LSM estimator
print "S0 %4.1f|vol %4.2f|T %2.1f| Option Value %8.3f" % (S0, vol, T, V0)
return V0
Dari hasil penelitian sebelumnya (Hilpisch, 2013) telah ditemukan bahwa kecepatan pertumbuhan waktu penyelesaian penghitungan nilai opsi dengan BOPM akan berbanding lurus dengan penambahan jumlah prosesor yang ada dalam klaster komputer yang digunakan. Sebagai contoh, apabila kita ingin meningkatkan waktu
34
penghitungan menjadi 3 kali lipat, maka yang perlu dilakukan adalah menambah 3 buah prosesor atau komputer pada klaster yang ada.
Perubahan algoritma BOPM menjadi menggunakan algoritma Least Square Monte Carlo (Longstaff dan Schwartz, 2001) secara langsung berimbas pada perubahan implementasinya. Selanjutnya implementasi algoritma Least Square Monte Carlo dapat dilihat dengan lengkap pada Source Code 5.
4.5 Penghitungan Harga Opsi Dengan BOPM
Uji coba dari hasil implementasi algoritam BOPM yang telah dikonversi ke dalam bentuk yang dapat dijalankan secara paralel pada klaster yang telah dibangun pada penelitian ini adalah dengan melakukan penghitungan harga opsi untuk dalah satu saham yang terdaftar di BEI.
Dalam hal ini harga opsi yang akan dihitung adalah untuk saham PT. Bank Mandiri, Tbk (BMRI). Penghitungan harga opsi dilakukan baik untuk opsi jual maupun opsi beli dengan jatuh tempo atau waktu eksekusi mulai dari 1 hingga 6 bulan kedepan.
Pada saat dilakukan penghitungan atau proyeksi harga opsi saham BMRI beberapa parameter yang digunakan seperti halnya harga dasar aset, volatilitas, suku bunga bebas risiko dan yang lainnya didefinisikan sebagai berikut:
Nilai dasar aset = 10,100
Nilai exercise opsi = 9,500
Suku bunga bebas risiko = 6.5% (menggunakan suku bunga Bank Indonesia)
35
Selanjutnya hasil proyeksi kemungkinan pergerakan harga aset hingga 6 bulan kedepan dapat dilihat pada Gambar 7. Proyeksi kemungkinan pergerakan harga aset dihasilkan menggunakan penghitungan model BOPM yang dijalankan pada klaster Linux yang telah dibangun. Berdasarkan hasil yang diperoleh dapat diamati bahwa konversi algoritma BOPM ke dalam bentuk yang dapat dijalankan secara paralel pada klaster yang dibangun untuk proyeksi pergerakan nilai aset telah berjalan dengan baik.
Gambar 7. Diagram Lattice Pergerakan Harga Saham BMRI 6 Bulan
Namun demikian, tujuan utama dari penerapan model BOPM ke proses komputasi secara paralel utamanya adalah untuk mengatasi kendala yang timbul pada saat penghitungan kemungkinan nilai opsi dilakukan. Hal ini dikarenakan pada model BOPM teknik utama yang digunakan adalah dengan menghitung seluruh kemungkinan nilai opsi pada tiap waktu eksekusi berdasarkan kemungkinan
36
pergerakan nilai aset yang didasari oleh nilai-nilai dari parameter lainnya. Pendekatan ini menyebabkan jumlah penghitungan menjadi sangat banyak dan bertumbuh secara eksponensial sejalan dengan semakin panjangnya atau lamanya waktu eksekusi opsi tersebut. Digunakannya teknik komputasi paralel diharapkan dapat membantu untuk mengatasi kendala waktu penyelesaian penghitungan yang timbul akibat penelusuran kemungkinan nilai opsi pada model BOPM.
Hasil penghitungan nilai opsi beli dari saham BMRI untuk waktu eksekusi mulai dari 1 hingga 6 bulan kedepan ditampilkan pada Gambar 8 sampai dengan 13. Sedangkan hasil penghitungan nilai opsi jual dari saham BMRI untuk waktu eksekusi mulai dari 1 hingga 6 bulan kedepan ditampilkan pada Gambar 14 sampai dengan 19.
Perbedaan utama yang muncul pada diagram lattice yang dihasilkan untuk nilai opsi beli dan opsi jual adalah pada kemunculan nilai “0” yang hanya terjadi pada diagram lattice opsi jual. Pada diagram lattice, nilai “0” diartikan sebagai tidak adanya keuntungan yang dapat diperoleh investor atau dengan kata lain bukanlah keputusan yang bijak untuk membeli opsi saham BMRI dengan nilai 9,500 pada periode waktu dimana diagram lattice menunjukkan nilai “0”.
37
Gambar 8. Diagram Lattice Nilai Opsi Beli BMRI 1 Bulan
38
Gambar 10. Diagram Lattice Nilai Opsi Beli BMRI 3 Bulan
39
Gambar 12. Diagram Lattice Nilai Opsi Beli BMRI 5 Bulan