HalfTrend everget Tading view

Forums ProRealTime English forum ProBuilder support HalfTrend everget Tading view

Viewing 2 posts - 1 through 2 (of 2 total)
  • #173496

    //@version=4
    // Copyright (c) 2021-present, Alex Orekhov (everget)
    study(“HalfTrend”, overlay=true)

    amplitude = input(title=”Amplitude”, defval=2)
    channelDeviation = input(title=”Channel Deviation”, defval=2)
    showArrows = input(title=”Show Arrows”, defval=true)
    showChannels = input(title=”Show Channels”, defval=true)

    var int trend = 0
    var int nextTrend = 0
    var float maxLowPrice = nz(low[1], low)
    var float minHighPrice = nz(high[1], high)

    var float up = 0.0
    var float down = 0.0
    float atrHigh = 0.0
    float atrLow = 0.0
    float arrowUp = na
    float arrowDown = na

    atr2 = atr(100) / 2
    dev = channelDeviation * atr2

    highPrice = high[abs(highestbars(amplitude))]
    lowPrice = low[abs(lowestbars(amplitude))]
    highma = sma(high, amplitude)
    lowma = sma(low, amplitude)

    if nextTrend == 1
    maxLowPrice := max(lowPrice, maxLowPrice)

    if highma < maxLowPrice and close < nz(low[1], low) trend := 1 nextTrend := 0 minHighPrice := highPrice else minHighPrice := min(highPrice, minHighPrice) if lowma > minHighPrice and close > nz(high[1], high)
    trend := 0
    nextTrend := 1
    maxLowPrice := lowPrice

    if trend == 0
    if not na(trend[1]) and trend[1] != 0
    up := na(down[1]) ? down : down[1]
    arrowUp := up – atr2
    else
    up := na(up[1]) ? maxLowPrice : max(maxLowPrice, up[1])
    atrHigh := up + dev
    atrLow := up – dev
    else
    if not na(trend[1]) and trend[1] != 1
    down := na(up[1]) ? up : up[1]
    arrowDown := down + atr2
    else
    down := na(down[1]) ? minHighPrice : min(minHighPrice, down[1])
    atrHigh := down + dev
    atrLow := down – dev

    ht = trend == 0 ? up : down

    var color buyColor = color.blue
    var color sellColor = color.red

    htColor = trend == 0 ? buyColor : sellColor
    htPlot = plot(ht, title=”HalfTrend”, linewidth=2, color=htColor)

    atrHighPlot = plot(showChannels ? atrHigh : na, title=”ATR High”, style=plot.style_circles, color=sellColor)
    atrLowPlot = plot(showChannels ? atrLow : na, title=”ATR Low”, style=plot.style_circles, color=buyColor)

    fill(htPlot, atrHighPlot, title=”ATR High Ribbon”, color=sellColor)
    fill(htPlot, atrLowPlot, title=”ATR Low Ribbon”, color=buyColor)

    buySignal = not na(arrowUp) and (trend == 0 and trend[1] == 1)
    sellSignal = not na(arrowDown) and (trend == 1 and trend[1] == 0)

    plotshape(showArrows and buySignal ? atrLow : na, title=”Arrow Up”, style=shape.triangleup, location=location.absolute, size=size.tiny, color=buyColor)
    plotshape(showArrows and sellSignal ? atrHigh : na, title=”Arrow Down”, style=shape.triangledown, location=location.absolute, size=size.tiny, color=sellColor)

    alertcondition(buySignal, title=”Alert: HalfTrend Buy”, message=”HalfTrend Buy”)
    alertcondition(sellSignal, title=”Alert: HalfTrend Sell”, message=”HalfTrend Sell”)

    #173498

    What is your question?

    Do not double post. Ask your question only once and only in one forum. All double posts will be deleted anyway so posting the same question multiple times will just be wasting your own time and will not get you an answer any quicker. Double posting just creates confusion in the forums.

    Thank you 🙂

     

Viewing 2 posts - 1 through 2 (of 2 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login