【问题标题】:Counting number of RSI "peaks" while RSI level > 70在 RSI 水平 > 70 时计算 RSI“峰值”的数量
【发布时间】:2020-10-19 20:51:31
【问题描述】:

我想计算 RSI 线在 RSI 保持在 70 以上时产生的“峰值”数量,然后在其中 5 个出现时绘制一个形状(即,5 个出现在低于 70 之前)。

目前的峰值仅定义为自上一柱以来 RSI 上升。

例如,在本例中,计数为 3(不足以触发正在绘制的形状,但只是为了清楚起见)。

一旦等级降至 70 以下,计数将停止/重置;即下一次峰值出现在 RSI 水平 70 以上时将是“1”。

这是我迄今为止尝试过的:

rsiPeaksOver70 = 0
myResult = for i = 1 to 5 by 1
    if rsi <= 70 and rsi[1] >= rsi
        break
    rsiPeaksOver70 := rsiPeaksOver70 + i

plotshape(rsiPeaksOver70, style=shape.xcross, size=size.normal, location=location.bottom)

这是结果...

如果我尝试将其绘制为列,我会得到类似的结果(实际上它并没有增加;列保持相同的大小)。

当前问题:

  1. 由于某种原因,它一次只会尊重一个条件!任何一个标准都独立工作,但是当我添加 and 时,它会丢弃

  2. 如果计数达到 5,我不知道如何仅绘制形状。我尝试在循环底部“返回”结果并将 rsiPeaksOver70 = 5 添加到 plotshape 系列参数,但失败了。

【问题讨论】:

    标签: pine-script


    【解决方案1】:

    这是一个计算 RSI 峰值并在计算目标数后绘制十字的脚本。当 RSI 低于该水平时,计数器会重置。

    我使用 RSI 级别 60 和峰值计数 3,因此更容易获得所需的峰值计数。

    //@version=4
    study("RSI peak count")
    
    _rsiPeaks = 0
    _overboughtLevel = input(title="RSI Level", type=input.float, defval=60, minval=0, maxval=100)
    _rsiPeriod = input(title="RSI Period", type=input.integer, defval=6, minval=1)
    _targetPeaks = input(title="Peaks to count until signal", type=input.integer, defval=3, minval=1, maxval=100)
    _rsi = rsi(close, _rsiPeriod)
    
    hline(_overboughtLevel, title='Overbought', color=color.blue, linestyle=hline.style_dotted)
    
    _rsiPeaks := _rsiPeaks[1]
    if(_rsi[1]<_overboughtLevel)
        _rsiPeaks := 0 // reset counter if we visited under overbought level
    
    _peak = false
    if(_rsi[1]>_overboughtLevel and _rsi[1]>_rsi and _rsi[1]>_rsi[2])
        _rsiPeaks := _rsiPeaks + 1 // previous rsi value was a peak
        _peak := true
    
    
    plotshape(_peak and _rsiPeaks == _targetPeaks ? _rsi : na, offset =-1, style=shape.xcross, color=color.fuchsia, size=size.small, location=location.bottom)
    plot(_rsi)
    

    【讨论】:

    • 酷!这有点像一个循环......没有循环。谢谢你,这对我来说是如此难以捉摸。
    猜你喜欢
    • 2016-11-23
    • 2023-03-13
    • 2017-11-26
    • 1970-01-01
    • 2018-10-16
    • 2020-07-23
    • 2019-11-22
    • 2021-07-22
    • 1970-01-01
    相关资源
    最近更新 更多