如何在Pinescript中为TradingView开发多个时间框架RSI

时间:2019-04-29 08:10:02

标签: pine-script tradingview-api

我正在尝试在交易视图上使用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)

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

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

_5min_rsi = rsi(security(tickerid, "5", src), 14)

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

2 个答案:

答案 0 :(得分:3)

根据documents

<块引用>

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

答案 1 :(得分:0)

在使用security()函数后,我不认为security()函数会以这种方式工作。

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

out = security("AAPL", "1", close)

如果我们将它们设置为相反(分辨率为"D",图表为1m),则所有分钟条都是相同的-它们是从上一个每日获取其值酒吧。

out = security("AAPL", "D", close)