AlphaTrend indicator

stable
By Bunka in Trend Published August 2022 👁 1,723 views 💬 0 comments

Description

- AlphaTrend indicator (by Kivanc Ozbilgic - TV) - HaasScript version by Bunka Yet another "supertrend" indicator
HaasScript
-- AlphaTrend indicator (by author Kivanc Ozbilgic (TV))
-- HaasScript version by Bunka

DefineCommand("AlphaTrend","AlphaTrend indicator")

local interval = DefineParameter(NumberType,"AlphaTrend interval", "AlphaTrend interval", false, 0)

local coeff = DefineParameter(NumberType, "AlphaTrend Multiplier", "AlphaTrend Multiplier", false, 1)
local AP = DefineParameter(NumberType, "AlphaTrend length", "AlphaTrend length", false, 14)
local novolumedata = DefineParameter(BooleanType, "Change calculation (no volume data)?", "Change calculation (no volume data)?", false, false)

local market = DefineParameter(StringType, "AlphaTrend Market", "AlphaTrendMarket", false, PriceMarket())

local plot_or_not = DefineParameter(BooleanType, "plot AlphaTrend", "enable or disable AlphaTrend plot", false, true)


OptimizedForInterval(
    interval,
    function()
        local h = HighPrices(interval,true,market)
        local l = LowPrices(interval,true,market)
        local c = ClosePrices(interval,true,market)
        local v = GetVolume(interval,true,market)

        local atr = SMA(TRANGE(h,l,c), AP)
        local src = c
        --local novolumedata = Input('Change calculation (no volume data)?', false)
        local upT = l - atr * coeff
        local downT = h + atr * coeff

        local AlphaTrend = Load("AlphaTrend",HNC(AP+1, ArrayGet(c,1)))
        AlphaTrend = ArrayUnshift(AlphaTrend,IfElseIf(IfElse(novolumedata, RSI(c,AP) >= 50, MFI(h,l,c,v,AP) >= 50) 
            and upT > ArrayGet(AlphaTrend,1), downT < ArrayGet(AlphaTrend,1), upT, downT, ArrayGet(AlphaTrend,1)))
        AlphaTrend = ArrayPop(AlphaTrend)

        if plot_or_not then 
             Plot(0,"AlphaTrend", AlphaTrend[1], Cyan)
        end    

        local results = {
            AlphaTrend = AlphaTrend,
            }

        DefineOutput(ListDynamicType, results, 'AlphaTrend')
        DefineOutputIndex(1,ListNumberType,"AlphaTrend","AlphaTrend")

    end
)

0 Comments

Sign in to leave a comment.

No comments yet. Be the first!