Hal 1 dari 4
Kombinasi Analisis Teknikal, Logika Fuzzy dan Algoritma
Genetika Prediksi Saham
Ir. H. Arry Andriana, © 2017
Independent Investor
Email: arry.andriana@gmail.com
Abstrak:-
Bagi banyak orang, pasar saham adalah bidang yang sangat menantang dan menarik. Dalam tulisan ini saya mencoba untuk memprediksi harga saham menggunakan logika fuzzy dan Algoritma Genetika. Biasanya memprediksi harga saham bisa menggunakan indikator analisis teknikal seperti RSI dan stochastic. Akan tetapi dalam artikel ini, penulis mencoba menggunakan logika fuzzy dari indikator analisis teknikal untuk memprediksi saham. Teknik evolusi digunakan untuk percobaan ini adalah algoritma genetika.
Fungsi keanggotaan dan fungsi rentang dari nilai indikator RSI dan stochastic, algoritma genetika mencari persamaan dan nilai optimal nilai ambang batas (threshold). Hasil perbandingan antara persamaan dengan nilai ambang batas tersebut menghasilkan dua buah sinyal beli dan jual. Untuk memudahkan perhitungan, saya berasumsi untuk melakukan transaksi “beli/buy” 5 lot (500 lembar) saham di harga pembukaan esok hari setelah sinyal dihasilkan, komisi transaksi ditambahkan. Saya mengiakan dua data harian saham perbankan Indonesia BMRI (Bank Mandiri) dan BBRI (Bank Rakyat Indonesia). Melalui kurva profit kumulatif yang dibuat dalam periode optimisasi dan di luar periode sampel (out of sample), hasil percobaan menunjukkan bahwa memprediksi harga saham dengan cara ini cukup menjanjikan..
Kat a kunci:
Pembelajaran mesin, analisis teknikal (technical analisys), pasar saham(stock Market), logika fuzzy(fuzzy logic), algoritma genetika (genetis algorithm).
1
Pendahuluan
Prediksi harga saham selalu menjadi tugas yang menantang. Pendekatan analisis teknikal biasanya menggunakan indikator teknikal. Ada ratusan indikator teknikal yang bisa digunakan. Tujuan penggunaan indikator tersebut adalah untuk memprediksi apakah harga mendatang akan naik atau turun.
Dalam tulisan ini saya mencoba untuk memprediksi harga saham bukan dengan indikator teknikal, tetapi menggunakan logika fuzzy terhadap indikator teknikal. Dengan logika fuzzy sebuah indikator akan dihitung fungsi
keanggotaannya (membership function) dan juga rentang nilainya (range). Fungsi keanggotaan fuzzy akan mengubah nilai indikator ke dalam kategori (misal rendah, sedang dan tinggi), sementara nilai rentang bernilai benar (1) jika nilai keanggotaan sesuai kategori dan salah (0) jika tidak sesuai kategori.
Selanjutnya algoritma genetika digunakan untuk mencari persamaan dan nilai ambang batas yang optimal untuk menghasilkan profit terbaik.
Data yang digunakan dibagi menjadi dua bagian, 80% data digunakan untuk optimisasi dan 20% untuk pengujian di luar sampel optimisasi (out of sample).
Logika Fuzzy:
Fuzzy set diperkenalkan oleh Zadeh (1965) sebagai alat untuk merepresentasikan dan memanipulasi data yang tidak tepat, namun tidak pasti/agak kabur. Logika fuzzy menghasilkan morfologi inferensi yang memungkinkan perkiraan kemampuan penalaran manusia diterapkan pada sistem berbasis pengetahuan. Teori logika fuzzy memberikan kekuatan matematis untuk menangkap ketidakpastian yang terkait dengan proses kognitif manusia, seperti pemikiran dan penalaran. Pendekatan konvensional terhadap representasi pengetahuan kurang memiliki sarana untuk merepresentasikan makna konsep fuzzy. Sebagai konsekuensinya, pendekatan berdasarkan logika orde pertama dan teori probabilitas klasik tidak menyediakan kerangka konseptual yang sesuai untuk menangani representasi pengetahuan umum, karena pengetahuan semacam itu sama-sama bersifat leksikal dan tidak masuk kategori.
Gambar 1.1 Fuzzy Set dengan 7 Keanggotaan
Hal 2 dari 4 indikator teknikal Stochastic dikategorikan sebagai bernilai
rendah, sedang atau tinggi digambarkan sebagai fungsi keanggotaan segi tiga, bel, Gaussian dan lain-lain. Berbeda dengan logika boolean yang memberikan batasan pasti untuk nilai rendah, sedang atau tinggi dalam rentang nilai yang pasti (misal 0-30 rendah, 31-70 sedang dan 71-100 tinggi). Sementara dalam fuzzy set, sebuah nilai misal 40 bisa dikategorikan bernilai rendah dengan kemungkinan 20%, sedang 80%, tinggi 0%. Selain itu fuzzy set tidak terbatas pada 3 kategori saja, kita bisa membuat sebuah fuzzy set memiliki lebih dari 3. Gambar 1 menunjukkan sebuah fuzzy set dengan 7 kategori keanggotaan dengan bentuk triangular (segi tiga).
Secara umum, fungsi FuzzyMF dan FuzzyMR, dalam bentuk:
FuzzyMF(m,Indikator,n) di mana m menunjukkan jumlah keanggotaan dalam fuzzy set dan n nomor keanggotaan. FuzzyMR(x,Indikator,y) untuk menunjukkan apak indikator benar/tidak berada dalam fuzzy set dengan jumlah keanggotaan x dan nomor keanggotaan y.
Gambar 1.2 Contoh FuzzyMR
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.3 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 nilai fitness individu i dan N adalah ukuran populasi.
2
Pengaturan
Eksperimental
Dataset yang digunakan:
Dataset yang digunakan untuk percobaan ini terdiri dari data optimisasi (80% dari rentang data) dan data di luar sample untuk pengujian (80% dari rentang data). Dua indikator teknikal Stochastic%K(Close,10) dan RSI(Close,14) digunakan sebagai input yang akan diubah menjadi fuzzy set. Fungsi FuzzyMF adalah fungsi keanggotaan yang mengubah nilai indikator Stochastic dan RSI ke dalam keanggotaan fuzzy. Sementara fungsi FuzzyMR mengubah nilai Fuzzy MF menjadi nilai boolean 0 dan 1 jika sebuah fuzzy set sesuai dengan nilai crispnya.
Indikator teknikal dihitung menggunakan Add-in TALIB di excel, sementara pencarian nilai parameter menggunakan Add-in Algoritma Genetika.
Setting Algoritma Genetika:
Algoritma genetika digunakan untuk mencari nilai optimal nilai parameter indikator, nilai keanggotaan fuzzy set dan fuzzy range dalam sebuah strategi trading agar profit transaksi saham menguntungkan.
Strategi trading dibentuk dari nilai FuzzyMR sebagai input dibandingkan dengan nilai pembukaan saham esok hari. Input sebuah strategi trading bisa dibuat dalam bentuk, misal:
Buy jika OR(FuzzyMR(7,Stochastic(Close,10),3), FuzzyMR(5,(RSI(Close,14),2) bernilai 1.
Exit Buy jika OR(FuzzyMR(5,Stochastic(Close, 10),2), FuzzyMR(5,(RSI(Close,14),3) bernilai 1.
Atau dalam bentuk:
Hal 3 dari 4 Sell jika FuzzyMR(5,Stochastic(Close,10),3)/
(FuzzyMR(5,(RSI(Close,14),2)+FuzzyMR(3,Stochastic(Clos e,10),2)) < Nilai batas
Algoritma genetika akan mencari nilai parameter keanggotaan fuzzy, nilai parameter indikator dan nilai batas berdasarkan rentang nilai kromosom yang diberikan.
Profit kumulatif dihitung berdasarkan jumlah saham (500 lembar), komisi Buy 0.18% dan komisi jual 0.29% (semuanya bernilai tetap dan tidak diubah oleh algoritma genetika) dan harga saham pembukaan esok hari (Open). Kurva profit kumulatif dihitung dan ditampilkan agar bisa mengetahui performa strategi trading dalam rentang optimisasi dan di luar sampel (OOS).
Sebuah strategi trading dikatakan baik jika dia bisa memberikan profit kumulatif yang naik sejalan dengan waktu baik pada rentang optimisasi dan juga rentang di luar sampel.
3
Hasil
Tabel 1 menunjukkan rentang data optimisasi dan rentang data di luar sample dengan algoritma genetika. Gambar 1 menunjukkan tampilan Excel untuk saham BBRI. Gambar 2 menunjukkan kurva profit kumulatif saham BBRI, Gambar 3 menunjukkan Excel untuk saham BMRI, Gambar 4 menunjukkan kurva profit kumulatif saham BMRI.
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.
Company Jumlah Data Optimisasi
Tanggal Jumlah Data Luar Sampel
Tanggal
BMRI 2428 18.1.10 - 15.11.15 765 16.11.15 -18.12.16 BBRI 2500 3.1.05 – 20.05.14 860 22.05.14 – 5.5.17
Tabel 1 Jumlah Rentang Data Optimisasi dan Di luar Sampel
Gambar 3.1Tampilan Excel Untuk Data Saham Bank Rakyat Indonesia (BBRI)
Hal 4 dari 4
Gambar 3.3 Tampilan Excel Untuk Data Saham Bank Mandiri (BMRI)
Gambar 3.4 Tampilan Sistem Equity Fuzzy GA Stategi Trading untuk Saham BBRI
4
Kesimpulan
Metode baru untuk memprediksi harga saham dengan menggunakan kombinasi analisis teknikal, logika fuzzy dan algoritma genetika tampak menjanjikan. Terlihat bahwa kurva Equity sistem menunjukkan peningkatan yang baik di kedua rentang data optimisasi dan di luar sampel. Sehingga kombinasi ini mampu berperforma baik untuk data di luar apel optimisasi. Diharapkan metode ini masih memberikan keuntungan pada data aktual yang dan datang.
REFERENSI:
[1] Abdüsselam Altunkaynak, Sediment load prediction by genetic algorithms Advances in Engineering Software, Volume 40, Issue 9, September 2009, Pages 928–934 Volume: 13, Issue: 3, Publisher: Citeseer, Pages: 255-260
[2] Achelis, S. B. (2000). Technical Analysis from A to Z (2nd ed.). New York, NY: McGraw-Hill.
[3] 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.
[4] Holland, J. Natural and Artificial Systems. Ann Arbor, Mich.: University of Michigan Press, 1975.
[5] Doolittle, D.P. Population Genetics: Basic Principles. Berlin: Springer-Verlag, 1986.
[6] Fogel, D.B. An Evolutionary Approach to the Traveling Salesman Problem. Biol.Cybern., 1988, 60, 139-144. [7] Goldberg, D.E. Genetic Algorithms in Search,
Optimization, and Machine Learning. Reading, Mass: Addison-Wesley, 1989.
[8] Brock, W. L., J., & LeBaron, B. (1992). Simple technical trading rules and the stochastic properties of stock. Journal of finance, 47, 1731 -1764.
[9] Chen, P. C., & Liu, C. H. (2008). A TSK type fuzzy based system for stock price prediction. Expert Systems with Application, 34(1), 135–144.
[10]Andriana A, Analisis Teknikal Menggunakan Logika Fuzzy, 2017
[11]Andriana A, Analisis Teknikal Menggunakan TALIB, 2017 [12]Andriana A, GeneHunter, Aplikasi Algoritma Genetika,