![](/img/trans.png)
[英]How to use default values for array parameters in pine-script functions?
[英]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.