如何在 Pine 语言 (TradingView) 中工作 'for' 以及如何在循环中调用 MACD?

How work 'for' in Pine language (TradingView) and how call MACD in loop?

请教我如何使用 Pine 语言中的 for 循环(TradingView 图表的脚本)。 我做了一个测试指标(下面的代码),它显示了 MACD。 在绿色图表中,我只是在脚本的顶层显示 MACD。 我在红色图表中得到相同的 MACD 值,但在 'for' 循环内。看看它是如何工作的:

从逻辑上讲,绿色和红色图形应该完美匹配,因为它们显示相同的值。但是他们不一样!!! 帮助理解错误。谢谢。

//@version=4
study("My Script")

[_,_,currMacd] = macd(close[0], 12, 26, 9)
plot(currMacd, style=plot.style_histogram, color=color.green)

//
float val = 0.0
for int n = 0 to 20
    [_,_,tempMacd] = macd(close[n], 12, 26, 9)
    if n == 0
        val := tempMacd

plot(val, style=plot.style_histogram, color=color.red)

不太确定你在这里想要完成什么,但是你的 MACD 已经根据过去的柱计算出来,所以你只需要参考过去的值:

//@version=4
study("My Script")

[_,_,currMacd] = macd(close, 12, 26, 9)
plot(currMacd, style=plot.style_histogram, color=color.orange, linewidth = 8, transp = 60)

float val = 0.0
for int n = 0 to 20
    val := currMacd[n]
    if n == 0
        break

plot(val, style=plot.style_histogram, color=color.red)