Juni 25, 2019

Memperkenalkan Skrip Pine V4!

Temui versi baru dari bahasa pemrograman Skrip Pine V4! Versi ini mencakup beberapa fitur baru. Kami telah memperbaharui struktur bahasa dan memperbaiki sejumlah isu yang ada. Meski demikian, fitur yang paling penting dan yang paling ditunggu adalah dukungan terhadap objek gambar. Kami akan sedikit membahas mengenai fitur baru tersebut pada post blog ini. Harap membaca dokumentasi dan panduan referensi jika anda ingin mempelajari lebih lanjut (harap dicatat, anda dapat langsung menuju ke bagian deskripsi objek gambar).

Label Objek Gambar

Fungsi label.new memungkinkan anda untuk menggambar label pada chart termasuk yang mengandung teks yang berubah-ubah. Berikut adalah contoh dari skrip yang menggambarkan label yang mengandung penutupan dari bar terakhir:  

//@version=4

study(“Last Bar Price”, overlay=true)

l = label.new(bar_index, na, ‘last price is ‘+tostring(close), 

  color=close >= open ? color.green : color.red, 

  textcolor=color.white,

  style=label.style_labeldown, yloc=yloc.abovebar)

label.delete(l[1])

Anda dapat mengedit dan menghapus objek label setelah pembuatannya dengan menggunakan keluarga fungsi label.*. Berikut adalah contoh dari skrip menggunakan label yang lebih kompleks — Pivot Points High/Low.

Objek Gambar Garis

Fungsi line.new memungkinkan anda untuk menggambar garis pada chart. Berikut adalah contoh dari skrip sederhana yang menggambarkan garis yang menghubungkan titik tertinggi dari bar saat ini ke titik terendah dari 10 bar sebelumnya:   

//@version=4

study(“Line”, overlay=true)

l = line.new(bar_index, high, bar_index[10], low[10], width = 4)

line.delete(l[1])

Anda dapat mengedit dan menghapus objek label setelah pembuatannya dengan menggunakan keluarga fungsi label.*. Berikut adalah contoh dari skrip menggunakan objek gambar garis yang lebih kompleks — Zig Zag.

Harap dicatat bahwa saat ini kami dapat menampilkan 50-55 gambar dari sebuah tipe tunggal (label atau garis) per skrip pada chart secara total. Pembatasan ini didesain untuk mencegah beban berlebih pada server kami.

Tipe-Tipe data garis dan label yang baru meningkatkan kemampuan dari Skrip Pine secara signifikan dengan memungkinkan anda untuk mengimplementasikan logika kompleks dibalik indikator-indikator populer pada skrip pengguna. Contohnya dapat anda temukan pada dokumentasi.

Seri String

Kini kami mendukung variabel dari sebuah tipe data seri string. Berikut adalah contoh penggunaan seri string pada label:

//@version=4

study(“Series string”, overlay = true)

draw_label(title) =>

    label.new(bar_index, high, text=title)

t = close >= open ? “green” : “red”

draw_label(t)

 

Kata kunci Var

Sebuah variabel yang dideklarasikan dengan cara biasanya akan di inisiasi ulang pada setiap kalkulasi dari skrip nya. Ini memerlukan skrip untuk memperbanyak variabel dari nilai sebelumnya secara eksplisit. Kata kunci var mendeklarasikan sebuah variabel dan menginisiasinya secara satu kali saja. Hal ini memungkinkan nilai dari variabel untuk disimpan secara otomatis diantara bar semenjak inisiasinya atau penugasan terakhirnya. Berikut adalah contoh dari skrip yang menghitung jumlah dari bar hijau didalam chart:

//@version=4

study(“My Script”)

var s = 0.0

if close >= open

    s := s + 1

plot(s)

Setiap penutupan >= pembukaan maka kondisinya terpenuhi, nilai dari variabel s akan naik sebesar satu. Nilai inisisasinya dapat berupa ekspresi aritmetika apapun.

Syntax untuk mendeklarasikan variabel dengan kata kunci var akan menghindari penggunaan kode berikut: s := nz(s[1], s). Mendeklarasikan variabel dengan pengubah var akan sangat berguna saat bekerja dengan gambar..

Penamaan ulang dari Konstanta, Variabel dan Fungsi-Fungsi bawaan

Pada Skrip Pine v4, konstanta, variabel dan fungsi-fungsi bawaan berikut ini telah diubah nama:

  1. Konstanta warna (cth. red) dipindahkan ke color.* namespace (cth. color.red).
  2. Fungsi color telah diubah nama menjadi color.new.
  3. Constanta untuk tipe-tipe input (cth. integer) dipindahkan ke input.* namespace (cth.  input.integer).
  4. Konstanta corak plot (cth. corak histogram) dipindahkan ke plot.style_* namespace (cth. plot.style_histogram).
  5. Konstanta corak untuk fungsi hline (cth. corak dotted) dipindahkan ke hline.style_* namespace (cth. hline.style_dotted).
  6. Konstanta dari hari dalam minggu (cth. sunday) dipindahkan ke dayofweek.* namespace (cth.  dayofweek.sunday).
  7. Variabel dari kerangka waktu chart saat ini (cth. period, isintraday) dipindahkan ke timeframe.* namespace (cth. timeframe.period, timeframe.isintraday).
  8. Variabel interval diubah nama ke timeframe.multiplier.
  9. Variabel ticker dan tickerid diubah nama ke syminfo.ticker dan syminfo.tickerid.
  10. Variabel n yang mengandung nilai indeks bar telah diganti ke bar_index.

Alasan penamaan ulang tersebut adalah untuk menstrukturisasi peralatan bahasa standar dan memudahkan dalam pengerjaan kode. Nama-Nama baru dikelompokkan berdasarkan penugasan didbawah prefix yang sama. Sebagai contoh, andaakan melihat daftar dari seluruh konstanta warna yang tersedia jika anda mengetikkan ‘color’ di editor dan menekan Ctrl + Space.

Deklarasi Tipe Variabel Eksplisit

Pada Skrip Pine v4, anda tidak lagi dapat membuat variabel dengan tipe data tidak dikenal saat pembuatan deklarasinya (lihat na value). Ini dimaksudkan untuk menghindari sejumlah permasalaah yang muncul saat tipe variabelnya berubah setelah inisiasinya dengan na value. Mulai saat ini, anda perlu menspesifikasikan secara eksplisit tipenya dengan menggunakan kata kunci atau tipe fungsi (sebagai contoh, float) saat mendeklarasikan variabel dengan na value:

//@version=4

study(“NA”, overlay=true)

float a = na

a := if close >= open

    high

else

    low

plot(a)

Cobalah Skrip Pine v4 ini! Beberapa pengguna telah melakukan pengujian beberapa fiturnya dan menulis beberapa skrip yang sangat luar biasa dengan menggunakan gambar.

Sebagai contoh, Ricardo Santos telah menulis sebuah seri skrip yang dapat anda lihat dibawah ini:

Joris Duyck menulis skrip Trendlines yang mengilustrasikan kemampuan penggambaran garis.

Hami harap contoh-contoh tersebut akan menginspirasi anda! Anda dapat bertanya, mendiskusikan permasalahan serta memberikan umpan balik pada ruang obrolan kami. Kami sangat berterimakasih pada seluruh anggota komunitas Skrip Pine yang telah berpartisipasi dalam beta-testing dan juga membantu kami! Anda juga dapat menanyakan perihal kode di halaman Stack Overflow.