Technical Analysis Dengan Excel Mengguna
Technical Analysis Dengan Excel Mengguna
TALIB
©Arry Andriana Ir. H, arry.andriana@gmail.com, Desember 2016 - February 2017
Tujuan:
Pernyataan Sanggahan:
Perdagangan pasar finansial (saham, forex, index, reksadana, bond dan lain-lain) baik melalui transaksi
tunai, non-tunai, online atau offline, berjangka atau options, memiliki potensi keuntungan yang besar,
tetapi juga memiliki potensi risiko yang besar. Anda harus sadar akan risiko dan bersedia untuk
menerima keuntungan dan resiko untuk berinvestasi di pasar finansial. Jangan melakukan transaksi
dengan uang jika Anda tidak sanggup mengalami kerugian. Artikel ini dibuat untuk menjadi bahan
pengetahuan semata dan bukan merupakan ajakan atau penawaran untuk membeli/ menjual produk
finansial. Tidak ada representasi yang dibuat bahwa setiap account akan atau mungkin untuk
memperoleh keuntungan atau kerugian serupa dengan apa yang dibahas dalam artikel ini. Kinerja masa
lalu dari setiap sistem perdagangan atau metodologi tidak selalu menunjukkan hasil di masa
mendatang.
ATURAN CFTC 4.41 - HIPOTESIS ATAU SIMULASI HASIL KINERJA MEMILIKI BATASAN
TERTENTU. TIDAK SEPERTI REKAMAN KINERJA SEBENARNYA, HASIL SIMULASI
TIDAK MENYATAKAN TRANSASKI PERDAGANGAN SEBENARNYA. JUGA, KARENA
PERDAGANGAN BELUM DILAKUKAN, HASILNYA MUNGKIN MEMILIKI DAMPAK
KOMPENSASI YANG KURANG-ATAU-LEBIH, JIKA ADA, FAKTOR TERTENTU PADA
PASAR, SEPERTI KEKURANGAN LIKUIDITAS. PROGRAM SIMULASI TRADING UMUM
JUGA TUNDUK PADA FAKTA BAHWA MEREKA DIRANCANG DENGAN PERKIRAAN
KEUNTUNGAN. NTIDAK ADA REPRESENTASI YANG DIBUAT BAHWA ACCOUNT
APAPUN AKAN ATAU MUNGKIN UNTUK MENCAPAI KEUNTUNGAN ATAU
KERUGIAN SERUPA DENGAN YANG DITAMPILKAN. Semua perdagangan, pola, grafik,
sistem, dll, yang dibahas dalam artikel dan produk bahasan adalah untuk tujuan ilustrasi saja dan tidak
dapat ditafsirkan sebagai rekomendasi nasihat yang khusus. Semua ide-ide dan materi yang
disampaikan sepenuhnya dari penulis dan tidak mencerminkan pandangan dari penerbit atau lembaga
lainnya.
1|Hal
1 Mengenal TALIB
1.1 Pendahuluan
TA-Lib (Technical Analysis Library) adalah sebuah perpustakaan software sumber terbuka (open-
source) bagi indikator analisis teknikal. Perpustakaan menyediakan sekitar 125 fungsi seperti ADX,
RSI, MACD, Stochastics, Bollinger Bands, pengenalan pola candlestick. TA-Lib dapat digunakan
kembali oleh pengembang software trading agar bekerja dengan Excel, NET, Java, Perl, Python, PHP,
C atau C ++. Hal ini didistribusikan di bawah lisensi BSD dan dapat secara bebas dibundel dengan
aplikasi sumber terbuka dan tertutup.
Melalui artikel ini kita akan menggali bagaimana bisa menggunakan TA-Lib dalam Excel untuk
menerapkan Analisis Teknikal (TA, technical analysis) terhadap data historis pasar. Dengan
menggunakan TA-Lib pengguna tidak perlu bersusah payah mengetahui isi formula sebuah indicator
dan menuliskan formua tersebut di Excel. Pengguna hanya perlu mengetahui bagaimana sebuah
indicator TA-Lib dipanggil dalam sebuah sel dan disalin ke beberapa sel dalam bentuk Array.
Ada 10 kelompok indicator yang didukung TA-Lib dan berisi 125 fungsi indicator. Kita akan membuat
sebuah spreadsheet Excel di mana kita menggunakan formula dari beberapa indikator analisisi teknikal
yang umum seperti: Simple Moving Average, Bollinger Bands, Exponential Moving Average, MACD,
RSI dan indicator lainnya. Di sini akan dijelaskan cara penulisan formula untuk memanggil TA-Lib.
Perlu diketahui bahwa TA-Lib ini dibuat sekitar tahun 2007, dengan demikian akan kompatibel dengan
Excel 2007 atau versi yang terakhir. Penulis mencoba memanggil talib.xll ke dalam versi windows95
ternyata tidak bisa digunakan.
Selanjutnya di dalam folder ta-lib anda memiliki subfolder-subfolder seperti diperlihatkan pada gambar
berikut:
2|Hal
Gambar 1-1 Isi Subfolder c:\ta-lib hasil extract file ta-lib-0.4.0-msvc.zip
1. Pemgrograman Bahasa C, di mana semua file sumber kode C ada di dalam folder c:\ta-lib\c
2. Pemgrograman Bahasa Dotnet, di mana semua file sumber kode C ada di dalam folder c:\ta-
lib\dotnet.
3. Melalui add-in Excel yang akan dijelaskan lebih rinci pada bab berikutnya.
4. Pemrograman Bahasa Java
5. Pemrograman untuk membangun SWIG wrapper. SWIG adalah tool pengembangan skrip
software interface dengan program C dan C++. Ia mendukung sejumlah Bahasa pemrograman
termasuk Guile, Java, Mzscheme, Ocaml, Perl, Pike, PHP, Python, Ruby, and Tcl. Informasi
lebih lanjut bisa ditemukan pada http://www.swig.org.
Kita bisa menggunakan TA-Lib dalam excel sebagai Add-Ins, dalam hal ini TA-Lib sudah
menyediakan dua buah file ta-lib.xll dan ta-lib-reverse.xll. Semua fungsi TA akan menjadi terlihat
dalam "Function Wizard".
Perbedaan penggunaan Ta-lib.xll dan Ta-lib-reverse.xll adalah berbeda dari segi urutan data array
inputnya:
3|Hal
1. Melalui add-in Excel dengan memanggil ta-lib.xll atau ta-lib-reverse.xll ke dalam Excel.
Gunakan menu File, Options, Add-Ins, lalu tekan tombol Go.
2. Kemudian kotak dialog Add-Ins akan muncul seperti gambar di bawah ini.
3. Klik tombol Browse, lalu arahkan layar dialog ke lokasi dimana file Ta-lib.xll dan Ta-lib-
reverse.xll terletak, misal terletak di folder C:\ta-lib\Excel\Ta-lib.xll, lalu tekan tombol OK.
4|Hal
Anda bisa memasang satu xll dan mengulang kembali file berikutnya dengan menekan tombol
Browse.
4. Selanjutnya pastikan anda pilih kedua add-ins tersebut seperti gambar berikut.
5|Hal
1.2 Indikator Tercakup TA-Lib
Semua Indikator dan Fungsi TALIB yang didukung termasuk dalam kelompok indikator berikut:
Overlap Studies
Momentum Indicators
Volume Indicators
Volatility Indicators
Price Transform
Cycle Indicators
Pattern Recognition
Statistic Functions
Math Transform
Math Operators
MA Moving average
6|Hal
TEMA Triple Exponential Moving Average
AROON Aroon
MOM Momentum
STOCH Stochastic
WILLR Williams' %R
CDLBELTHOLD Belt-hold
CDLBREAKAWAY Breakaway
CDLCOUNTERATTACK Counterattack
CDLHAMMER Hammer
CDLKICKING Kicking
10 | H a l
CDLLONGLINE Long Line Candle
CDLMARUBOZU Marubozu
11 | H a l
1.2.8 Statistic Functions
BETA Beta
VAR Variance
SUM Summation
13 | H a l
1.3 File
1.3.1 File Contoh Excel
File Excel pertama, TA-in-Excel-using-TALIB.xlsx berisi formula untuk perhitungan Simple Moving
Average, Weighted Moving Average, Exponential Moving Average, Bollinger Bands, dan Exponential
Moving Average seperti dijelaskan dalam artikel ini.
Sebagai contoh, sebuah file berisi data saham BMRI, meliputi Juli 14, 2003 – Des 16, 2016. Kita
memiliki 3454 data dalam file ini. File berisi kolom-kolom tanggal, harga OHLC, Volume, dan
Adjacent Close. Secara default, file bisa disimpan dalam bentuk csv (terpisah koma, tab atau spasi),
akan tetapi agar formula dan hasil perhitungan bisa digunakan ulang untuk data lainnya, maka file bisa
disimpan sebagai file format Excel (.xls, .xlsx).
Catatan: file telah dibuat menggunakan add-in yahoo data downloader (termasuk dalam paket Buku
“Analisis Saham Menggunakan Metatrader”).
14 | H a l
1.4 Cara Memanggil Fungsi TA-Lib di Excel
Pertama panggil menu Formula, kemudian tekan ikon Insert Function.Kemudian pilih drop-down list
pada Select Category, misal untuk indicator kategori overlap studies pilih TA-Lib Overlap Studies.
Untuk memanggil fungsi TA-Lib, kita harus memiliki baris data yang menjadi basis perhitungan.
Misalkan kita akan menghitung nilai indicator EMA(Close,10), maka kita harus memiliki baris data
untuk nilai Close.
Nilai Close kita sorot dari baris paling atas hingga paling bawah kolom harga Close. Selain itu karena
yang dimasukkan adalah data dalam bentuk Array, maka untuk memasukkan formula array kita harus
menekan tombol keyboard Ctrl-Shift-Enter, Anda akan menemukan bahwa memanggil fungsi TA-
Lib sangat mudah. Berikut adalah contoh:
Formula ini akan menghitung eksponensial moving average (EMA) 13 periode sel A1 untuk A200,
dimana A1:A200 adalah baris data nilai Close di kolom A.
Ada beberapa formula Moving Average antara lain: Simple Moving Average (SMA), Weighted Moving
Average (WMA), dan Exponential Moving Average (EMA). SMA secara sederhana merupakan nilai
rata-rata dari harga sepanjang jumlah bar N terakhir. Sementara WMA menggunakan nilai N sebagai
faktor pengali dan EMA menggunakan faktor pengali dan perubahan perhitungan untuk rentang
tertentu. Marilah kita gunakan harga penutupan (Close) untuk menghitung nilai-nilai MA dari file data
sampel kita. Lihat Bab 6.6.1 Simple Moving Average Tunggal.
15 | H a l
Kita akan menghitung sebuah SMA, WMA dan EMA 20 hari dari kolom harga close (Kolom E). Baris
pertama berisi header kolom untuk nama-nama kolom data seperti Tanggal, Open, High, Low, Close,
Volume, dan seterusnya. Masing-masing akan di tempatkan pada kolom H, I dan J dengan header
kolom “SMA-20”, “WMA-20” dan “EMA-20”. Dengan demikian perhitungan formula bisa dimulai
dari baris ke 2.
1.4.1.1 SMA
Untuk perhitungan SMA-20 di kolom H, gunakan formula berikut pada sel H21 (karena baris 21
adalah baris pertama yang memiliki cukup data untuk menghitung SMA 20-hari) dengan memanggil
fungsi TA-Lib (Overlap Studies), TA_SMA.
16 | H a l
Masukkan deret data InReal sebagai baris data nilai Close di kolom E, dalam hal ini diisi E2:E3454,
dan Time period 20, lalu tekan tombol OK.
Selanjutnya anda perlu menyorot sel H2 hingga H3454, dengan menekan tombol shift dan menggeser
kursor ke baris terbawah kolom H. Lalu tekan F2, dan tekan tombol Ctrl+ Shift lalu Enter (return).
Maka semua baris dalam kolom H akan terisi dengan nilai TA_SMA(Close,20). Perhatikan juga
formula di sel H2 sudah berubah menjadi {=TA_SMA(E2:E3454),20)}. Tanda {} menunjukkan
bahwa data dalam bentuk Array.
1.4.1.2 WMA
Untuk perhitungan WMA-20 di kolom I, kita bisa masukkan formula =TA_WMA(E2:E3454) di sel
I2, kemudian salin ke semua baris di kolom I lalu tekan F2 dan Ctrl+Shift dan Enter. Formula di
seluruh sel dalam kolom I akan berubah bentuk menjadi formula Array, misal dalam sel I2 akan berisi
{= TA_WMA(E2:E3454)}
17 | H a l
Gambar 1-10 TA_WMA di kolom I
1.4.1.3 EMA
Untuk perhitungan WMA-20 di kolom J, kita bisa masukkan formula =TA_WMA(E2:E3454) di sel
J2, kemudian salin ke semua baris di kolom J lalu tekan F2 dan Ctrl+Shift dan Enter. Formula di
seluruh sel dalam kolom I akan berubah bentuk menjadi formula Array, misal dalam sel I2 akan berisi
{= TA_EMA(E2:E3454)}
18 | H a l
Formula BB-Upper dibuat pada kolom K menggunakan formula =
=TA_BBANDS(E2:E3454,20,2,0,1) atau =TA_EMA(E2:E3454)+STDDEV(E2:E3454,2).
Gambar 1-12 Penulisan Formula BB-Upper dengan rentang nilai baris Close di kolom E
1.4.2.2 BB-Middle
Formula BB-Middle di kolom L sama dengan formal MA yang digunakan sebagai basis perhitungan.
Jika EMA dijadikan basis perhitungan, maka TA_BBANDS(E2:E3454,20,0,0,1) atau
=TA_EMA(E2:E3454).
Gambar 1-13 Penulisan Formula BB-Middle dengan rentang nilai baris Close di kolom E
1.4.2.3 BB-Lower
19 | H a l
Gambar 1-14 Penulisan Formula BB-Lower dengan rentang nilai baris Close di kolom E
1.4.3 MACD
1.4.3.1 Garis MACD
20 | H a l
Gambar 1-16 Penyalinan formula U2 untuk baris di bawahnya
21 | H a l
1.5 Tampilan Chart Dalam Excel
Anda bisa menampilkan chart indikator semua di atas sesuai gambar di bawah ini.
22 | H a l
Gambar 1-21 Tampilan chart RSI dan candlestick harga OHLC
23 | H a l
2 Optimisasi Indikator Dengan Algoritma
Genetika
2.1 Pendahuluan
Algoritma genetika adalah teknologi pencarian dan optimisasi yang meniru proses seleksi makhluk
hidup di alam. Tumbuhan maupun hewan secara alamiah berusaha untuk bertahan hidup terhadap
lingkungannya melalui proses reproduksi (perkawinan), evolusi dan perubahan/mutasi secara genetika.
Sementara, tumbuhan atau hewan yang tidak bisa menyesuaikan dengan kondisi lingkungannya
cenderung akan punah. Contoh sederhana, di lingkungan populasi rawa-rawa, beberapa individu katak
yang akan bertahan hidup perlu memiliki kecepatan saat berenang mengejar mangsa, katak akan
berevolusi dengan cara melebarkan selaput kakinya agar bisa berenang lebih cepat. Sementara katak
yang tidak memiliki pelebaran selaput kakinya akan kesulitan saat mencari makanan dan cenderung
musnah. Katak tersebut mengalami perubahan kromosom kakinya untuk memperoleh perubahan
selaput kakinya.
Proses alami tersebut dapat ditiru melalui proses komputasi, sebuah populasi dibentuk dari individu,
individu memiliki gen yang diwujudkan sebagai deret bilangan biner (8, 16, atau 32 bit). Masing-masing
individu kemudian di kawinkan (crossing) unjuk menghasilkan keturunan/individu yang baru.
Individu yang baru akan dimasukkan ke dalam fungsi target, tergantung tujuannya fungsi target bisa
berupa nilai minimum, maksimum atau nilai tertentu. Setelah perhitungan fungsi target dilakukan
maka, individu yang tidak menghasilkan nilai fungsi target optimum yang dikehendaki akan dibuang
dari populasi. Pada akhirnya kita akan memperoleh individu mana yang menghasilkan nilai fungsi
target optimum.
Untuk melakukan proses optimisasi algoritma genetika, penulis menggunakan aplikasi GeneHunter,
produk Ward Systems. Untuk lebih detail silahkan mengacu pada buku “Aplikasi Algoritma Genetika
GeneHunter”.
Sebagai ukuran fungsi target, kita akan menggunakan perhitungan keuntungan perdagangan (Trading
profit) sebagai acuan. Nilai parameter indikator yang menghasilkan profit yang paling besar akan kita
pilih.
1. Memanggil data finansial (saham, forex, index, Bond, dan lain-lain) ke dalam Ike excel. Kita
bisa melakukannya melalui aplikasi broker atau download data dari yahoofinance. Detail
pembahasan bisa dibuka dari buku “Analisis saham menggunakan Metatrader”. Dalam artikel
ini penulis akan menggunakan data saham harian.
2. Menampilkan indikator teknikal dengan TALIB (lihat pembahasan Bab 1)
3. Melakukan perhitungan strategi trading berikut perhitungan untung rugi dan total keuntungan.
Untuk menghindari overfit, data kita bagi menjadi dua rentang, yaitu rentang optimisasi dan
rentang di luar sampel (out of sample). Sebuah strategi trading yang baik akan menghasilkan
profit di kedua rentang tersebut. Kita bisa menggunakan grafik account balance untuk melihat
pergerakan kurva total profit selama perubahan parameter indikator dengan algoritma
genetika.
4. Menerapkan nilai indikator optimal pada aplikasi trading misal IDX-MT4 dengan membuat
indikator untuk menghasilkan sinyal trading.
Kita memiliki dua individu EMA1 dan EMA2, sedang kromosom berupa bentuk periode EMA,
diterapkan pada saham BMRI, dengan 1703 data, data baris 48 hingga baris 1398 untuk optimisasi dan
baris 1399 ke1719. Dengan konfigurasi sebagai berikut:
Berikut adalah tampilan awal sebelum nilai periode EMA1 dan EMA2 dioptimisasi.
Pada layar excel kita memiliki nilai parameter kromosom (SMA1 dan SMAS2), kurva harga, signal
trading, nilai account balance selama periode optimisasi dan out of sampel (OOS), nilai total profit
optimisasi dan OOS. Untuk perhitungan profit, saya gunakan nilai deposit awal Rp 1 juta, 500 lembar
saham, dengan komisi trading 0.48% per transaksi beli jual.
Perhatikan bahwa kurva harga saham dibuat berdasar nilai Close saja (anda bisa menggunakan OHLC
chart jika mau). Anda bisa melakukan zoom untuk memperbesar chart harga sehinga bisa melihat
detail sinyal perdagangan yang dihasilkan:
Berikut adalah tampilan GeneHunter saat dipanggil sebagai Add-in ke dalam excel.
26 | H a l
Gambar 2-3 Tampilan antarmuka GeneHunter untuk trading strategi EMA
27 | H a l
Gambar 2-6 Worksheet Equity & Equity chart EMA
Kita memiliki dua kromosom BB yaitu periode dan standard deviation, diterapkan pada saham BMRI,
dengan 1703 data, data baris 48 hingga baris 1398 untuk optimisasi dan baris 1399 ke1719. Dengan
konfigurasi sebagai berikut:
Jenis Kromosom: Integer untuk periode dan bilangan real untuk standar deviation
Constrains/Batasan:
Rentang kromosom Periode : 6 sd 25
Rentang kromosom Std. Dev.: 0.1 sd 3
Berikut adalah tampilan awal sebelum nilai periode dan std dev dioptimisasi.
28 | H a l
Berikut adalah tampilan GeneHunter saat dipanggil sebagai Add-in ke dalam excel.
29 | H a l
Gambar 2-10 Worksheet Equity & Equity chart BB
Kita memiliki tiga kromosom RSI yaitu periode, buy threshold dan sell threshold, diterapkan pada
saham BMRI, dengan 1703 data, data baris 48 hingga baris 1398 untuk optimisasi dan baris 1399
ke1719. Dengan konfigurasi sebagai berikut:
Jenis Kromosom: Integer untuk periode dan bilangan real untuk buy dan sell threshold
Constrains/Batasan:
Rentang kromosom periode RSI: 2 sd 25
Rentang kromosom buy threshold .: 0 sd 50
Rentang kromosom sell threshold .: 51 sd 100
30 | H a l
Gambar 2-12 Tampilan antarmuka GeneHunter untuk trading strategi RSI
31 | H a l
2.4.4 Strategi MACD
Kita memiliki tiga kromosom MACD yaitu periode Fast, Slow dan Signal, diterapkan pada saham
BMRI, dengan 1703 data, data baris 48 hingga baris 1398 untuk optimisasi dan baris 1399 ke1719.
Dengan konfigurasi sebagai berikut:
32 | H a l
Gambar 2-17 Tampilan trading strategi MACD setelah optimisasi
3 Kesimpulan
Kita bisa menggunakan Excel untuk melakukan analisis teknikal pada semua jenis data finansial, baik
saham, forex, index, reksadana, bond dan lain-lain. Seseorang yang memahami formula indicator
teknikal bias menerapkannya ke dalam formula excel, akan tetapi bagi yang tidak memahami formula
tersebut maka akan merasakan kemudahan melalui penggunaan TALIB sebagai add-in pada excel.
Untuk kebutuhan pembuatan strategi trading mekanik, indikator teknikal perlu dioptimisasi untuk
setiap data finansial yang akan dianalisis. Dengan bantuan algoritma genetika sebagai add-in pada excel.
Melalui pemanfaatan add-in TALIB dan GeneHunter, dengan sedikit tambahan tampilan grafik di
Excel maka setiap orang akan dengan mudah melakukan optimisasi indicator teknikal sehingga
memperoleh strategi trading yang optimal sesuai data finansial, indicator dan aturan trading yang akan
diterapkan.
33 | H a l