Rajouter : MACD Zéro retard 12/26/9 à mon sceener

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #260909 quote
    HUGO LEVIEILS
    Participant
    Senior

    Bonjour,

    Je me posse la question si c’est possible de rajouter :  MACD Zéro retard 12/26/9 ? avec le signal d’achat à mon Sceener ?

    Voila le code

    Merci 🙏


    // Heikin-Ashi calculation

    once haOpen = open

    haClose = (open + close + high + low) / 4

    if barindex > 0 then

    haOpen = (haOpen[1] + haClose[1]) / 2

    endif



    // Indicators

    tenkan = TenkanSen[9,26,52]

    kijun = KijunSen[9,26,52]

    sma20 = average[20](close)




    // haOpen below all lines, haClose above all lines

    cond = haOpen < tenkan AND haOpen < kijun AND haOpen < sma20 AND haOpen

    cond = cond AND haClose > tenkan AND haClose > kijun AND haClose > sma20 AND haClose



    SCREENER[cond]

    #260928 quote
    AI-vy
    Moderator
    Junior

    Oui, tu peux ajouter un filtre de MACD Zéro retard 12/26/9 avec signal d’achat à ton ProScreener.

    Logique proposée (signal d’achat MACD Zéro retard) :

    • On calcule un MACD “zéro retard” en travaillant directement sur les prix (Heikin Ashi possibles, j’y reviens plus bas).
    • On définit le signal d’achat par un croisement haussier du MACD au-dessus de sa ligne de signal ou de la ligne 0 (à adapter à ta préférence).

    Ci-dessous, j’intègre un MACD 12/26/9 classique (moyennes exponentielles) et un signal d’achat basé sur le croisement haussier du MACD au-dessus de sa ligne de signal. Tu peux ajuster la condition selon ce que tu appelles exactement “zéro retard” (par ex. croisement avec 0 au lieu de la ligne de signal).

    Code ProScreener avec MACD 12/26/9 + signal d’achat :

    // =========================
    // Heikin-Ashi calculation
    // =========================
    ONCE haOpen = open
    haClose = (open + close + high + low) / 4
    
    IF barindex > 0 THEN
     haOpen = (haOpen[1] + haClose[1]) / 2
    ENDIF
    
    // =========================
    // Ichimoku + SMA
    // =========================
    tenkan = TenkanSen[9,26,52]
    kijun  = KijunSen[9,26,52]
    sma20  = average[20](close)
    
    // =========================
    // Condition Heikin Ashi
    // haOpen sous toutes les lignes
    // haClose au-dessus de toutes les lignes
    // =========================
    cond = haOpen < tenkan AND haOpen < kijun AND haOpen < sma20 AND haOpen
    cond = cond AND haClose > tenkan AND haClose > kijun AND haClose > sma20 AND haClose
    
    // =========================
    // MACD 0-lag 12/26/9 (classique)
    // =========================
    // Si tu veux un MACD basé sur les bougies Heikin-Ashi,
    // remplace "close" par "haClose" dans les EMA ci-dessous.
    
    fastEMA = ExponentialAverage[12](close)
    slowEMA = ExponentialAverage[26](close)
    xmacd    = fastEMA - slowEMA
    signal  = ExponentialAverage[9](macd)
    
    // =========================
    // Signal d'achat MACD
    // Croisement haussier MACD > signal
    // =========================
    achatMACD = xmacd CROSSES OVER signal
    
    // Variante : croisement haussier de la ligne 0
    // achatMACD = xmacd CROSSES OVER 0
    
    // =========================
    // Condition finale du Screener
    // =========================
    cond = cond AND achatMACD
    
    SCREENER[cond]
    

    Explications rapides :

    • fastEMA et slowEMA : EMA 12 et 26, base du MACD.
    • macd = fastEMA − slowEMA.
    • signal : EMA 9 du MACD.
    • achatMACD : croisement haussier du MACD au-dessus de sa ligne de signal (ou de 0 selon la variante).
    • cond combine tes conditions Heikin Ashi / Ichimoku / SMA20 avec le signal d’achat MACD.

    Si par “MACD Zéro retard” tu utilises une autre formule précise (par exemple une version spécifique partagée sur ProRealCode), remplace simplement la partie de calcul macd / signal par cette variante et conserve le test de croisement achatMACD.

    Iván González and HUGO LEVIEILS thanked this post
    #260995 quote
    HUGO LEVIEILS
    Participant
    Senior

    Merci 🙏


    #260996 quote
    HUGO LEVIEILS
    Participant
    Senior

    Bonjour

    Il y a une erreur au code , ligne 34

    #261019 quote
    JS
    Participant
    Veteran

    Salut, “macd” est un mot-clé réservé dans le code PRT et ne peut donc pas être utilisé comme nom de variable.

    Une solution consiste à ajouter la lettre “x” devant “macd”…

    xmacd = fastEMA – slowEMA (line 34)

    achatMACD = xmacd CROSSES OVER signal (line 42)

    Nicolas and HUGO LEVIEILS thanked this post
    #261031 quote
    Nicolas
    Keymaster
    Legend

    J’ai corrigé le code de AI-vy, cependant voici une autre version avec le “vrai” code du MACD Zéro retard:

    // ── Paramètres MACD Zéro Retard ──────────────────────────────────
    short   = 12
    long    = 26
    signal  = 9
    
    
    // ── Heikin-Ashi calculation ──────────────────────────────────────
    once haOpen = open
    haClose = (open + close + high + low) / 4
    if barindex > 0 then
        haOpen = (haOpen[1] + haClose[1]) / 2
    endif
    
    
    // ── Indicators ───────────────────────────────────────────────────
    tenkan = TenkanSen[9,26,52]
    kijun  = KijunSen[9,26,52]
    sma20  = average[20](close)
    
    
    // ── MACD Zéro Retard 12/26/9 ────────────────────────────────────
    EMAshort1      = exponentialaverage[short](close)
    EMAshort2      = exponentialaverage[short](EMAshort1)
    ZeroLagShort   = EMAshort1 + (EMAshort1 - EMAshort2)
    
    
    EMAlong1       = exponentialaverage[long](close)
    EMAlong2       = exponentialaverage[long](EMAlong1)
    ZeroLagLong    = EMAlong1 + (EMAlong1 - EMAlong2)
    
    
    ZeroLagMACD    = ZeroLagShort - ZeroLagLong
    
    
    signal1        = ExponentialAverage[signal](ZeroLagMACD)
    signal2        = ExponentialAverage[signal](signal1)
    SignalMACD     = signal1 + (signal1 - signal2)
    
    
    // Signal d'achat MACD : croisement haussier ZeroLagMACD > SignalMACD
    macdBuy = ZeroLagMACD crosses over SignalMACD
    
    
    // ── Conditions Heikin-Ashi + Ichimoku + SMA ──────────────────────
    cond = haOpen < tenkan AND haOpen < kijun AND haOpen < sma20
    cond = cond AND haClose > tenkan AND haClose > kijun AND haClose > sma20
    
    
    // ── Condition finale ─────────────────────────────────────────────
    cond = cond AND macdBuy
    
    
    SCREENER[cond]
    

    Voici ce qui a été ajouté et pourquoi :

    • Les variables short, long, signal permettent de modifier facilement les périodes 12/26/9 sans toucher au calcul.
    • ZeroLagShort et ZeroLagLong utilisent la méthode Double EMA (EMA – EMA de EMA) pour annuler le retard.
    • SignalMACD est lui aussi calculé en Zéro Retard avec la même logique appliquée à la ligne MACD.
    • macdBuy déclenche uniquement quand la ligne MACD Zéro Retard croise au-dessus de la ligne Signal (momentum haussier confirmé).
    • Cette condition est combinée en AND avec tes conditions Heikin-Ashi / Ichimoku / SMA20 existantes, donc toutes les conditions doivent être vraies simultanément pour qu’un titre ressorte.
    HUGO LEVIEILS thanked this post
    #261034 quote
    HUGO LEVIEILS
    Participant
    Senior

    Merci Beaucoup, cest sympa 🙏

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

Rajouter : MACD Zéro retard 12/26/9 à mon sceener


ProScreener : Scanners de Marché & Détection

New Reply
Author
Summary

This topic contains 6 replies,
has 4 voices, and was last updated by HUGO LEVIEILS
3 weeks, 6 days ago.

Topic Details
Forum: ProScreener : Scanners de Marché & Détection
Language: French
Started: 05/07/2026
Status: Active
Attachments: No files
Logo Logo
Loading...