Rebonjour,
Objectif : Détecter les actions qui sortent d’une phase de consolidation avec une cassure validée sur le barre suivant
Conditions principale:
Cassure résistance 20j ou 50j
Volume >1.5x moyenne
Prix > EMA50 > EM 200
RSI >50
ADX > 18
Merci beaucoup
Voici le code du screener, ça ressemble un peu à tes autres demandes récentes 😉
// ============================================================
// SCREENER - Cassure de consolidation validée
// Conditions : résistance 20j/50j, volume, EMA50>EMA200, RSI, ADX
// ============================================================
// --- Paramètres utilisateur ---
p1 = 20 // période résistance courte
p2 = 50 // période résistance longue
// --- Moyennes mobiles ---
ema50 = ExponentialAverage[50](close)
ema200 = ExponentialAverage[200](close)
// --- Cassure validée sur la barre suivante ---
// La bougie J-1 (close[1]) franchit la résistance calculée sur [J-2 .. J-N-1]
// La bougie J (close) confirme en restant au-dessus de J-1
breakRes20 = close[1] > Highest[p1](high[2]) AND close >= close[1]
breakRes50 = close[1] > Highest[p2](high[2]) AND close >= close[1]
breakout = breakRes20 OR breakRes50
// --- Volume J-1 > 1.5x la moyenne 20 barres ---
volMoy = Average[20](volume)
volOK = volume[1] > 1.5 * volMoy[1]
// --- Structure de tendance : Prix > EMA50 > EMA200 ---
trendOK = close > ema50 AND ema50 > ema200
// --- RSI(14) > 50 ---
myRSI = RSI[14](close)
rsiOK = myRSI > 50
// --- ADX(14) > 18 ---
myADX = ADX[14]
adxOK = myADX > 18
// --- Condition globale ---
signal = breakout AND volOK AND trendOK AND rsiOK AND adxOK
SCREENER[signal](myRSI AS "RSI", myADX AS "ADX", (close/ema50-1)*100 AS "% vs EMA50")
Voici la logique détaillée de chaque bloc :
Résistances dynamiques:
- Highest[20](high[2]) et Highest[50](high[2]) calculent le plus haut des 20 ou 50 bougies précédentes en excluant les deux dernières barres, ce qui évite de compter la bougie de cassure elle-même dans son propre niveau de référence.
Validation sur la barre suivante
- La cassure est attribuée à J-1 (close[1] > résistance). La barre courante J sert de confirmation (close >= close[1]). Cela évite les faux signaux sur chandelier non clôturé.
Volume:
- On contrôle le volume de la bougie de cassure (J-1), pas de la bougie de confirmation, car c’est là que l’impulsion doit apparaître.
Tri des résultats:
- Le SCREENER retourne trois colonnes : RSI, ADX et l’écart en % entre le close et l’EMA50, ce qui permet de trier par force de tendance directement dans l’interface PRT.
Deux ajustements possibles selon ton usage :
- Remplace close >= close[1] par close > res20 ou close > res50 si tu veux une confirmation strictement au-dessus de la résistance (plus exigeant).
- Augmente le seuil ADX à 20 ou 25 si tu veux filtrer uniquement les tendances franches.
J’ai une erreur de syntaxe:
La variable suivante n’est pas utilisée dans le programme: res20
La variable suivante n’est pas utilisée dans le programme: res50
Vous pouvez supprimer les lignes 19 et 20.