如何在TradingView Pine脚本中从不同的图表获取每小时RSI?

3
我是一名能翻译文字的助手。
我正在编写一个关于A币种的策略,分辨率为1分钟。现在我需要获取B币种的每小时RSI指标。
我尝试了:
btcusdtHour = security("BITTREX:BTCUSDT", "60", close)
plot(rsi(btcusdtHour, 14))

但是这并没有给我期望的结果:我最终得到的RSI会不断地在接近0和100之间反弹。我错过了什么?
2个回答

3
当你使用security()函数从更高的时间框架获取价格数据时,你最终得到的值并不会经常改变。比如说你获取了60分钟的数据,但是你的图表是10分钟的,这种情况下更高时间框架的数据每6个柱子才会发生一次变化。但是如果你仍然基于较低的时间框架进行计算,结果将会出错。同样的事情也会在你的代码中发生。
btcusdtHour = security("BITTREX:BTCUSDT", "60", close)
plot(rsi(btcusdtHour, 14))

在这里,您使用security()获取每小时价格。但是,您在较低时间框架图表上计算RSI。这样,您会得到一个尖锐的RSI,因为最终您会进行比所需更多的RSI计算。
要解决此问题,请直接使用security()在每小时时间框架上计算RSI,如下所示:
btcusdtHour = security("BITTREX:BTCUSDT", "60", rsi(close, 14))
plot(btcusdtHour)

1

在这里。

//@version=3
study("RSI MTF by PeterO", overlay=false)

rsi_mtf(source,mtf,len) =>
    change_mtf=source-source[mtf]
    up_mtf = rma(max(change_mtf, 0), len*mtf)
    down_mtf = rma(-min(change_mtf, 0), len*mtf)
    rsi_mtf = down_mtf == 0 ? 100 : up_mtf == 0 ? 0 : 100 - (100 / (1 + up_mtf / down_mtf))

lenrsi=input(14, title='lookback of RSI')
mtf_=input(60, title="Higher TimeFrame Multiplier")
plot(rsi_mtf(close,mtf_,lenrsi), color=orange, title='RSI')

1
这里可以加上一些解释。并且,如果我错了,请纠正我,但我不明白这是如何获取与当前图表/证券不同的 RSI?看起来只是在不同时间框架上获取 RSI? - Leigh Bicknell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接