Existe t-il unmoyen d’avoir un signal sur les valeurs qui atteignent le plus bas de l’année? Merci
Oui, c’est possible, que ce soit via un indicateur (signal visuel sur le graphique) ou via un ProScreener (liste des valeurs en plus bas annuel).
Principe général :
- On calcule le plus bas des 252 dernières séances (environ 1 an de bourse).
- On teste si le plus bas de la bougie courante est égal à ce plus bas annuel.
- Si oui, on génère un signal (flèche, couleur, ou sélection dans un screener).
1) Indicateur : signal quand le plus bas annuel est touché
// Paramètre : nombre de jours pour "1 an" (adapter si besoin)
DEFPARAM CumulateOrders = False
// Plus bas sur 252 périodes (1 an de bourse environ)
period = 252
lowestYear = Lowest[period](Low)
// Condition : la bougie courante fait un nouveau plus bas annuel
newYearLow = (Low = lowestYear) AND (BarIndex >= period)
// Affichage sur le graphique : flèche sous la bougie
IF newYearLow THEN
// Vous pouvez adapter la valeur du signal pour l'affichage
signal = Low - (AverageTrueRange[14](Close) * 0.5)
ELSE
signal = Undefined
ENDIF
RETURN signal AS "Plus bas annuel"
Logique de l’indicateur :
- lowestYear mémorise le plus bas des 252 dernières bougies.
- newYearLow est vrai uniquement si le Low actuel correspond à ce plus bas annuel.
- On renvoie une valeur légèrement sous le plus bas pour afficher un marqueur sur la bougie qui touche ce plus bas annuel.
2) ProScreener : détecter toutes les valeurs au plus bas de l’année
// Screener : valeurs qui touchent un plus bas annuel
period = 252
lowestYear = Lowest[period](Low)
// Condition : nouveau plus bas sur 1 an
newYearLow = (Low = lowestYear) AND (BarIndex >= period)
IF newYearLow THEN
SCREENER[newYearLow](LowestYear)
ENDIF
Logique du screener :
- Pour chaque titre de votre liste, on calcule le plus bas sur 252 séances.
- On filtre uniquement les titres pour lesquels Low == lowestYear aujourd’hui.
- La colonne du screener peut afficher lowestYear ou un score, au choix.
Adaptations possibles :
- Pour un vrai plus bas de l’année calendaire (depuis le 1er janvier), il faut remplacer la logique par un calcul qui repart du début d’année (exige du code supplémentaire avec Year et Month, etc.).
- Vous pouvez aussi élargir le critère (par ex. plus bas sur 126 jours pour ~6 mois).
Voilà:
Timeframe(default)
N = 52
Timeframe(Weekly)
LowestPrice = lowest[N](low[1])
Timeframe(default)
Condition = (low <= LowestPrice)
SCREENER[Condition]
Bonjour, Le sreener n’affiche que des petites valeurs aucune grande capitalisation. Que faire? Merci
Le code n’effectue aucune vérification de la capitalisation boursière.
En fait, la capitalisation boursière n’est même pas disponible.
Dans cette version, vous pouvez sélectionner le volume de transactions, qui doit être supérieur à une certaine valeur:
Timeframe(default)
N = 52
Timeframe(Weekly)
LowestPrice = lowest[N](low[1])
Timeframe(default)
Condition = (low <= LowestPrice) AND (Volume > 10000) //ou 100000, etc...
SCREENER[Condition]
On pourrait aussi utiliser une notion de prix de l’action pour filtre, exemple avec le paramètre PrixMini , à modifier à convenance:
PrixMini = 100 //prix minimum des actions à filtrer
Timeframe(default)
N = 52
Timeframe(Weekly)
LowestPrice = lowest[N](low[1])
Timeframe(default)
Condition = (low <= LowestPrice) AND (Volume > 10000) AND (Close >= PrixMini) //ou 100000, etc...
SCREENER[Condition]