如何在 pinescript 中为 TradingView 开发多个时间范围 RSI

Lea*_*Man 5 pine-script

我正在尝试在交易视图中使用 pine-script 开发多个时间范围 RSI,但我似乎对长期图表视图中的短期 RSI 存在问题。

例如,以下代码将显示 5 分钟 RSI。如果我将图表设置为 5 分钟,它将正确显示 RSI。但是,当我选择更大的时间范围(例如 1 小时等)时,该值就会变得不正确。

study("Multi Time Frame RSI", "MTF RSI", overlay=false)
src = input(title="Source", type=source, defval=close)
_5min_rsi = security(tickerid, "5", rsi(src, 14))
plot(_5min_rsi, title="5min_RSI", color=purple, linewidth=1)
Run Code Online (Sandbox Code Playgroud)

我认为问题与正在操作的系列数据有关。由于某种原因,当我使用“5”的安全性作为我的分辨率时,其数据会在较高的时间范围图表中丢失,并且它使用当时不同系列的收盘价。至少这是我的假设。我相信我错误地使用了“security”函数,或者可能向 RSI 函数提供了错误的输入“src”。

我还尝试切换 RSI 和安全性,看看是否可以获取 5 分钟系列数据并将其输入到我的 RSI 函数中,但这并没有更好的效果。例如

_5min_rsi = rsi(security(tickerid, "5", src), 14)
Run Code Online (Sandbox Code Playgroud)

本质上,我需要看到的是,无论我在交易视图中处于什么时间范围,我都应该看到正确计算的 5 分钟 RSI。在当前状态下,代码只能在 1 分钟和 5 分钟的时间范围内运行,这显然是不可接受的。

小智 5

在玩了一下这个security()函数之后,我认为这个security()函数不是这样工作的。

如果我们将分辨率设置为"1"(即 1 分钟)并转到图表1D,我们将仅获得每个每日柱的最后一分钟柱的值。

out = security("AAPL", "1", close)
Run Code Online (Sandbox Code Playgroud)

如果我们将它们设置为相反("D"对于分辨率和1m图表),所有分钟柱将是相同的 - 它们从最后一个每日柱获取其值。

out = security("AAPL", "D", close)
Run Code Online (Sandbox Code Playgroud)


Beh*_*udi 5

根据文件

\n
\n

安全功能旨在请求比当前图表时间范围更高的时间范围的数据。在 60 分钟图表上,这意味着请求 240、D、W 或任何更高的时间范围。\n不建议请求低于当前图表时间范围的时间范围的数据,例如 5 分钟的 1 分钟数据图表。这种情况的主要问题是,1 分钟数据的某些部分将不可避免地丢失,因为它不可能将其显示在 5 分钟图表上且不破坏时间轴。在这种情况下,安全部门的行为可能会出乎意料。

\n
\n