Пытаюсь разобраться в примере SMA, но не могу найти описания что делает функция Squeeze. Есть ли где ее описание?
Я понимаю, что это как то завязано на пропуск в расчете несуществующих свечей в ds. Что содержится в переменных Ip,Ipp,Ippp
Я понимаю, что это как то завязано на пропуск в расчете несуществующих свечей в ds. Что содержится в переменных Ip,Ipp,Ippp
Код |
---|
--[[Simple Moving Average (SMA) SMA = sum(Pi) / n]] function F_SMA() local sum = {} local it = {p=0, l=0} return function (I, P, VT, ds) if I == 1 then sum = {} it = {p=0, l=0} end if CandleExist(I,ds) then if I~=it.p then it={p=I, l=it.l+1} end local Ip,Ipp,Ippp = Squeeze(it.l,P),Squeeze(it.l-1,P),Squeeze(it.l-P,P) sum[Ip] = (sum[Ipp] or 0) + GetValueEX(it.p,VT,ds) if it.l >= P then return (sum[Ip] - (sum[Ippp] or 0)) / P end end return nil end end |