Bonjour,
Je recherche un screener avec les données suivantes :
Que le cours en temps réel croise à la hausse la Boll Sup (100 – 2)
Conditions :
Cours > M200
> M150
> M100
> M50
Prix au dessus de la Chikou Span (LS) et du nuage
Capitalisation échangée supérieure à 150 000€ avec affichage dans le screener.
Merci par avance
+ Bandes de Bollinger très compressées en squeeze
Il y a pas mal de conditions qui pourraient ne laisser filtrer que quelques trop peu de signaux, à vérifier ! 😉
Voici le code du screener complet:
// ============================================================
// SCREENER : Croisement haussier Boll Sup (100,2) + Filtres
// Moyennes mobiles, Ichimoku, Capitalisation, Squeeze BB
// ============================================================
// --- Bandes de Bollinger principales (100, 2) ---
BollSup100 = BollingerUp[100](close)
BollInf100 = BollingerDown[100](close)
// --- Condition 1 : Croisement haussier du cours sur Boll Sup (100,2) ---
c1 = close CROSSES OVER BollSup100
// --- Conditions 2 : Cours au-dessus des moyennes mobiles ---
M50 = average[50](close)
M100 = average[100](close)
M150 = average[150](close)
M200 = average[200](close)
c2 = close > M200
c3 = close > M150
c4 = close > M100
c5 = close > M50
// --- Ichimoku : calcul manuel ---
Tenkan = (highest[9](high) + lowest[9](low)) / 2
Kijun = (highest[26](high) + lowest[26](low)) / 2
SSpanA = (Tenkan[26] + Kijun[26]) / 2
SSpanB = (highest[52](high[26]) + lowest[52](low[26])) / 2
// Nuage : borne haute
NuageHaut = max(SSpanA, SSpanB)
// Condition 3 : Prix au-dessus du nuage
c6 = close > NuageHaut
// Condition 4 : Chikou Span (cours actuel projeté -26 bougies) au-dessus du nuage
// Le Chikou = close d'aujourd'hui, qu'on compare au nuage d'il y a 26 bougies
c7 = close > NuageHaut[26]
// --- Capitalisation échangée (Volume x Close) ---
CapEchangee = volume * close
// Condition 5 : Capitalisation échangée > 150 000 €
c8 = CapEchangee > 150000
// --- Squeeze Bollinger (bandes très compressées) ---
// Largeur des BB normalisée sur la moyenne (en %)
BollWidth = (BollSup100 - BollInf100) / average[100](close) * 100
// Squeeze : la largeur actuelle est au plus bas des 20 dernières bougies
SqueezePeriod = 20
c9 = BollWidth <= lowest[SqueezePeriod](BollWidth[1])
// --- Condition globale ---
Condition = c1 AND c2 AND c3 AND c4 AND c5 AND c6 AND c7 AND c8 AND c9
SCREENER[Condition](CapEchangee AS "Cap. Echangée (€)")
Voici les détails de chaque bloc :
- c1 : croisement haussier (CROSSES OVER) du cours sur la Bollinger Supérieure (100, 2 écarts-types). C’est la condition déclenchante principale.
- c2 à c5 : le cours doit être au-dessus des MM simples 50, 100, 150 et 200, vérifiées dans cet ordre.
- c6 : le cours est au-dessus du nuage Ichimoku (Senkou Span A et B calculés manuellement, car ProBuilder n’expose pas directement SenkouSpanA/B comme fonctions natives).
- c7 : la Chikou Span (= close d’aujourd’hui) est au-dessus du nuage d’il y a 26 périodes. C’est la traduction exacte du principe de la Chikou : comparer le cours actuel au nuage décalé en arrière de 26 bougies.
- c8 : capitalisation échangée = volume × cours > 150 000 €. Elle est affichée en colonne de tri dans le screener.
- c9 : squeeze Bollinger — la largeur normalisée des bandes (100, 2) est au niveau le plus bas des 20 dernières bougies, ce qui signifie que les bandes sont en compression maximale récente.
Un point d’attention : la condition c1 (CROSSES OVER) et c9 (squeeze) peuvent sembler contradictoires à première vue — un croisement implique une expansion alors que le squeeze cherche une compression. La logique ici est de détecter l’instant exact où le cours casse la bande supérieure après une période de squeeze, ce qui est un signal de rupture explosive classique. Tu peux retirer c9 si tu veux détecter uniquement la barre de rupture, ou au contraire remplacer c1 par Close>BollSup100 sans croisement si tu acceptes les continuations.
Merci
comment faire pour retirer c9 si je veux détecter uniquement la barre de rupture ?
C’est très simple : il suffit de supprimer les lignes qui définissent et utilisent c9, et de retirer c9 de la condition globale.
// ============================================================
// SCREENER : Croisement haussier Boll Sup (100,2) + Filtres
// Moyennes mobiles, Ichimoku, Capitalisation
// ============================================================
// --- Bandes de Bollinger principales (100, 2) ---
BollSup100 = BollingerUp[100](close)
// --- Condition 1 : Croisement haussier du cours sur Boll Sup (100,2) ---
c1 = close CROSSES OVER BollSup100
// --- Conditions 2 : Cours au-dessus des moyennes mobiles ---
M50 = average[50](close)
M100 = average[100](close)
M150 = average[150](close)
M200 = average[200](close)
c2 = close > M200
c3 = close > M150
c4 = close > M100
c5 = close > M50
// --- Ichimoku : calcul manuel ---
Tenkan = (highest[9](high) + lowest[9](low)) / 2
Kijun = (highest[26](high) + lowest[26](low)) / 2
SSpanA = (Tenkan[26] + Kijun[26]) / 2
SSpanB = (highest[52](high[26]) + lowest[52](low[26])) / 2
// Nuage : borne haute
NuageHaut = max(SSpanA, SSpanB)
// Condition 3 : Prix au-dessus du nuage
c6 = close > NuageHaut
// Condition 4 : Chikou Span au-dessus du nuage d'il y a 26 bougies
c7 = close > NuageHaut[26]
// --- Capitalisation échangée (Volume x Close) ---
CapEchangee = volume * close
// Condition 5 : Capitalisation échangée > 150 000 €
c8 = CapEchangee > 150000
// --- Condition globale ---
Condition = c1 AND c2 AND c3 AND c4 AND c5 AND c6 AND c7 AND c8
SCREENER[Condition](CapEchangee AS "Cap. Echangée (€)")
Le screener détecte maintenant uniquement la bougie exacte où le cours franchit à la hausse la Bollinger supérieure (100, 2), avec toutes les autres conditions maintenues.
C’est super merci beaucoup
avec les autres conditions inchangées
Ci dessous la nouvelle version, c’est la Chikou Span (le cours d’aujourd’hui reporté 26 bougies en arrière) qui croise la Bollinger Supérieure à ce même point temporel décalé. Les deux séries sont cohérentes car décalées du même offset de 26 périodes.
Toutes les autres conditions c2 à c8 restent strictement inchangées.
// ============================================================
// SCREENER : Croisement haussier Chikou Span sur Boll Sup (100,2) + Filtres
// Moyennes mobiles, Ichimoku, Capitalisation
// ============================================================
// --- Bandes de Bollinger principales (100, 2) ---
BollSup100 = BollingerUp[100](close)
// --- Condition 1 : Croisement haussier de la Chikou Span sur Boll Sup (100,2) ---
// Chikou Span = close décalé de 26 périodes en arrière
// On compare donc close[26] à BollSup100[26]
c1 = close[26] CROSSES OVER BollSup100[26]
// --- Conditions 2 : Cours au-dessus des moyennes mobiles ---
M50 = average[50](close)
M100 = average[100](close)
M150 = average[150](close)
M200 = average[200](close)
c2 = close > M200
c3 = close > M150
c4 = close > M100
c5 = close > M50
// --- Ichimoku : calcul manuel ---
Tenkan = (highest[9](high) + lowest[9](low)) / 2
Kijun = (highest[26](high) + lowest[26](low)) / 2
SSpanA = (Tenkan[26] + Kijun[26]) / 2
SSpanB = (highest[52](high[26]) + lowest[52](low[26])) / 2
// Nuage : borne haute
NuageHaut = max(SSpanA, SSpanB)
// Condition 3 : Prix au-dessus du nuage
c6 = close > NuageHaut
// Condition 4 : Chikou Span au-dessus du nuage d'il y a 26 bougies
c7 = close > NuageHaut[26]
// --- Capitalisation échangée (Volume x Close) ---
CapEchangee = volume * close
// Condition 5 : Capitalisation échangée > 150 000 €
c8 = CapEchangee > 150000
// --- Condition globale ---
Condition = c1 AND c2 AND c3 AND c4 AND c5 AND c6 AND c7 AND c8
SCREENER[Condition](CapEchangee AS "Cap. Echangée (€)")