Saya melihat error ' Pine tidak dapat menentukan panjang referensi dari sebuah seri. Harap gunakan max_bar_back'

Ketika sebuah skrip Pine dihitung, ini akan membuat buffer historis dengan ukuran tertentu untuk setiap variabel atau fungsi dalam kodenya. Buffer tersebut berisi informasi tentang nilai sebelumnya dari variabel/fungsi dan digunakan ketika kodenya merujuk ke nilai sebelumnya menggunakan operator referensi histori []. Ukuran buffer menentukan seberapa jauh nilai ini dapat diminta ke dalam historinya.

Pine secara otomatis menentukan ukuran buffer yang diperlukan untuk semua variabel dan fungsi dengan menganalisis referensi sebelumnya yang dibuat saat menghitung skrip pada 244 bar pertama. Jika tidak ada referensi sebelumnya yang terdeteksi, ukuran buffer bawaan ditetapkan ke variabel atau fungsinya. Untuk variabel, ukuran buffer bawaan adalah 300 bar, untuk fungsi hanya satu bar saja.


Sebuah isu biasanya muncul sebagai cabang dari pernyataan kondisional (if, iff, atau ?) saat referensi sebelumnya ke sebuah variabel atau fungsi didalam pernyataan kondisionalnya dieksekusi pertama kali saat bar ke 244 telah berlalu. Dalam kasus semikian, Pine tidak akan dapat menetapkan ukuran buffer yang tepat untuk fungsi tersebut dan ukuran buffer bawaan yang akan digunakan. Mari lihat kode dibawah ini. Ini akan mengembalikan error yang disebutkan diatas karena:

  • Nilai variabel var1 tidak diketahui saat dikompilasi
  • Variabel test tidak meminta data lampau manapun pada 244 bar pertama pada chart

Karenanya, variabel test ditetapkan sebagai buffer bawaan dari 300 bar. Saat skrip meminta nilai dari bar ke 301 sebelumnya, yang mana berada diluar buffer variabelnya, sebuah error terjadi. 

//@version=4
study("max_bars_back var",overlay=true)
var1 = input(301)
test = 0.0
//max_bars_back(test, 301)
if bar_index > 244
    test := test[var1]
plot(test)

Parameter max_bars_back dan fungsi max_bars_back() hadir untuk menyelesaikan masalah ini. Mereka memungkinkan anda untuk menentukan ukuran buffer yang tepat untuk suatu variabel dan fungsi saat buffer bawaannya tidak mencukupi. function exist to work around this. They allow you to specify the correct buffer size for variables and functions when the default buffer doesn’t suffice. Hapus komentar pemanggilan fungsi max_bars_back () dalam kode di atas. Sebuah buffer sebesar 301 akan ditetapkan ke variabel test dan sebagai hasilnya, skrip tersebut akan terkalkulasi secara tepat.

Berikut adalah contoh panggilan fungsi yang diatribusikan ke ukuran buffer satu-bar bawaannya karena tidak dipanggil dalam 244 bar pertama. Meskipun tidak ada referensi eksplisit ke nilai sebelumnya dengan menggunakan operator [], fungsinya tetap memerlukan 20 nilai terakhir untuk dihitung. Dengan demikian, skrip akan mengembalikan error max_bars_back:

//@version=4
study("Requires max_bars_back")
test = 0.0
if bar_index > 1000
    test := vwma(close, 20)
plot(test)

Fungsi max_bars_back () tidak dapat digunakan untuk menetapkan ukuran buffer tertentu ke suatu fungsi. Saat anda perlu melakukannya, atau ketika anda ingin mengatur ukuran buffer bawaan untuk semua variabel dan fungsi dalam skrip, tambahkan parameter max_bars_back ke studi skrip atau pernyataan deklarasi strategi. Perhatikan bahwa menggunakan parameter akan meningkatkan penggunaan sumber daya skrip, jadi metode ini sebaiknya hanya digunakan saat diperlukan:

//@version=4
study("Requires max_bars_back", max_bars_back=20)
test = 0.0
if bar_index > 1000
    test := vwma(close, 20)
plot(test)

Anda juga dapat mengatasi masalah ini dengan mengeluarkan ekspresi bermasalah dari cabang kondisionalnya, dalam hal ini parameter max_bars_back tidak lagi diperlukan:

//@version=4
study("Requires max_bars_back")
test = 0.0
vwma20 = vwma(close, 20)
if bar_index > 1000
    test := vwma20
plot(test)

Anda dapat mempelajari lebih lanjut mengenai max_bars_back dan error yang berhubungan dengannya di Panduan Pengguna kami.

Beranda Penyaring Saham Penyaring Forex Penyaring Crypto Kalender Ekonomi Bagaimana Cara Kerjanya Fitur-Fitur Chart Harga Akun Refer seorang teman Tata Tertib Pusat Bantuan Solusi Website & Broker Widget-Widget Solusi Charting Perpustakaan Charting Ringan Blog & Berita Twitter
Profil Pengaturan Profil Akun dan Penagihan Teman yang di refer Koin Tiket Dukungan Saya Pusat Bantuan Ide Terpublikasikan Pengikut Mengikuti Pesan Pribadi Obrolan Keluar