April 9, 2021
Apa yang baru dalam Pine?

Tidak semua kemas kini Pine memerlukan catatan blog yang berasingan, tetapi anda tidak akan tahu bila ciri-ciri baru mungkin berguna untuk pengkodan skrip anda. Catatan ini mempamerkan penambahbaikkan terkini yang mungkin anda terlepas.

Kata kunci varip berguna apabila anda ingin sentiasa menjejaki beberapa data dan bagaimana ia berubah di dalam bar masa nyata. Semua pemboleh ubah Pine biasa terikat pada apa yang dikenali sebagai rollback, di mana pada setiap data baru, keadaan pemboleh ubah diset semula kembali ke nilainya pada bar sebelumnya sebelum menilai tanda data baru. Kata kunci varip terkecuali dari ini dan membolehkan anda membandingkan nilai pemboleh ubah semasa dengan nilainya pada tanda sebelumnya (berbanding bar sebelumnya), yang mana akan membuka lebih banyak kemungkinan baru. Lihatlah carta tanda yang dibuat oleh salah seorang ahli Pine Wizards kami LonesomeTheBlue:

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

Untuk mengetahui lebih lanjut, baca tutorial mendalam mengenai varip oleh PineCoders:

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

Bagi anda yang mahukan lebih banyak pengiraan matematik di Pine, kami kini mempunyai pelbagai fungsi dan pemalar berkaitan pengiraan matematik baru:

  • Pemalar baru math.pi, math.phi, math.rphi dan math.e
  • Fungsi baru round () – fungsi sekarang membolehkan anda menentukan ketepatan pembundaran, bukan yang selalunya membundarkan ke bilangan integer terdekat
  • median()
  • mode()
  • range()
  • todegrees()
  • toradians()
  • random()

Inilah strategi untuk anda yang suka hidup dalam keadaan berisiko dan merbahaya: semua belian dan jualan adalah secara rawak berdasarkan peratusan yang ditentukan di bahagian Input, semuanya kerana 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()

Dalam perkembangan lain,: = operator tugasan telah digabungkan dengan operator aritmetik untuk membuat operator tugasan baru + =, – =, * =, / = dan,% =. Ini membolehkan anda menyusun rapi dan memendekkan skrip anda: daripada menggunakan a: = a + 1, anda hanya boleh menulis + = 1. Peningkatan yang kecil, tetapi cukup memudahkan.

Sekiranya anda mendapati diri anda perlu menukar rentetan menjadi nombor, fungsi tonumber () membolehkan anda melakukan ia dengan pantas. Sebagai contoh, dalam skrip di bawah ini, tonumber (), bersama dengan fungsi lain yang berkaitan dengan rentetan seperti str.split () dan str.replace_all (), membolehkan medan input rentetan tunggal mengembalikan beberapa nilai integer yang kemudian digunakan sebagai panjang untuk pengiraan SMA. Tidak ada alasan yang kuat untuk melakukannya dengan cara ini selain daripada cara “input terpisah untuk setiap SMA” yang juga betul dan senang … Tetapi jika anda masih memerlukannya, ia 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 pemboleh ubah time_tradingday, yang mengembalikan cap waktu UNIX pada awal hari perdagangan. Ini akan sangat berguna ketika menganalisis simbol yang diperdagangkan semalaman, seperti EURUSD, di mana perdagangan bermula pada hari Ahad tetapi secara teknikalnya, hari perdagangan sebenarnya adalah pada hari Isnin.

Fungsi time_close () baru membolehkan anda mendapatkan waktu penutupan bar dari jangka waktu dan sesi yang tertentu (berbeza dengan pemboleh ubah time_close yang ada sebelumnya, yang hanya berfungsi dengan jangka waktu / sesi carta). Ini sangat berguna untuk lukisan, membolehkan anda melukis garis dan label ke masa depan dengan lebih tepat. Untuk melihat cara penggunaannya, periksa petunjuk JayRogers pada Pivot Points:

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

Dengan parameter format.percent yang baru untuk study(), output skrip anda kini dapat diformat secara automatik sebagai peratusan. Lihatnya penggunaanya dalam penunjuk Aroon terbina dalam 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 pemboleh ubah baru, session.ismarket, session.ispremarket, dan session.ispostmarket, membolehkan anda memeriksa bahagian sesi intraday yang berkaitan dengan bar semasa. Harus diperhatikan bahawa waktu lanjutan hanya muncul pada carta intraday, dan hanya apabila pilihan tersebut diaktifkan secara jelas melalui tetapan.

Sekiranya anda ingin mengetahui mengenai kemas kini Pine sebaik sahaja ia berlaku, pantau Nota Keluaran di Manual Pengguna kami. PineCoders juga menyiarkan berita mengenai kemas kini di saluran Telegram Squawk Box mereka, di Twitter dan dalam sembang awam Pine Script di TradingView.

Kami harap penambahbaikan ini berguna. Sila teruskan menghantar maklum balas anda kepada kami. Kami membina TradingView untuk pengguna kami dan kami suka mendengar ulasan dan pandangan daripada anda.

Cara terpantas untuk mengikuti pasaran

Lancarkan Carta