// RSI MAMA FAMA 27/11/2022
// // MAMA FAMA by Prorealcode Nicolas
//parameters :
// FastLimit = 0.5 Nicolas = 0.25 DID = 0.8 (Lazy Bear)
// SlowLimit = 0.05
// p = 12
Price1 = (High+Low)/2
if(barindex>5) then
Smooth = (4*Price1 + 3*Price1[1] + 2*Price1[2] + Price1[3]) / 10
Detrender = (.0962*Smooth + .5769*Smooth[2] - .5769*Smooth[4] - .0962*Smooth[6])*(.075*Period[1] + .54)
Q1 = (.0962*Detrender + .5769*Detrender[2] - .5769*Detrender[4] - .0962*Detrender[6])*(.075*Period[1] + .54)
I1 = Detrender[3]
jI = (.0962*I1 + .5769*I1[2] - .5769*I1[4] - .0962*I1[6])*(.075*Period[1] + .54)
jQ = (.0962*Q1 + .5769*Q1[2] - .5769*Q1[4] - .0962*Q1[6])*(.075*Period[1] + .54)
I2 = I1 - jQ
Q2 = Q1 + jI
I2 = .2*I2 + .8*I2[1]
Q2 = .2*Q2 + .8*Q2[1]
Re = I2*I2[1] + Q2*Q2[1]
Im = I2*Q2[1] - Q2*I2[1]
Re = .2*Re + .8*Re[1]
Im = .2*Im + .8*Im[1]
If Im <> 0 and Re <> 0 then
Period = 360/ATAN(Im/Re)
endif
If Period > 1.5*Period[1] then
Period = 1.5*Period[1]
endif
If Period < .67*Period[1] then
Period = .67*Period[1]
endif
If Period < 6 then
Period = 6
endif
If Period > 50 then
Period = 50
endif
Period = .2*Period + .8*Period[1]
SmoothPeriod = .33*Period + .67*SmoothPeriod[1]
if(I1<>0) then
Phase = ATAN(Q1 / I1)
endif
DeltaPhase = Phase[1] - Phase
If DeltaPhase < 1 then
DeltaPhase = 1
endif
alpha = FastLimit / DeltaPhase
If alpha < SlowLimit then
alpha = SlowLimit
endif
MAMA = alpha*Price1 + (1 - alpha)*MAMA[1]
FAMA = .5*alpha*MAMA + (1 - .5*alpha)*FAMA[1]
endif
////////////////////////////////////////
mamama = average [p] (MAMA)
mafama = average [p] (FAMA)
////////////////////////////////////////
cc = customclose
RSImama = rsi [p](mama)
RSIfama = rsi [p](fama)
RETURN rsimama as "rsimama" , rsifama as "rsifama", 30 as "30", 70 as "70" , 20 as "20", 80 as "80" // cc as " cc de MAMA ", mamama as " maMAMA " , mafama as " maFAMA " ,MAMA as "MAMA", FAMA as "FAMA" ,