//Renko Moving Average Filter Regression
///BoxSize = 100
//Average[N,M](price)
//Where M can be set with any of these values, to return the specific moving average calculation:
//0 = SMA
//1 = EMA
//2 = WMA
//3 = Wilder
// --- parameters
// MAType = 0
Series = CustomClose
// priceMAperiod = 10
// ---
//-----------------------------//
// SMA - Simple Moving Average //
//-----------------------------//
IF MAType = 0 THEN
priceMAperiod = MAX(priceMAperiod, 1)
AVG = Average[priceMAperiod](Series)
ENDIF
//----------------------------------//
// EMA - Exponential Moving Average //
//----------------------------------//
IF MAType = 1 THEN
priceMAperiod = MAX(priceMAperiod, 1)
AVG = ExponentialAverage[priceMAperiod](Series)
ENDIF
//-------------------------------//
// WMA - Weighted Moving Average //
//-------------------------------//
IF MAType = 2 THEN
priceMAperiod = MAX(priceMAperiod, 1)
AVG = WeightedAverage[priceMAperiod](Series)
ENDIF
//------------------------------//
// WIMA - Wilder Moving Average //
//------------------------------//
IF MAType = 3 THEN
priceMAperiod = MAX(priceMAperiod, 1)
AVG = WilderAverage[priceMAperiod](Series)
ENDIF
//Boxsize = 100
renkoMax = ROUND(close / boxSize) * boxSize
renkoMin = renkoMax - boxSize
once usema=1
if usema then
once priceMAperiod=10
count=0
sum=0
lastbox=0
for i = 0 to barindex do
if renkomax[i]<>lastbox then
lastbox=renkomax[i]
count=count+1
median=((renkomax[i]+renkomin[i])/2)
sum=sum+median
if count=priceMAperiod+1 then
sum=sum-last
last=median
break
//
endif
endif
next
once avg=undefined
if last<>last[1] then
avg = sum/priceMAperiod
endif
endif
RETURN AVG coloured(255,255,0) style(line, 2) as "Renko Mvg Ave Filter"