Cara Membuat Indikator TA di TradingView
Beranda
Artikel
Cara Membuat Indikator TA di TradingView

Cara Membuat Indikator TA di TradingView

Tingkat Lanjut
Diterbitkan Aug 28, 2020Diperbarui Jun 15, 2023
13m

Pengantar

Tanpa alat perdagangan yang tepat, Anda tidak dapat melakukan analisis teknikal yang efektif. Strategi perdagangan yang kuat akan membantu Anda menghindari kesalahan umum, meningkatkan manajemen risiko, dan mempertajam kemampuan Anda dalam mengidentifikasi dan memanfaatkan peluang.
Bagi banyak orang, TradingView merupakan platform charting yang paling sering digunakan. Menawarkan berbagai alat analisis teknikal, aplikasi web HTML5-nya yang kuat digunakan oleh jutaan orang untuk melacak pergerakan harga di pasar Forex, kripto, dan saham tradisional.
TradingView memiliki banyak fitur canggih: memungkinkan Anda melacak aset di berbagai platform perdagangan, dan mempublikasikan ide perdagangan di jejaring sosialnya. Dalam artikel ini, kita akan berfokus pada kemampuannya dalam memberikan Anda wewenang untuk menyesuaikan sendiri. Kita akan menggunakan Pine Script, bahasa pemrograman TradingView sendiri, yang memberikan kendali kepada Anda secara terperinci atas tata letak chart.

Mari mulai!


Apa itu Pine Script?

Pine Script merupakan bahasa scripting yang dapat digunakan untuk memodifikasi chart TradingView Anda. Platform ini memang sudah dilengkapi dengan banyak fitur, namun, Pine Script membantu Anda untuk melangkah lebih jauh. Jika ingin mengubah warna candlestick atau menguji ulang strategi baru, Pine Editor akan siap membantu menyesuaikan chart real-time sesuai keinginan Anda.
Kodenya sendiri didokumentasikan dengan sangat baik, jadi, pastikan Anda memeriksa user manual untuk informasi lebih lanjut. Tujuan tutorial ini adalah membahas beberapa dasar dan memperkenalkan indikator yang berguna dalam perdagangan mata uang kripto.


Pengaturan

Sangat mudah untuk memulai menggunakan Pine Script. Kode apa pun yang kita tulis dijalankan di server TradingView, sehingga kita dapat mengakses editor dan mengembangkan skrip dari browser – tanpa perlu unduhan atau konfigurasi tambahan.

Dalam tutorial ini, kita akan membuat chart pasangan mata uang Bitcoin/Binance USD (BTCBUSD). Jika Anda belum memilikinya, silakan buat akun gratis (langganan pro juga tersedia, tetapi tidak diperlukan untuk panduan ini). 
Ikuti tautan ini, Anda akan melihat chart sebagai berikut:


Punya Anda mungkin akan lebih up to date.


Di sini, kita ingin mendapatkan chart berfitur lengkap – klik tombol untuk mengaksesnya. Anda akan mendapatkan tampilan yang jauh lebih detail, alat menggambar, dan opsi untuk merencanakan garis tren, dan lain sebagainya.


Chart berfitur lengkap. Anda dapat menyesuaikan jangka waktu dengan mengklik tampilan di atas tab yang disorot.


Kita tidak akan membahas cara menggunakan semua alat yang tersedia, tetapi jika Anda serius mendalami analisis teknikal, sangat disarankan agar Anda membiasakan diri dengan alat-alat tersebut. Di kiri bawah (diuraikan dalam gambar), Anda akan melihat beberapa tab berbeda – klik Pine Editor.


Pine Editor



Editor ini merupakan tempat keajaiban terjadi. Klik Add to Chart untuk melihat anotasi muncul di atas. Perhatikan bahwa tampilan bisa menjadi berantakan jika kita menyertakan beberapa anotasi sekaligus, jadi kita akan menghapusnya (klik kanan di chart > Remove Indicators).
Anda dapat melihat bahwa kita sudah memiliki beberapa baris kode di sana. Mari klik Add to Chart untuk melihat apa yang terjadi.



Chart kedua ditambahkan di bawah yang awal. Chart baru kebetulan mewakili data yang sama. Arahkan kursor ke My Script dan klik tanda silang untuk menghapusnya. Sekarang, mari kita gali kodenya.
study("My Script")
Baris pertama ini baru saja menyiapkan anotasi kita. Hanya membutuhkan nama yang Anda inginkan untuk indikator (dalam hal ini, "My Script"), tetapi ada juga beberapa parameter opsional yang dapat ditambahkan. Salah satunya adalah overlay, yang memberi tahu TradingView untuk menempatkan indikator pada chart yang ada (bukan di segmen baru). Seperti yang Anda lihat dari contoh pertama kita, defaultnya adalah false. Meskipun kita tidak akan melihatnya beraksi sekarang, overlay = true menambahkan indikator ke chart yang ada.
plot(close)
Baris ini adalah instruksi untuk menggambar harga close Bitcoin. plot memberikan chart garis, tetapi kita juga dapat menampilkan candlestick dan bar, seperti yang akan kita lihat sebentar lagi. 

Sekarang, coba yang berikut ini:

//@version=4
study("My Script", overlay=true)
plot(open, color=color.purple)
Setelah Anda menambahkan ini, Anda akan melihat chart kedua (terlihat seperti yang awal bergeser ke kanan). Yang telah kita lakukan hanyalah menggambar harga open, dan karena open hari ini adalah close hari sebelumnya, maka masuk akal jika keduanya memiliki bentuk yang identik.
Baik! Mari kita singkirkan anotasi saat ini (ingat, kita melakukannya dengan mengklik kanan dan menekan Remove Indicators). Arahkan kursor ke Bitcoin / BUSD dan klik tombol Hide juga untuk menghapus chart saat ini.

Banyak pedagang lebih memilih chart candlestick karena memberikan lebih banyak informasi daripada plot sederhana seperti yang baru saja kita lakukan. Mari tambahkan ini berikutnya. 

//@version=4
study("My Script", overlay=true)
plotcandle(open, high, low, close)
Ini awal yang bagus, tapi kurangnya warna membuat chart agak hambar. Idealnya, kita harus memiliki kandil merah saat open lebih besar dari close untuk jangka waktu tertentu, dan kandil hijau jika close melebihi open. Kita akan menambahkan baris di atas fungsi plotcandle ():
//@version=4
study("My Script", overlay=true)
colors = open >= close ? color.red : color.green
plotcandle(open, high, low, close)

Fungsi ini melihat ke setiap kandil dan memeriksa apakah open lebih besar atau sama dengan close. Jika ya, berarti harga telah turun selama periode tersebut, sehingga akan mewarnai kandil menjadi merah. Jika tidak, kandil akan berwarna hijau. Ubah fungsi plotcandle () untuk meneruskan skema warna ini di:

//@version=4
study("My Script", overlay=true)
colors = open >= close ? color.red : color.green
plotcandle(open, high, low, close, color=colors)

Hapus indikator saat ini jika Anda belum menghapusnya, dan tambahkan yang ini ke chart. Sekarang kita seharusnya akan memiliki chart candlestick biasa.


Mantab!


Menggambar moving average (MA)

Kita telah mengetahui beberapa hal mendasar. Mari beralih ke indikator khusus pertama kita – rata-rata bergerak eksponensial, exponential moving average, atau EMA. Ini adalah alat yang penting, karena memungkinkan kita untuk menyaring setiap market noise dan memperlancar pergerakan harga. 
EMA sedikit berbeda dari simple moving average (SMA), EMA memberi bobot lebih pada data terbaru. Cenderung lebih reaktif terhadap pergerakan tiba-tiba, dan sering digunakan untuk permainan jangka pendek (misalnya, dalam perdagangan harian).


Simple moving average (SMA)

Sebaiknya kita juga menggambar SMA, supaya kita bisa membandingkan keduanya. Tambahkan baris ini ke script Anda:

plot(sma(close, 10))

Ini menggambar rata-rata dari sepuluh hari sebelumnya. Sesuaikan angka di dalam tanda kurung untuk melihat bagaimana kurva berubah saat memperhitungkan panjang yang berbeda.


SMA, berdasarkan sepuluh hari sebelumnya.


Exponential moving average (EMA)

EMA sedikit lebih sulit untuk dipahami, tetapi tidak perlu khawatir. Mari kita uraikan rumusnya dulu:

EMA = (Close - EMA Hari Sebelumnya) * Pengali - EMA Hari Sebelumnya

Jadi, apa artinya ini bagi kita? Nah Untuk setiap hari, kita menghitung moving average baru berdasarkan hari sebelumnya. Pengali adalah yang “menimbang” periode terbaru, dan dihitung dengan rumus berikut:

Pengali = 2 / (Panjang EMA +1)

Seperti halnya simple moving average, kita perlu menentukan berapa panjang EMA. Secara sintaksis, fungsi akan menggambar EMA mirip dengan fungsi SMA. Tempatkan itu di samping SMA, sehingga Anda dapat membandingkan keduanya:

//@version=4
study("My Script", overlay=true)
plot(sma(close, 10))
plot(ema(close,10))


Anda bisa melihat sedikit perbedaan pada kedua jenis MA.



Script Bawaan

Sejauh ini, kita telah menulis kode secara manual, sehingga Anda dapat memahaminya. Namun, mari berkenalan dengan sesuatu yang dapat menghemat waktu, terutama jika kita menulis skrip yang lebih kompleks, dan kita tidak ingin melakukannya dari awal.

Di sisi kanan atas editor Anda, klik New. Anda akan mendapatkan menu dropdown dengan semua jenis indikator teknikal yang berbeda. Klik Moving Average Exponential untuk melihat kode sumber untuk indikator EMA.



Silakan tambahkan ini ke chart.


Yang ini berbeda dari kode kita – Anda akan melihat fungsi input (). Fungsi Ini bagus dari sudut pandang kegunaan, karena Anda dapat mengklik di kotak ini…



... dan dengan mudah mengubah beberapa nilai di jendela pop-up dengan mengklik roda setting.



Kita akan menambahkan beberapa fungsi input () di script berikutnya untuk mendemonstrasikan ini.


Menggambar indikator Relative Strength Index (RSI)

Relative Strength Index (RSI) merupakan indikator penting lainnya dalam analisis teknikal. Dikenal sebagai indikator momentum, artinya indikator ini mengukur tingkat di mana aset dibeli dan dijual. Disajikan dalam skala 0 hingga 100, skor RSI memberi tahu investor apakah aset overbought atau oversold. Biasanya, sebuah aset dapat dianggap oversold jika memiliki skor kurang dari atau sama dengan 30, dan overbought dengan skor lebih besar atau sama dengan 70.
Jika Anda menuju ke New > RSI Strategy, Anda dapat melihatnya sendiri. RSI biasanya diukur selama periode 14 (yaitu, 14 jam atau 14 hari), tetapi Anda bebas menyesuaikan pengaturan itu agar sesuai dengan strategi Anda sendiri.
Tambahkan ini ke chart. Anda akan melihat beberapa panah ditampilkan sekarang (ditentukan oleh fungsi strategy.entry () dalam kode). RsiLE menunjukkan peluang potensial untuk membuka posisi long terhadap aset karena mungkin oversold. RsiSE menyoroti kemungkinan titik-titik untuk membuka posisi short terhadap aset ketika overbought. Perhatikan bahwa, seperti semua indikator, Anda sebaiknya tidak sepenuhnya mengandalkan ini sebagai bukti yang menunjukkan bahwa harga akan turun/naik.


Backtesting

Ada cara bagi Anda untuk menguji indikator khusus ini. Meskipun kinerja masa lalu bukan jaminan untuk hasil di masa mendatang, pengujian ulang script kita bisa memberikan gambaran mengenai seberapa efektif script tersebut dalam menangkap sinyal. 

Terdapat contoh script sederhana di bawah ini. Kita akan membuat strategi langsung, memasuki posisi long saat harga BTC turun ke bawah $11.000 dan keluar dari posisi saat harga melebihi $11.300. Kita kemudian akan melihat seberapa menguntungkan strategi ini secara historis.

//@version=4
strategy("ToDaMoon", overlay=true)
enter = input(11000)
exit = input(11300)
price = close

if (price <= enter)
    strategy.entry("BuyTheDip", strategy.long, comment="BuyTheDip")
if (price >= exit)
   strategy.close_all(comment="SellTheNews")
Di sini kita mendefinisikan entry dan exit sebagai variabel – keduanya adalah input, artinya kita dapat mengubahnya di chart nanti. Kita juga menyiapkan variabel price, yang mengambil close dari setiap periode. Kemudian, kita memiliki beberapa logika dalam bentuk pernyataan if. Jika bagian dalam tanda kurung benar, maka blok indentasi di bawahnya akan dijalankan. Jika tidak, akan dilewati.

Jadi, jika harga kurang dari atau sama dengan entri yang kita inginkan, ekspresi pertama dievaluasi sebagai benar, dan kita akan membuka posisi long. Setelah harga sama atau melebihi eksit yang diinginkan, blok kedua akan terpicu, menutup semua posisi terbuka. 

Kita akan memberi anotasi pada chart dengan panah yang menunjukkan di mana kita masuk/keluar, jadi, kita telah menentukan apa yang harus diberi label pada titik-titik ini dengan parameter comment (dalam contoh ini, “BuyTheDip” dan “SellTheNews”). Salin kodenya, dan tambahkan ke chart.


Sekarang Anda dapat melihat indikator di chart. Anda mungkin perlu memperkecil tampilan.


TradingView secara otomatis menerapkan aturan Anda ke data lama. Anda juga akan melihat bahwa Pine Editor beralih ke tab Strategy Tester. Ini memungkinkan Anda untuk melihat gambaran umum potensi laba Anda, daftar perdagangan, dan kinerja masing-masing.


Posisi-posisi masuk dan keluar kita.


Mencoba semuanya

Sekarang saatnya menulis script kita sendiri dengan menggunakan beberapa konsep yang telah kita lihat sejauh ini. Kita akan menggabungkan EMA dan RSI, dan menggunakan nilainya untuk mewarnai candlestick, menghasilkan wawasan yang dapat divisualisasikan dengan mudah. 

Ini tidak boleh dianggap sebagai nasihat keuangan– tidak ada cara yang benar secara objektif untuk menggunakan indikator ini. Seperti indikator lainnya, ini harus digunakan dengan alat lain untuk mengembangkan strategi Anda sendiri.

Sekarang mari kerjakan script baru kita. Hapus semua indikator Anda dari chart, dan sembunyikan juga chart Bitcoin/BUSD, sehingga kita memiliki kanvas yang bersih untuk dikerjakan.

Mari kita mulai dengan menentukan studi. Jangan ragu untuk memberi nama apa pun yang Anda inginkan, cukup pastikan untuk menetapkan overlay = true.
study(title="Binance Academy Script", overlay=true)
Ingat rumus EMA sebelumnya. Kita perlu memberikan pengali terhadap panjang EMA. Mari kita membuat input yang membutuhkan bilangan bulat (jadi, tidak ada tempat desimal). Kita juga akan menetapkan nilai minimum (minval), dan nilai default (defval).
study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)


Dengan menggunakan variabel baru ini, kita dapat menghitung nilai EMA untuk setiap candlil di chart kita:

study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)


Mantab. Sekarang ke RSI. Kita akan memberikan panjangnya dengan cara yang sama:

study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)

Dan sekarang, kita dapat menghitungnya:

study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)

Pada tahap ini, mari kumpulkan logika yang mewarnai kandil yang bergantung pada nilai EMA dan RSI. Mari kita ambil situasi di mana (a) harga close kandil melebihi EMA dan (b) di mana RSI di atas 50.

Mengapa? Nah, Anda mungkin memutuskan bahwa indikator ini dapat digunakan dengan kata sambung untuk memberi tahu Anda kapan harus membeli atau menjual Bitcoin. Misalnya, Anda mungkin berpikir, bahwa dengan memenuhi kedua kondisi tersebut berarti ini adalah saat yang tepat untuk memasuki posisi long. Atau sebaliknya, Anda dapat menggunakannya untuk memberi tahu Anda saat yang tepat untuk tidak melakukan short, bahkan jika indikator lain mengatakan sebaliknya.

Jadi, baris kita selanjutnya akan terlihat seperti ini:

study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)
colors = close > emaVal and rsiVal > 50 ? color.green : color.red
Jika ini diterjemahkan ke dalam bahasa Indonesia sederhana, kita hanya mengatakan bahwa jika nilai EMA melebihi harga close dan skor RSI melebihi 50, kita akan mewarnai kandil dengan warna hijau. Jika tidak,kita akan mewarnainya dengan warna merah. 

Selanjutnya, menggambar EMA:

study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)
colors = close > emaVal and rsiVal > 50 ? color.green : color.red
plot(emaVal, "EMA")
Terakhir, menggambar kandil, pastikan untuk menyertakan parameter color:
study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)
colors = close > emaVal and rsiVal > 50 ? color.green : color.red
plot(emaVal, "EMA")
plotcandle(open, high, low, close, color=colors)

Itu dia scriptnya! Tambahkan ke chart untuk melihat aksinya.


Chart BTC/BUSD dengan indikator EMA/RSI.


Konklusi

Dalam artikel ini, kita telah membahas beberapa contoh dasar mengenai hal-hal yang dapat Anda lakukan dengan Pine Editor TradingView. Sekarang, Anda harus yakin dalam membuat anotasi sederhana pada chart harga untuk mendapatkan wawasan tambahan dari indikator Anda sendiri.

Kita hanya berfokus pada beberapa indikator di sini, namun, sebenarnya mudah untuk menampilkan yang lebih kompleks – baik dengan memilih script bawaan dari New atau dengan menuliskannya sendiri.

Kurang inspirasi? Daftar artikel berikut ini mungkin bisa memberi Anda beberapa ide untuk proyek Anda selanjutnya: