簡體   English   中英

Pine 腳本中的歷史引用 arrays

[英]History referencing in Pine Script arrays

我一直在嘗試使用最近在 PineScript 4 中引入的數組功能,但它接縫表明我沒有意識到它的局限性,或者可能實現仍然有問題。 以下非常簡單的腳本說明了我面臨的問題:

//@version=4

study("TEST")

// A is basically the same as bar_index+1, and it is plotted as expected
A=0
A:=nz(A[1])+1

// the same thing implemented using arrays nevertheless doesn't work as expected
B=array.new_float(1,0)
array.set(B,0,nz(array.get(B,0)[1])+1)

plot(A,color=color.red)
plot(array.get(B,0),color=color.yellow)

根據我的理解, AB數組的第一個元素都必須生成相同的圖形。 盡管如此, B的 plot 只是在所有柱上給出 1。 問題肯定與歷史引用運算符 [] 的使用有關。 有誰知道如何克服這種問題?

注意:為了深入了解問題的本質,我已使此腳本盡可能簡單。 我正在處理的腳本要復雜得多,它以各種方式在 for 循環中使用 arrays,包括剛剛說明的那個(即歷史引用操作),所以使用簡單變量代替數組根本不會'不適合我。

  1. 不能使用 Pine 的 [ ] 歷史引用運算符直接引用數組 ID 或元素的過去實例 ( https://www.tradingview.com/pine-script-docs/en/v4/essential/Arrays.html?highlight=array#歷史參考
  2. 您的示例的固定版本:
//@version=4

study("TEST")

// A is basically the same as bar_index+1, and it is plotted as expected
A=0
A:=nz(A[1])+1

// the same thing implemented using arrays nevertheless doesn't work as expected
var B=array.new_float(1,0)
array.set(B,0,nz(array.get(B,0))+1)

plot(A,color=color.red)
plot(array.get(B,0),color=color.yellow)

我完全同意你的看法。 我也有數組歷史引用的問題,無法通過替換 [] 來解決。 我在沒有數組的情況下重寫了我的腳本,它運行得很好。 唉,那是太長的腳本,但工作正常。 我認為 Pine 工作人員應該修改 arrays 代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM