Elastic Volume Weighted Moving Average - EVWMA - indicator
stableDescription
-- Author of haasscript version: Bunka
-- Elastic Volume Weighted Moving Average - EVWMA - indicator - [LazyBear]
HaasScript
-- Port to haasscript version: Bunka
-- Elastic Volume Weighted Moving Average - EVWMA - [LazyBear]
local h = HighPrices()
local l = LowPrices()
local c = ClosePrices()
local v = GetVolume()
local length = Input("length",20)
OptimizedForInterval(
0,
function()
local nbfs = ArraySum(Grab(v,0,length))
local function calc_evwma_high(price, length, nb_floating_shares)
local prev_data_high = Load("data_high", h)
local data_high = Grab((prev_data_high * (nb_floating_shares - v) / nb_floating_shares) + (v * price / nb_floating_shares),0,1)
Save("data_high",Grab(data_high,0,1))
return Grab(data_high,0,1)
end
local function calc_evwma_close(price, length, nb_floating_shares)
local prev_data = Load("data", c)
local data = Grab((prev_data * (nb_floating_shares - v) / nb_floating_shares) + (v * price / nb_floating_shares),0,1)
Save("data",Grab(data,0,1))
return Grab(data,0,1)
end
local function calc_evwma_low(price, length, nb_floating_shares)
local prev_data_low = Load("data_low", l)
local data_low = Grab((prev_data_low * (nb_floating_shares - v) / nb_floating_shares) + (v * price / nb_floating_shares),0,1)
Save("data_low",Grab(data_low,0,1))
return Grab(data_low,0,1)
end
local evwma_h = calc_evwma_high(h, length, nbfs)
local evwma_c = calc_evwma_close(c, length, nbfs)
local evwma_l = calc_evwma_low(l, length, nbfs)
Plot(0,"evwma+",evwma_h,Green)
Plot(0,"evwma",evwma_c,Cyan)
Plot(0,"evwma-",evwma_l, Red)
end
)
0 Comments
Sign in to leave a comment.
No comments yet. Be the first!