我想通过X元素将"close"序列转移到过去,然后用数据填充这些X元素,以模拟未来%B、RSI、ema/sma等的影响。
hist[5]=关闭
hist[4]=5
hist[3]=5.5
hist[2]=5
hist[1]=4.5
hist[0]=6
我想在"历史"系列中计算ema/sma/rsi等。如何使用PineScript执行此操作?
您想要的是不可能的。我无法提前6小节获得最后一小节的close
你不能窥视未来。但如果你只想知道这些指标的一些值,只需手工填写close
,让它绘制结果。这将显示在图表的开头。
//@version=5
indicator("My script", overlay=false)
data = array.new<float>()
array.push(data, 100)
array.push(data, 5)
array.push(data, 5.5)
array.push(data, 4.5)
array.push(data, 6)
current = array.get(data, bar_index < array.size(data) ? bar_index : 4)
plot(ta.ema(current, 5))
但如果你真的想要这个。然后您需要一个接一个地实现TA函数您自己,并像您已经做的那样对值进行硬编码。
EMA示例
//@version=5
indicator("My script", overlay=false)
m(weight, price) => price * weight
ema(close) => (m(1, close) + m(2, 5) + m(3, 5.5) + m(4, 4.5) + m(5, 6)) / 15
plot(ema(close))
SMA是相同的,但对于所有权重都是1,然后除以5而不是15。其他人也不是为了努力而是为了更多的工作。希望我已经回答了你的问题。或者至少给你一些可以合作的东西。
额外提示:有些TA函数确实需要按指定顺序的数据,如ta.sma
,但ta.ema
需要。因此,也许你可以走捷径。
有关实现您自己的TA函数的问题,请在stackoverflow上询问。
虽然可以引用序列的过去值,但不能修改它们。只能为当前序列值指定值。
https://www.tradingview.com/pine-script-docs/en/v4/language/Operators.html#history-参考操作员