HalfTrend code conversion

Forums ProRealTime English forum ProBuilder support HalfTrend code conversion

Viewing 2 posts - 1 through 2 (of 2 total)
  • #200861
    //@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
        ifnotna(trend[1])andtrend[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”)
    #200865

    Hello, please, thank you <== these are human words frequently used by people when asking a  service.

    HalfTrend indicator is available here: Fifty shades of Half Trend indicator

     

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