【问题标题】:How to get (condition) previous candle high and low如何获得(条件)之前的蜡烛高低
【发布时间】:2022-08-14 10:09:27
【问题描述】:

我正在制作一个显示摆动低点和高点的指标(3 条形图,其中摆动高点的每一侧都有较低的蜡烛,摆动低点的每一侧都有较高的蜡烛)

我做到了,但我想在它被破坏时发出警报。正如您从代码中看到的那样,实际的高点或低点是在摆动形成后产生的。我通过添加 (offset-2) 正确显示摆动。但警报会在实际摆动高/低时触发。

问:如何获得第二个之前的蜡烛高/低?

//@version=5
indicator(title=\'Fractals Alerts\', shorttitle=\'Fractals Alerts\', overlay=true)

n = input.int(title=\'Periods\', defval=2, minval=2)

//High(n-1) < High(n)
//High(n + 1) < High(n)

upFractal = high[n - 1] < high[n] and high[n + 1] < high[n]

//Low(n-1) > Low(n)
//Low(n + 1) > Low(n)

dnFractal = low[n - 1] > low[n] and low[n + 1] > low[n]

//make a shape

plotshape(upFractal, \"High Broken\", shape.xcross, location.abovebar, offset=-2, color=color.new(color.red, 0))
plotshape(dnFractal, \"Low Broken\", shape.xcross, location.belowbar, offset=-2, color=color.new(color.red, 0))

//get value high/low from fractals

upfractalhigh = ta.valuewhen(upFractal, high, 0)
upfractalbroke = (close > upfractalhigh)

//ignore//plotshape(frhitr, \"Fractal High\", shape.cross, location.abovebar, color=color.new(color.green, 0))

//set condition

dnfractallow = ta.valuewhen(dnFractal, low, 0)
dnfractalbroke = (close < dnfractallow)

//Alerts

alertcondition(upfractalbroke, \"high brake\", \"High Broken\")
alertcondition(dnfractalbroke, \"low brake\", \"Low Broken\")

    标签: pine-script trading pinescript-v5 tradingview-api


    【解决方案1】:

    有趣的项目!

    我不确定我是否完全理解你在寻找什么,但我认为我已经能够绘制出之前摆动高点的峰值(或之前摆动低点的低谷)。我用阶梯线绘制了它,您应该可以使用它来触发警报。

    Here's an example.

    我添加了在前一个分形破裂时触发的文本和符号,这样我就可以看到发生了什么。您会发现我也更改了一些变量名称和内容。

    让我知道代码是否有用。

    //@version=5
    indicator(title='Fractals Alerts', shorttitle='Fractals Alerts', overlay=true)
    
    n = input.int(title='Periods', defval=2, minval=2)
    
    upFractal = high[n - 1] < high[n] and high[n + 1] < high[n]
    dnFractal = low[n - 1] > low[n] and low[n + 1] > low[n]
    plotshape(upFractal, "SH", shape.circle, location.abovebar, offset=-2, color=color.new(color.green, 0))
    plotshape(dnFractal, "SL", shape.circle, location.belowbar, offset=-2, color=color.new(color.red, 0))
    
    ufh = ta.valuewhen(upFractal, ta.highest(3), 0)
    dfl = ta.valuewhen(dnFractal, ta.lowest(3), 0)
    
    sh_broke = ta.crossover(high, ufh)
    sl_broke = ta.crossunder(low, dfl), 
    plotshape(sl_broke, "Break Down!", shape.arrowdown, location.belowbar, text="Break!", offset=0, color=color.new(color.black, 0))
    plotshape(sh_broke, "Break Up!", shape.arrowup, location.abovebar, text="Break!", offset=0, color=color.new(color.black, 0))
    
    plot(upFractal ? ufh: na, "High Broken", style=plot.style_stepline, offset=-2, color=color.new(color.green, 0))
    plot(dfl, "Low Broken",style=plot.style_stepline, offset=-2, color=color.new(color.red, 0))
    
    alertcondition(sh_broke, "SH Broken", "SH Broken")
    alertcondition(sl_broke, "SL Broken", "SL Broken")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多