John Ehlers MAMA – The Mother of Adaptive Moving Average

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #18502 quote
    fabriziomerlo
    Participant
    New

    Buongiorno Nicolas,

    come faccio a trasformare questo interessantissimo indicatore in uno screener long/short testando un incrocio di 2 medie mobili?

     

    Grazie,

    Fabrizio

    #18524 quote
    Nicolas
    Keymaster
    Master

    Di seguito riportiamo il codice screener della traversata MAMA sopra o sotto il FRAMA, secondo la vostra richiesta.

    Price = (High+Low)/2
    Fastlimit = 0.5
    SlowLimit = 0.05
    
    if(barindex>5) then
    Smooth = (4*Price + 3*Price[1] + 2*Price[2] + Price[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*Price + (1 - alpha)*MAMA[1]
    FAMA = .5*alpha*MAMA + (1 - .5*alpha)*FAMA[1]
    
    endif
    
    condition = MAMA crosses over FAMA or MAMA crosses under FAMA 
    
    SCREENER [condition]

    Il file di codice è anche collegato a questo post. Godere.

    #18694 quote
    fabriziomerlo
    Participant
    New

    Grazie Mille;

    Buona serata,

    Fabrizio

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.

John Ehlers MAMA – The Mother of Adaptive Moving Average


Supporto ProScreener

New Reply
Author
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by fabriziomerlo
9 years, 1 month ago.

Topic Details
Forum: Supporto ProScreener
Language: Italian
Started: 12/14/2016
Status: Active
Attachments: No files
Logo Logo
Loading...