Screener momentum ProRealTime : Force Relative, EMA, RSI, MACD, ADX

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #262025 quote
    OURS95
    Participant
    Senior

    Bonjour ,

    Screener ayant pour objectif identifier les valeurs déjà fortes qui continuent d’accélérer


    Conditions principales:

    EMA20>EMA50>EMA200

    RSI>55

    MACD Positif

    ADX >20

    Volume en accélération

    Cassure plus haut 20 jours

    Force relative positive



    Merci par avance


    Domi

    #262028 quote
    Nicolas
    Keymaster
    Legend

    Ci-dessous le code du screener, par contre pour la force relative je vais faire une deuxième version.

    // ============================================================
    // SCREENER - MOMENTUM ACCELERATION
    // Valeurs fortes qui continuent d'accélérer
    // ============================================================
    
    
    // --- Paramètres ajustables ---
    emaFastP  = 20
    emaMidP   = 50
    emaSlowP  = 200
    rsiPeriod = 14
    adxPeriod = 14
    volPeriod = 20
    breakoutP = 20
    
    
    // --- 1. Alignement des EMA (tendance haussière structurelle) ---
    ema20  = ExponentialAverage[emaFastP](close)
    ema50  = ExponentialAverage[emaMidP](close)
    ema200 = ExponentialAverage[emaSlowP](close)
    
    
    condEma = (ema20 > ema50) AND (ema50 > ema200)
    
    
    // --- 2. RSI > 55 (momentum positif) ---
    myRSI   = RSI[rsiPeriod](close)
    condRSI = myRSI > 55
    
    
    // --- 3. MACD Line > 0 (momentum haussier confirmé) ---
    myMacdLine = MACDLine[12,26,9](close)
    condMACD   = myMacdLine > 0
    
    
    // --- 4. ADX > 20 (tendance directionnelle confirmée) ---
    myADX   = ADX[adxPeriod]
    condADX = myADX > 20
    
    
    // --- 5. Volume en accélération ---
    avgVol  = Average[volPeriod](volume)
    condVol = (volume > avgVol) AND (volume > volume[1])
    
    
    // --- 6. Cassure au-dessus du plus haut des 20 séances précédentes ---
    prevHigh20 = Highest[breakoutP](high[1])
    condBreak  = high > prevHigh20
    
    
    // --- 7. Force relative positive ---
    // Performance du titre sur 20j vs dérive de son EMA200 (proxy robuste)
    perfTitre = (close - close[breakoutP]) / close[breakoutP] * 100
    perfEma   = (ema200 - ema200[breakoutP]) / ema200[breakoutP] * 100
    condFR    = perfTitre > perfEma
    
    
    // --- Condition globale ---
    condAll = condEma AND condRSI AND condMACD AND condADX AND condVol AND condBreak AND condFR
    
    
    // --- Sortie Screener ---
    SCREENER[condAll](myRSI AS "RSI14", myMacdLine AS "MACD Line", myADX AS "ADX14", volume/avgVol AS "VolRatio", perfTitre AS "Perf20j%")
    

    Voici le détail de chaque condition et les choix de conception.

    Condition 1 – Alignement EMA20 > EMA50 > EMA200 : c’est le filtre de tendance de fond. Les trois moyennes mobiles exponentielles doivent être parfaitement empilées pour garantir que la valeur est structurellement haussière sur les trois horizons (court, moyen, long terme).

    Condition 2 – RSI > 55 : seuil volontairement relevé à 55 plutôt que 50 pour éliminer les valeurs tièdes. On cherche un momentum réel et déjà établi. En dessous de 70 pour ne pas filtrer les valeurs qui ont encore de la marge.

    Condition 3 – MACDLine > 0 : on utilise la ligne MACD (différence des deux EMA) et non le simple histogramme, ce qui est plus stable. Elle doit être au-dessus de zéro, signe que l’EMA rapide domine franchement l’EMA lente.

    Condition 4 – ADX > 20 : seuil classique qui confirme une tendance directionnelle active. Sans cela, un titre peut cocher toutes les autres cases dans un marché latéral.

    Condition 5 – Volume en accélération : double filtre. Le volume de la séance doit être supérieur à sa moyenne sur 20 séances ET supérieur à la séance précédente. Cela capture les accélérations récentes et pas juste un volume structurellement élevé.

    Condition 6 – Cassure du plus haut des 20 séances précédentes : on compare le high actuel au highest calculé sur high[1] (séances passées uniquement), ce qui évite l’auto-référencement. C’est le signal technique de la cassure.

    Condition 7 – Force relative positive : sans utiliser EQUITYFRAME (qui nécessiterait de fixer un indice de référence), on compare la performance du titre sur 20 jours à la dérive de sa propre EMA200 sur la même période. Si le titre monte plus vite que sa tendance longue, il surperforme. Pour une force relative exacte vs un indice (CAC40, S&P500, etc.), il suffit de remplacer ce bloc par le snippet EQUITYFRAME présenté en commentaire ci-dessous.

    Les colonnes affichées dans le screener sont RSI14, MACD Line, ADX14, le ratio Volume/Moyenne (VolRatio) et la performance sur 20 jours en %, ce qui permet de trier et classer les valeurs les plus fortes d’un coup d’œil.

    #262029 quote
    Nicolas
    Keymaster
    Legend

    Voici la version avec la “vrai” force relative calculé avec la comparaison sur un indice à choisir dans le code, voir explications ci-dessous.

    // ============================================================
    // SCREENER - MOMENTUM ACCELERATION + FORCE RELATIVE REELLE
    // Valeurs fortes qui continuent d'accélérer
    // ============================================================
    // CONFIGURATION OBLIGATOIRE :
    // Ligne EQUITYFRAME : remplacez le marché et le ticker de l'indice
    // selon votre liste de screening (voir guide ci-dessous)
    // ============================================================
    
    
    // --- Paramètres ajustables ---
    emaFastP  = 20
    emaMidP   = 50
    emaSlowP  = 200
    rsiPeriod = 14
    adxPeriod = 14
    volPeriod = 20
    breakoutP = 20
    frPeriod  = 20
    
    
    // ============================================================
    // BLOC FORCE RELATIVE - EQUITYFRAME
    // Capturez le close du titre AVANT de charger l'indice
    // ============================================================
    closeTitre = close
    
    
    // >>> ADAPTEZ CES DEUX LIGNES A VOTRE MARCHE <<<
    // Exemples : ("Indices Euronext","PXI") pour CAC/Euronext
    //            ("Indices - European","DAX") pour DAX
    //            ("Indices - US","SPX") pour S&P500
    EQUITYFRAME("Indices Euronext","PXI")
    closeIndice = close
    EQUITYFRAME(default)
    
    
    // Ratio titre/indice normalisé
    ratio = (closeTitre / closeIndice) * 100
    
    
    // Force relative : variation du ratio sur frPeriod séances
    forceRelative = ratio - ratio[frPeriod]
    
    
    // Condition : force relative positive ET en progression
    avgFR  = Average[10](forceRelative)
    condFR = forceRelative > 0 AND forceRelative > avgFR
    
    
    // ============================================================
    // CONDITION 1 - Alignement EMA (structure haussière)
    // ============================================================
    ema20  = ExponentialAverage[emaFastP](closeTitre)
    ema50  = ExponentialAverage[emaMidP](closeTitre)
    ema200 = ExponentialAverage[emaSlowP](closeTitre)
    
    
    condEma = (ema20 > ema50) AND (ema50 > ema200)
    
    
    // ============================================================
    // CONDITION 2 - RSI > 55 (momentum positif établi)
    // ============================================================
    myRSI   = RSI[rsiPeriod](closeTitre)
    condRSI = myRSI > 55
    
    
    // ============================================================
    // CONDITION 3 - MACD Line > 0 (EMA rapide domine EMA lente)
    // ============================================================
    myMacdLine = MACDLine[12,26,9](closeTitre)
    condMACD   = myMacdLine > 0
    
    
    // ============================================================
    // CONDITION 4 - ADX > 20 (tendance directionnelle active)
    // ============================================================
    myADX   = ADX[adxPeriod]
    condADX = myADX > 20
    
    
    // ============================================================
    // CONDITION 5 - Volume en accélération
    // ============================================================
    avgVol  = Average[volPeriod](volume)
    condVol = (volume > avgVol) AND (volume > volume[1])
    
    
    // ============================================================
    // CONDITION 6 - Cassure du plus haut des 20 séances précédentes
    // ============================================================
    prevHigh20 = Highest[breakoutP](high[1])
    condBreak  = high > prevHigh20
    
    
    // ============================================================
    // CONDITION GLOBALE
    // ============================================================
    condAll = condEma AND condRSI AND condMACD AND condADX AND condVol AND condBreak AND condFR
    
    
    // ============================================================
    // SORTIE SCREENER
    // ============================================================
    SCREENER[condAll](myRSI AS "RSI14", myMacdLine AS "MACD Line", myADX AS "ADX14", volume/avgVol AS "Vol Ratio", forceRelative AS "Force Relative")
    

    GUIDE DE CONFIGURATION ET D’UTILISATION

    ETAPE 1 – Choisir le bon indice de référence avec EQUITYFRAME

    C’est la seule ligne que vous devrez adapter à chaque usage. La contrainte de ProRealTime est que l’indice de référence doit appartenir au même marché que la liste scannée. Voici les combinaisons les plus courantes :

    • Actions françaises (SRD, CAC) : EQUITYFRAME(“Indices Euronext”,”PXI”) – PXI est le code PRT du CAC 40
    • Actions européennes larges : EQUITYFRAME(“Indices – European”,”STOXX50E”)
    • Actions allemandes : EQUITYFRAME(“Indices – European”,”DAX”)
    • Actions US (S&P500) : EQUITYFRAME(“Indices – US”,”SPX”)
    • Actions US (Nasdaq) : EQUITYFRAME(“Indices – US”,”CCMP”)

    Pour trouver le bon ticker d’un indice dans PRT : ouvrez un graphique, tapez le nom de l’indice dans la barre de recherche, notez le code exact qui s’affiche, et utilisez-le tel quel entre guillemets.

    ETAPE 2 – Choisir la bonne liste dans le ProScreener

    Dans l’interface du ProScreener, le champ “Liste d’instruments” doit correspondre au marché de l’EQUITYFRAME. Si vous scannez “Actions France SRD”, l’indice doit être sur “Indices Euronext”. Si vous scannez une watchlist personnelle, vérifiez que tous les titres appartiennent au même marché que l’indice choisi : EQUITYFRAME ne permet pas de comparaisons cross-marché.

    ETAPE 3 – Régler la périodicité

    Le screener est conçu pour fonctionner en données journalières (Daily). C’est la périodicité à sélectionner dans le menu de votre ProScreener. En intraday, les EMA200 et les cassures 20 jours n’auraient pas de sens. En hebdomadaire, vous pouvez l’utiliser mais il faudrait alors adapter breakoutP à 4 (4 semaines au lieu de 20 jours).

    ETAPE 4 – Comprendre les colonnes de résultat

    Le screener affiche 5 colonnes pour chaque valeur retenue :

    • RSI14 : la valeur du RSI. Idéalement entre 55 et 70. Au-dessus de 70, la valeur est techniquement suracheté à court terme, à surveiller.
    • MACD Line : la valeur de la ligne MACD. Plus elle est haute et positive, plus le momentum est fort.
    • ADX14 : la force de la tendance. Entre 20 et 25 = tendance naissante. Au-dessus de 30 = tendance forte. Au-dessus de 40 = tendance très puissante.
    • Vol Ratio : le rapport volume du jour / moyenne 20 jours. Une valeur de 1.5 signifie que le volume est 50% au-dessus de la moyenne. Privilégiez les valeurs > 1.3 au minimum.
    • Force Relative : la variation du ratio titre/indice sur 20 séances. Une valeur positive et croissante confirme que le titre surperforme son indice de référence. C’est le filtre qualité final.

    ETAPE 5 – Trier et prioriser les résultats

    Une fois le screener lancé, cliquez sur l’en-tête de colonne “Force Relative” pour trier par ordre décroissant : vous obtenez en tête les valeurs qui surperforment le plus leur indice tout en cochant toutes les conditions de momentum. Vous pouvez également trier par “ADX14” pour mettre en avant les tendances les plus directionnelles, ou par “Vol Ratio” pour repérer les accélérations volumétriques les plus significatives.

    ETAPE 6 – Ajustements fins selon votre style

    • Le screener est délibérément strict (7 conditions simultanées). En marché peu directionnel ou en phase de consolidation, il peut renvoyer peu de résultats. C’est normal : il est calibré pour ne ressortir que les valeurs les plus convaincantes.
    • Pour l’élargir : abaissez le RSI à 52, l’ADX à 18, ou supprimez condBreak si vous voulez capturer des valeurs encore proches du sommet sans l’avoir cassé.
    • Pour le resserrer davantage : montez le RSI à 60, l’ADX à 25, et augmentez frPeriod à 30 pour une force relative calculée sur 6 semaines au lieu de 4.


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

Screener momentum ProRealTime : Force Relative, EMA, RSI, MACD, ADX


ProScreener : Scanners de Marché & Détection

New Reply
Author
author-avatar
OURS95 @ours95 Participant
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by Nicolas
1 week, 1 day ago.

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