Prediksi Harga Saham Dengan Algoritma Genetika
Ir. H. Arry AndrianaIndependent Investor
Email: [email protected]
Abstrak:-
Bagi banyak orang, pasar saham adalah bidang yang sangat menantang dan menarik. Dalam tulisan ini saya mencoba untuk memprediksi apakah harga saham akan naik pada hari berikutnya. Saya memprediksi harga saham dari beberapa perusahaan yang berbeda secara individual. Untuk memprediksi digunakan perbandingan antara harga High, Low, Close dari beberapa saham yang digunakan yang membantu kita untuk menemukan apakah harga akan naik atau turun. Teknik evolusi digunakan untuk percobaan ini adalah algoritma genetika. Harga High, Low dan Close di hari tertentu akan dibandingkan dengan nilai mereka sebelumnya (lebih kecil sama dengan “”<=” atau lebih besar “>”). Hasil perbandingan tersebut menghasilkan dua buah sinyal “0” menyatakan harga Close esok hari tidak naik dan “1” harga Close akan naik. Jika sinyal bernilai 1 maka harga Close esok akan naik. Untuk memudahkan perhitungan, saya berasumsi untuk melakukan transaksi “beli/buy” 10 lot (10000 lembar) saham dalam satu hari (intraday) pada harga penutupan kemarin dan melakukan transaksi “jual” pada harga Close hari ini dan tanpa ada komisi transaski. Melalui kurva profit kumulatif yang dibuat dalam periode optimisasi dan di luar periode sampel (out of sample), hasil percobaan menunjukkan bahwa cara baru ini memprediksi harga saham cukup menjanjikan..
Kata kunci:
Pembelajaran mesin, pasar saham, algoritma genetika.
I. Pendahuluan
Prediksi harga saham selalu menjadi tugas yang menantang. Telah diamati bahwa harga saham dari perusahaan mana pun tidak selalu tergantung pada situasi ekonomi suatu negara. Hal ini tidak terkait langsung dengan perkembangan ekonomi negara atau daerah tertentu. Dengan demikian prediksi harga saham telah menjadi sulit bahkan lebih sulit dari sebelumnya.
Harga harian saham ini dipengaruhi karena berbagai alasan seperti terkait berita perusahaan, peristiwa politik, bencana alam, dan lain-lain. Pengolahan data yang cepat dari peristiwa tersebut dengan bantuan teknologi dan sistem komunikasi yang meningkat telah menyebabkan harga saham berfluktuasi sangat cepat. Dengan demikian banyak bank, lembaga keuangan, investor skala besar dan pialang saham harus
membeli dan menjual saham dalam waktu sesingkat mungkin. Jadi rentang waktu bahkan beberapa jam antara pembelian dan penjualan tidak biasa.
Untuk menginvestasikan uang di pasar saham kita perlu memiliki ide apakah harga saham akan meningkatkan atau menurunkan pada hari berikutnya. Jadi dalam proyek ini saya mencoba untuk memprediksi apakah harga tertinggi saham akan menambah atau mengurangi pada hari berikutnya. Dalam tulisan ini saya mencoba untuk memprediksi harga saham dari lima perusahaan yang berbeda. Untuk setiap perusahaan saya memprediksi apakah harga Close naik atau turun hari berikutnya. Jadi ini merupakan masalah klasifikasi dengan hanya dua kelas yang terlibat. Dengan demikian kita telah mencoba untuk membuat masalah sesederhana mungkin. Sinyal dibuat berdasarkan perbandingan antara harga High, Low, atau Close di satu hari dengan harga High, Low, atau Close di beberapa hari sebelumnya. Saya melakukan pembatasan bahwa periode hari paling lama adalah 11 hari. Jadi pada dasarnya, dengan algoritma genetika, kita berusaha mendefinisikan aturan/rule yang menghasilkan profit kumulatif terbaik.
Secara sederhana, hasil prediksi akan berupa kalimat di bawah ini:
Jika Low hari ini <= High 3 hari sebelumnya dan Close 3 hari sebelumnya > Low 11 hari sebelumnya maka Close esok hari diperkirakan naik
Selanjutnya kita melakukan tarnsaksi pembelian esok hari dan menutupnya sebelum penutupan pasar saham.
Keuntungan/kerugian harian di dasarkan pada perbandingan harga Close hari sebelumnya dengan harga Close hari ini.
Beberapa peneliti GA sebelumnya telah menggunakan algoritma genetika untuk memprediksi pergerakan harga saham. Kyoung Jae Kim dan Won Boo Lee [3] mengembangkan metode transformasi fitur menggunakan algoritma genetika. Pendekatan ini mengurangi dimensi ruang fitur dan menghilangkan faktor-faktor yang tidak relevan terlibat dalam prediksi harga saham. Pendekatan ini dilakukan lebih baik bila dibandingkan dengan transformasi linear dan transformasi fuzzification. Transformasi berdasarkan GA ini tampak menjanjikan jika dibandingkan dengan transformasi fitur lainnya. Penelitian lain yang dilakukan pada algoritma genetika (GAs) oleh Kyoung Jae Kim [2] lagi untuk memprediksi pasar saham adalah dengan menggunakan GA tidak hanya untuk meningkatkan algoritma pembelajaran, tetapi juga untuk mengurangi kompleksitas ruang fitur. Dengan demikian pendekatan ini mengurangi dimensi dari ruang fitur dan meningkatkan generalisasi classifier. Juga Ajith Abraham [4] mengembangkan sistem hybrid cerdas, yang terdiri dari
jaringan saraf, sistem inferensi fuzzy, penalaran perkiraan dan teknik optimasi gratis derivatif. sistem yang juga memberikan hasil yang menjanjikan tetapi tidak dibandingkan dengan sistem cerdas lain yang ada.
Frank Cross [5] mencoba untuk menemukan hubungan yang bisa ada antara perubahan harga saham pada hari Senin dan Jumat di pasar saham. Ia telah mengamati bahwa harga pada Jumat telah meningkat lebih sering daripada hari lain. Ini juga telah mengamati bahwa pada hari Senin harga telah setidaknya sering meningkat dibanding hari-hari lainnya.
Boris Podobnik [6] mencoba untuk menemukan korelasi silang antara perubahan volume dan perubahan harga. Untuk harga saham berubah, dibutuhkan volume untuk memindahkan harga saham. Mereka menemukan dua hasil empiris utama. Salah satunya adalah kuasa hukum korelasi silang antara perubahan harga logaritma dan perubahan volume logaritmik dan yang lainnya adalah bahwa perubahan volume logaritmik mengikuti hukum kubik sama dengan perubahan harga logaritmik.
Banyak teknik pembelajaran mesin yang digunakan untuk memprediksi nilai target yang berbeda. Ini bisa lebih untuk memprediksi harga saham. Algoritma genetika telah digunakan untuk prediksi dan ekstraksi fitur penting. Banyak analisis yang telah dilakukan pada apa faktor-faktor yang mempengaruhi harga saham dan pasar keuangan. Ada berbagai cara dengan mana harga saham dapat diprediksi. Salah satu cara adalah untuk mengurangi kompleksitas dengan mengekstraksi fitur terbaik atau dengan pilihan fitur. Pendekatan ini akan membantu saya memprediksi harga saham dengan akurasi yang lebih baik sebagai kompleksitas mengurangi.
Teknik algortima genetika yang evolusioner yang digunakan untuk memprediksi harga saham diberikan di bawah ini:
Algoritma genetika:
Sebuah algoritma genetika (GA) adalah teknik pencarian yang digunakan dalam komputasi untuk mencari solusi yang tepat atau perkiraan untuk mencari dan masalah optimasi. Algoritma genetik adalah kelas khusus dari perhitungan evolusi yang menggunakan teknik terinspirasi oleh biologi evolusioner seperti sebagai warisan, mutasi, seleksi, dan crossover. Sebuah algoritma genetika menemukan solusi potensial untuk masalah tertentu sebagai kromosom sederhana seperti struktur data sehingga dapat menjaga informasi penting. Pelaksanaannya dimulai dengan pemilihan populasi kromosom, yang merupakan seperangkat solusi untuk masalah yang bisa terjadi untuk skenario tertentu. Satu mengevaluasi fitness dan kemudian melakukan reproduksi untuk mendapatkan solusi yang lebih baik sehubungan dengan masalah sasaran. Kromosom, yang merupakan solusi yang lebih baik, diberi lebih banyak kesempatan untuk reproduksi daripada mereka yang mewakili solusi yang lebih miskin. Proses ini berlanjut selama beberapa generasi setelah kita mendapatkan solusi yang optimal.
Operator digunakan untuk percobaan ini adalah dua-titik crossover dan mutasi merayap. Crossover adalah operator genetika digunakan untuk beragam struktur gen kromosom mana informasi gen dipertukarkan antara orang tua yang dipilih dengan memilih dua poin dalam struktur gen dari setiap orang tua.
Gambar 1. Dua titik persilangan
Mutasi merayap (creep mutation) digunakan dengan menambahkan nilai kecil untuk setiap gen dengan probabilitas p. Dalam metode ini fitness ditugaskan untuk setiap individu digunakan untuk proses seleksi. fitness ini digunakan untuk mengaitkan pilihan probabilitas dengan masing-masing
individu. Hal ini dapat diberikan sebagai berikut:
Di mana fi fitness individu i dan N adalah ukuran populasi.
II Pengaturan Eksperimental
Dataset yang digunakan:
Dataset yang digunakan untuk percobaan ini terdiri dari data optimisasi selama sepuluh tahun (sekitar 2500 hari) dan data di luar sample untuk pengujian sekitar enam tahun terakhir (sekitar 800 hari). Sebanyak tiga atribut untuk setiap perusahaan yang digunakan untuk prediksi. Yaitu High (harga tertinggi), Low (harga terendah), dan Close (harga penutupan). Lima perusahaan yang digunakan untuk percobaan ini adalah BBRI (Bank Rakyat Indonesia), TLKM (Telkom Indonesia), BMRI (Bank Mandiri) dan BBCA (Bank BCA) dan AKRA (AKR Corporindo).
Dua dataset yang digunakan untuk percobaan. Salah satu dataset training digunakan untuk melakukan optimisasi dari setiap atribut yang digunakan. Saya menggunakan dataset pengujian lain sehingga kita bisa memverifikasi hasilnya atau disebut juga data di luar sampel optimisasi (out of sample). Dengan demikian kita dapat memeriksa apakah over-fit terjadi atau tidak. Hasil yang diperoleh benar-benar menunjukkan bahwa tidak ada over-fit yang terjadi, dan aturan/rule yang dibuat memberikan keuntungan pada periode optimisasi dan masih memberikan keuntungan di masa mendatang (data di luar sample).
Pengaturan parameter yang berbeda untuk setiap algoritma diberikan di bawah ini:
Pengaturan parameter untuk algoritma genetik adalah sebagai berikut:
No. Parameter Nilai 1 Ukuran Populasi: 50 2 Panjang Kromosom 32 bit 3 Laju Crossover: 0.9 4 Laju Mutasi: 0.01 5
Generasi Gap (Loncatan
generasi): 0.98
6 Kriteria Penghenti: 100 generasi tanpa perbaikan Chart 1: Pengaturan parameter untuk algoritma
genetika
III. Hasil
Tabel 1 menunjukkan rentang data dan persen keberhasilan memprediksi secara benardalam rentang data optimisasi dan rentang data di luar sample dengan algoritma genetika. Gambar 1 menunjukkan tampilan umum pada layar Excel untuk saham BMRI yang dibuat sejenis untuk saham lainnya. Gambar 2, 3, 4, 5 menunjukkan kurva profit kumulatif dari nilai fitness yang dievaluasi untuk masing-masing perusahaan.
Perlunya rentang data di luar sampel optimisasi adalah untuk menunjukkan kemungkinan terjadinya over-fit pada saat optimisasi. Jika terjadi over-fit di rentang optimisasi maka profit di luar sampel akan terlihat merugi. Gambar 6 menunjukkan kondisi over-fit, di mana profit kumulatif menunjukkan nilai tertinggi dibanding hasil pada Gambar 2, namun profit kumulatif saat data di luar sampel menunjukkan hasil yang tidak begitu baik.
Hal ini dapat dilihat dari Tabel 1 bahwa kita mampu untuk memprediksi harga saham dengan cukup akurat (>= 70%). Akurasi tertinggi diperoleh dengan menggunakan algoritma genetika adalah 82% pada rentang data optimisasi dan 79% pada rentang data pengujian di luar sampel.
Company Jumlah Data
Optimisasi
Jumlah Data Luar Sample % Prediksi Benar Optimisasi % Prediksi Benar di Luar Sample BMRI 2500 936 73% 70% BBRI 2500 860 79% 76% BBCA 2500 672 82% 76% TLKM 2500 528 75% 79% AKRA 1800 539 81% 78%
Table 1: Jumlah Rentang Data Optimisasi dan Di luar Sample
Gb 2 Tampilan Profit Kumulatif Bank Mandiri
Gb 3 Tampilan Profit Kumulatif BCA
Gb 4 Tampilan Profit Kumulatif BRI
Gb 5 Tampilan Profit Kumulatif TLKM
Gb 6 Tampilan Profit Kumulatif TLKM
Gb 6 Tampilan Profit Kumulatif BMRI saat Over-Fit
IV. Kesimpulan dan Penelitian
Lanjutan
Metode baru untuk memprediksi harga saham dengan menggunakan algoritma genetika tampak menjanjikan. Ditemukan bahwa algoritma dan evolusi genetik strategi telah dilakukan hampir merata. Akurasi terbaik ditemukan dengan menggunakan algoritma genetika adalah 82% pada rentang data optimisasi dan 79% pada rentang data pengujian di luar sampel.
Saya menggunakan dua dataset yang berbeda untuk memprediksi harga saham. Yang pertama bertindak sebagai set pelatihan/optimisasi dan dataset lain untuk pengujian di luar sampel optimisasi. Pembagian data ini diperlukan agar kita dapat menguji apakah over-fit terjadi atau tidak. Melalui kurva Profit Kumulatif di kedua rentang data kita bisa mengetahui terjadinya over-fit atau tidak.
Ada banyak aspek yang kita dapat mempertimbangkan di masa depan. Kita perlu untuk memasukkan lebih banyak atribut untuk memprediksi harga saham. Tiga atribut yang digunakan sangat mirip satu sama lain maka kita perlu lebih banyak atribut, yang tidak serupa tetapi mempengaruhi pergerakan harga.
Metode ini dapat dibandingkan dengan algoritma populer lainnya digunakan untuk prediksi harga saham seperti jaringan saraf dan mesin dukungan vektor.
Pekerjaan Lanjutan:-
Algoritma evolusioner digunakan untuk percobaan ini terlihat sangat menjanjikan. Oleh karena itu, penelitian lebih lanjut diperlukan dalam bidang ini. Kita bahkan dapat mencoba untuk menggunakan atribut perusahaan lain untuk memprediksi harga untuk memeriksa apakah mereka membantu dalam memprediksi harga. Jadi kita hanya bisa menggunakan data tersebut perusahaan, yang akan membantu dalam memprediksi data dalam cara yang lebih baik. Ada kemungkinan besar bahwa akurasi prediksi akan di atas 80% jika kita menggunakan data perusahaan lain juga bukan menggunakan hanya data individu perusahaan.
Karena hasil yang diperoleh di atas 70% dalam setiap kasus maka kita dapat menguji kinerja pada data real time juga. Ini akan memberi kita gambaran apakah hanya data historis cukup baik untuk memprediksi data atau tidak. Jika tidak, maka kita perlu mencari faktor-faktor lain selain data historis yang mempengaruhi harga. Informasi ini juga dapat diberikan kepada algoritma kita digunakan untuk percobaan ini. Ada kemungkinan besar bahwa akurasi akan meningkat.
Perusahaan yang digunakan dalam penelitian ini adalah perusahaan-perusahaan besar. Kita bisa memeriksa kinerja algoritma mereka pada perusahaan ukuran kecil juga.
REFERENSI:
[1] Abdüsselam Altunkaynak, Sediment load prediction by genetic algorithms Advances in Engineering Software, Volume 40, Issue 9, September 2009, Pages 928–934 [2] Kyoung-jae Kim, Ingoo Han. Genetic algorithms approach
to feature discretization in artificial neural networks for the prediction of stock price index. Expert systems with Applications, 2000.
[3] Kyoung-jae Kim, Won Boo Lee. Stock market prediction using artificial neural networks with optimal feature
transformation. Neural Computing and Applications (2004),
Volume: 13, Issue: 3, Publisher: Citeseer, Pages: 255-260 [4] Ajith Abraham, Baikunth Nath and P. K. Mahanti. Hybrid
intelligent systems for stock market analysis. Proceedings of the International Conference on Computational Science Part 2, Pages 337-345.
[5] Frank Cross. The behavior of stock prices on Fridays and Mondays. Financial Analyst Journal Vol. 29 No. 6, pages 67-69.
[6] Boris Podobnik, Davor Horvatic, Alexander M. Peterson and Eugene Stanley. Cross-correlations between volume change and price change. Proceedings of the National Academy of Sciences of the United States of America, Vol. 106, No. 52, pp. 22079-22084, December 2009