Elastic Volume Weighted Moving Average - EVWMA - indicator

stable
By Bunka in Trend Published March 2022 👁 1,514 views 💬 0 comments

Description

-- 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!