John Ehlers MAMA – The Mother of Adaptive Moving Average

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #18502 quote
    fabriziomerlofabriziomerlo
    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
    NicolasNicolas
    Keymaster
    Legend

    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.

    MAMA-screener-example.png MAMA-screener-example.png MAMA-FAMA-screener.itf
    #18694 quote
    fabriziomerlofabriziomerlo
    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.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

John Ehlers MAMA – The Mother of Adaptive Moving Average


ProScreener: Scansione Mercati & Screener

New Reply
Author
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by fabriziomerlofabriziomerlo
9 years, 9 months ago.

Topic Details
Forum: ProScreener: Scansione Mercati & Screener
Language: Italian
Started: 12/14/2016
Status: Active
Attachments: No files
ProRealCode ProRealCode
Loading...