April 9, 2021
Apa yang Baru di Pine?

Tidak semua pembaruan Pine memerlukan posting blog tersendiri, tetapi anda tidak pernah tahu kapan fitur-fitur baru tersebut mungkin berguna untuk mengkodekan skrip anda. Posting ini menampilkan peningkatan terbaru yang mungkin luput dari radar anda.

Kata kunci varip berguna ketika anda ingin melacak beberapa data dan bagaimana perubahannya di dalam bar real-time. Semua variabel Pine reguler tunduk pada apa yang dikenal sebagai rollback, di mana pada setiap tick data baru, status variabelnya akan diatur ulang kembali ke nilainya pada bar sebelumnya sebelum mengevaluasi data baru. Kata kunci varip lolos dari ini dan memungkinkan anda untuk membandingkan nilai variabel saat ini dengan nilainya pada tick sebelumnya (sebagai ganti dari bar sebelumnya), yang membuka sejumlah kemungkinan baru. Lihatlah chart tick dari salah satu Pine Wizards kami LonesomeTheBlue:

https://www.tradingview.com/script/ygNO2G1V-Tick-Chart/

Untuk mempelajari lebih lanjut, bacalah tutorial mendalam mengenai varip oleh PineCoders

https://www.tradingview.com/script/ppQxBISk-Using-varip-variables-PineCoders/

Bagi anda yang menginginkan lebih banyak matematika di Pine, sekarang kami memiliki seluruh rangkaian fungsi dan konstanta terkait matematika:

  • Konstanta baru math.pi, math.phi, math.rphi and math.e
  • Fungsionalitas round() baru — fungsi tersebut sekarang memungkinkan anda untuk menentukan ketepatan pembulatan, dan tidak selalu membulatkan ke bilangan bulat terdekat
  • median()
  • mode()
  • range()
  • todegrees()
  • toradians()
  • random()

Berikut adalah strategi bagi anda yang juga suka hidup penuh tantangan: semua entri dan keluar diacak berdasarkan persentase yang ditentukan di bagian Input, semua berkat fungsi random():

//@version=4
strategy("I’m feeling lucky", overlay=true)
seed = input(1, "Seed, increase to recalculate the strategy", minval=1)
entryPerc = input(20.0, "Entry chance, %", minval=0.0, maxval=100.0)
exitPerc = input(10.0, "Exit chance, %", minval=0.0, maxval=100.0) 
roll = random(0, 100, seed)
positionSize = floor(random(1, (strategy.equity / close), seed))
if roll < entryPerc
    strategy.entry("My Long Entry Id", strategy.long, qty=positionSize)
if roll < exitPerc
    strategy.close_all()

Pengembangan lainnya, operator := telah digabungkan dengan operator aritmatika untuk membuat operator penugasan baru +=, -=, *=, /= dan, %=. Ini memungkinkan anda untuk merapikan dan mempersingkat skrip anda: sebagai ganti dari penggunaan a := a + 1 anda cukup menulis a += 1. Perbaikan kecil, tetapi cukup praktis.

Jika anda pernah merasa perlu mengubah string menjadi angka, fungsi tonumber() yang baru memungkinkan anda melakukannya. Misalnya, dalam skrip di bawah ini, tonumber(), dalam hubungannya dengan fungsi terkait string lainnya seperti str.split() dan str.replace_all(), memungkinkan satu kolom input string mengembalikan beberapa nilai integer yang kemudian digunakan sebagai panjang. untuk perhitungan SMA. Tidak ada alasan kuat untuk melakukannya dengan cara ini selain menggunakan cara “input  terpisah untuk masing-masing SMA” yang benar dan nyaman… Tetapi jika anda membutuhkannya, itu ada di sini:

//@version=4
study("My SMAs", overlay=true)
sma_lengths = input("5, 10, 20, 30, 50", title = "SMA Lengths (separated by comma)")
sma_lengths_array = str.split(str.replace_all(sma_lengths, " ", ""), ",")
sma_len(index) =>
    index > array.size(sma_lengths_array) - 1 ? 10 :
     int(tonumber(array.get(sma_lengths_array, index)))
sma0 = sma(close, sma_len(0))
sma1 = sma(close, sma_len(1))
sma2 = sma(close, sma_len(2))
sma3 = sma(close, sma_len(3))
sma4 = sma(close, sma_len(4))
plot(sma0, color=color.blue)
plot(sma1, color=color.red)
plot(sma2, color=color.green)
plot(sma3, color=color.orange)
plot(sma4, color=color.purple)

Kami telah menambahkan variabel time_tradingday, yang mengembalikan timestamp UNIX dari awal hari trading. Ini akan berguna saat menganalisis simbol yang ditradingkan dalam semalam, seperti EURUSD, di mana trading dimulai pada hari Minggu sementara secara teknis, hari trading yang sebenarnya adalah Senin.

Fungsi time_close() yang baru memungkinkan anda mendapatkan waktu penutupan bar dari kerangka waktu dan sesi tertentu (berbeda dengan variabel time_close yang ada sebelumnya, yang hanya berfungsi dengan kerangka waktu/sesi chart). Ini sangat berguna untuk gambar, yang memungkinkan anda menggambar garis dan label ke masa depan dengan lebih tepat. Untuk melihatnya beraksi, lihatlah indikator Pivot Point dari JayRogers:

https://www.tradingview.com/script/7EwXUkBE-Pivotal-Multi-Pivot-Selector/

Dengan parameter format.percent baru untuk study(), keluaran skrip anda sekarang dapat secara otomatis diformat sebagai persentase. Lihat cara kerjanya dengan indikator Aroon bawaan kami:

//@version=4
study(title="Aroon", shorttitle="Aroon", overlay=false, format=format.percent, precision=2, resolution="")
length = input(14, minval=1)
upper = 100 * (highestbars(high, length+1) + length)/length
lower = 100 * (lowestbars(low, length+1) + length)/length
plot(upper, "Aroon Up", color=#FF6A00)
plot(lower, "Aroon Down", color=#0094FF)

Tiga variabel baru, session.ismarket, session.ispremarket, dan session.ispostmarket, memungkinkan anda untuk memeriksa bagian sesi intrahari yang terkait dengan bar saat ini. Perhatikan bahwa jam perpanjangan hanya muncul di chart intrahari, dan hanya jika opsinya secara eksplisit diaktifkan melalui pengaturannya.

Jika anda ingin mempelajari mengenai update Pine segera setelah rilis, pantau Catatan Rilis di Manual Pengguna kami. PineCoders juga mengumumkan berita akan update pada Channel Telegram Squawk Box, pada Twitter dan pada obrolan publik Skrip Pine di TradingView.

Kami berharap peningkatan ini bermanfaat bagi anda. Silakan terus kirimkan umpan balik anda kepada kami. Kami membangun TradingView untuk pengguna kami dan kami senang mendengar dari anda.

Cara tercepat untuk memantau pasar

Luncurkan Chart