如何在 Pine 脚本中创建简单整数数组?

问题描述 投票:0回答:2

为什么这段代码会出现错误

无法使用 'length'=series[integer] 调用 'ema'。参数的类型应为:整数`

如何使整数变得更简单?

// Define EMA lengths
length1 = input(9)
length2 = input(21)
length3 = input(34)
length4 = input(55)
length5 = input(89)
emaLengths = array.from(length1, length2, length3, length4, length5)

plot(ema(close, array.get(emaLengths,1)))
pine-script
2个回答
1
投票

我不确定你的最终目标是什么,或者为什么你不直接将

length2
传递给
ema()
array.get()
返回
series[int]
。然而,
ema()
期望
integer
作为其
length
参数。

作为解决方法,您可以使用

sma()
来计算
ema()
sma()
期望
series[integer]
作为其
length
参数,因此它适用于您的情况。

//@version=4
study("My script", overlay=true)

// Define EMA lengths
length1 = input(9)
length2 = input(21)
length3 = input(34)
length4 = input(55)
length5 = input(89)
emaLengths = array.from(length1, length2, length3, length4, length5)

pine_ema(src, length) =>
    alpha = 2 / (length + 1)
    sum = 0.0
    sum := na(sum[1]) ? sma(src, length) : alpha * src + (1 - alpha) * nz(sum[1])

plot(pine_ema(close, array.get(emaLengths,1)))
plot(ema(close, length2))

enter image description here


0
投票

是的,松树数组无法处理其他代码(例如 fortran)中的标准内容似乎很荒谬。我一直在避开使用 pine 的阵列,但最终它们几乎变得必不可少。也许尝试“ calc_len = int(length1) then ta.ema(close,calc_len)。这对我有用,但当我尝试在函数内进行计算时,错误再次出现? 祝你好运

© www.soinside.com 2019 - 2024. All rights reserved.