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!