在 RSI 交叉处保存一个值并将其用作另一个交叉值 "later"

Save a value at an RSI cross and use it as another cross value "later"

PineScript 的新手,但却是资深程序员。我正在尝试制作一个 strategy/indicator,它基本上标记 RSI 交叉点的价格,并计算一个比初始交叉点的价格低一定百分比的新值,然后检查该新值下的交叉点。

为了更加清晰(希望如此),我提供了一个可视化示例。

在变量和范围方面,我发现 Pine 与我最习惯的 Python 和 C 有很大不同。所以我问这个只是希望得到关于从哪里开始的非常基本的指导。

主要是如何保持交叉的 RSI 价格变量并在以后的交叉检查中使用它。

Example

可以用valuewhen()函数获取某个点的值,valuewhen(condition, source, occurrence) → series[float] 公式很简单,您告诉条件(在您的情况下为 rsi cross),要获得的值(收盘蜡烛)和发生次数(0,每次满足条件时都得到它)

//@version=4
study(title="My Script", overlay = true)
rsi = rsi(close, 14)
// plot(rsi, "RSI", color=#8E1599)
upper = 70
lower = 30
// fill(upper, lower, color=#9915FF, transp=90)

val_dn = valuewhen(crossunder(rsi, lower), close, 0)
plot(val_dn, color = color.yellow)

正如您在下图中看到的(我绘制了 valuewhen() 以查看其工作原理),当 RSI 下穿发生时,将为您提供收盘蜡烛的价值。

从这里我认为你可以完成 n% down 部分。 :)