繁体   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