在不同的时间范围内更改 RSI 的时间范围

Change Timeframe of an RSI on a different timeframe

大家好,谁能帮我为 RSI 策略设置一个不同的时间框架。例如,我想在 1 小时图表上查看 4 小时时间范围的 RSI。只是想知道这是可能的,如果你能帮我设置它。代码在下面,如果你能告诉我我必须添加什么才能让它工作,那将会很有帮助。提前致谢。

//@version=5
strategy(title="Relative Strength Index", shorttitle="RSI-SMA(f)", overlay=false, initial_capital=100, default_qty_type=strategy.cash, default_qty_value=50, currency=currency.USD, commission_type=strategy.commission.percent, commission_value=0.07)

// Choose MA Type
ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "Bollinger Bands" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

// RSI and MA inputs
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)

// Plotting RSI and SMA
plot(rsi, "RSI", color=color.blue)
plot(rsiMA, "RSI-based MA", color=color.yellow)


// Conditions and Entries
longCondition= ta.crossover(rsi,rsiMA)
if (longCondition)
    strategy.entry('Long', strategy.long)
shortCondition= ta.crossunder(rsi,rsiMA)
if (shortCondition)
    strategy.entry('short', strategy.short)

// Exit Position
strategy.close('Long', when= shortCondition, comment= 'Exit Long')
strategy.close('short', when= longCondition, comment= 'Exit Short')

我制作了可以在较低时间范围内查看的每日移动平均线。

例如,您可以创建一个指标并将其放在 D4h (240) 上。 就像你展示的图片一样。但是如果你想将它与其他逻辑混合,它就不会起作用,因为一切都将基于那个时间范围,而且只基于那个时间范围。

我used/abused这个request.security函数。

这是一个指标示例,它将向您显示 4 小时的收盘价。如果这是您想要的行为,您可以在 2 小时图表上查看它。

//@version=5
indicator("My script", overlay=true)
plot(request.security(syminfo.ticker, "240", close, barmerge.gaps_off, barmerge.lookahead_off))