簡體   English   中英

將數組的元素值傳遞給 pine 腳本中的最低或最高功能

[英]Passing array's element values to lowest or highest functions in pine script

我正在嘗試將動態值從數組傳遞給 pine 腳本中最低和最高的內置函數。 下面是代碼

int[] pArray = array.new_int(0)

pArray 填充有 int 元素。 下面是有效的代碼。

fromInd         =   array.min(pArray)
lowest          =   ta.lowest(MACDHist,array.get(pArray,0))
Debug = label.new(bar_index+1, close, 'pArray: ' + str.tostring(pArray) + str.tostring(fromInd))

上述代碼在圖表上的輸出

pArray: [2, 15, 40]2

2 是 pArray 的第 0 個索引值,最終打印在數組之外。 但是,當我將標簽更改為輸出“最低”值(如下所示)時,沒有任何內容打印到圖表,但一切都編譯得很好,沒有錯誤或警告

Debug = label.new(bar_index+1, close, 'pArray: ' + str.tostring(pArray) + str.tostring(lowest))

'array.get(id, index)' 的輸出是系列 int,因為 pArray 被初始化為 int。 我還通過用 'int()' 封閉它來對 'array.get(id, index)' 參數進行類型轉換,但除了硬編碼時,最后一行代碼沒有任何效果。

'ta.lowest(source, length)' 接受系列 int 參數作為長度,它還可以接受動態長度,如tradingview https://www.tradingview.com/blog/en/pine-functions-support-dynamic-length -參數-20554/

我在這里做錯了什么? 提前致謝。

它應該可以正常工作,通常我會說數組的填充方式肯定有問題,但鑒於數組輸出,這里的情況似乎並非如此。 這不太可能,但您可能發現了一個錯誤,甚至可能是編譯器未發現的異常。

//@version=5
indicator("Dynamic INT array length", overlay = false, max_bars_back = 5000)


int[] lengths = array.new_int()

for i = 0 to 10
    array.unshift(lengths, int(math.random(30, 50)))


[a, b, hist] = ta.macd(close, 26, 12, 9)

lowest = ta.lowest(hist, array.min(lengths))

plot(lowest)
plot(hist, color = color.red)

debug = label.new(x = bar_index, y = 0, style = label.style_label_left, text = str.tostring(lowest) + "   " + str.tostring(lengths) + "   " + str.tostring(array.min(lengths)))
label.delete(debug[1])

暫無
暫無

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

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