Kombinasi Analisis Teknikal Logika Fuzzy

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..
Kata kunci:
Pembelajaran mesin, analisis teknikal (technical analisys),
pasar saham(stock Market), logika fuzzy(fuzzy logic),
algoritma genetika (genetis algorithm).

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.

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

Gambar 1.1 Fuzzy Set dengan 7 Keanggotaan

Konsep fuzzy set memberikan gambaran tentang
fungsi keanggotaan sebuah subset fuzzy. Misalkan sebuah nilai
Hal 1 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.

FuzzyMR(7,x,2)
1.5

Operator digunakan untuk percobaan ini adalah duatitik 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  

1
0.5
0
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85
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.

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:
Buy
jika
FuzzyMR(5,Stochastic(Close,10),3)/
(FuzzyMR(5,(RSI(Close,14),2)+FuzzyMR(3,Stochastic(Clos
e,10),2)) ≥ Nilai batas

Hal 2 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

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.

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.
Tanggal
Jumlah Data Luar
Tanggal
Company
Jumlah Data
Optimisasi
Sampel
BMRI
2428
18.1.10 - 15.11.15
765
16.11.15 -18.12.16
3.1.05 – 20.05.14
22.05.14 – 5.5.17
BBRI
2500
860
Tabel 1 Jumlah Rentang Data Optimisasi dan Di luar Sampel

Gambar 3.1Tampilan Excel Untuk Data Saham Bank Rakyat Indonesia (BBRI)

Gambar 3.2 Tampilan Sistem Equity Fuzzy GA Stategi Trading untuk Saham BBRI

Hal 3 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,
Independent Publishing, 2017

Hal 4 dari 4

Dokumen yang terkait

Dokumen baru

Kombinasi Analisis Teknikal Logika Fuzzy