Linear Regression (linreg)

[[linreg]] résume l’évolution des length dernières valeurs de source par la droite qui représente au mieux l’ensemble de cette fenêtre. Le bloc ne renvoie ni la pente ni tous les points de cette droite : il produit une seule série, formée par la valeur de la droite à la position définie par offset sur chaque bougie.

Avec offset = 0, la droite est lue à l’extrémité correspondant à la bougie courante. Un offset positif sélectionne un point plus ancien de la même droite, tandis qu’un offset négatif la prolonge au-delà de cette extrémité. Cette prolongation reste entièrement calculée à partir des valeurs déjà présentes dans la fenêtre : elle ne contient aucune information provenant de bougies futures.

Déclaration du bloc

Une stratégie peut contenir plusieurs blocs [[linreg]]. Chaque bloc produit une série numérique : la valeur de la droite de régression évaluée à l’offset configuré.

Exemples

Configuration minimale

Ce bloc ajuste une régression linéaire sur 20 bougies de la série close et renvoie la valeur de la droite sur la bougie courante (offset = 0 par défaut). Il utilise le symbole et le timeframe principaux définis dans [backtest].

[[linreg]]
id     = "linreg"
length = 20

Source spécifique

Ce bloc calcule la régression sur la source hlc3 (moyenne de high, low et close) plutôt que sur close.

[[linreg]]
id     = "linreg"
source = "hlc3"
length = 100

Source issue d’un autre indicateur

Ce bloc ajuste une droite de régression sur la série produite par le bloc rsi, en la lissant sur 10 bougies.

[[rsi]]
id     = "rsi"
length = 14

[[linreg]]
id     = "rsi_linreg"
source = "rsi"
length = 10

Recherche de la longueur optimale

Ce bloc explore une plage de valeurs pour length afin d’identifier la fenêtre la plus performante.

[[linreg]]
id           = "linreg"
length.start = 10
length.stop  = 100
length.step  = 10

Application d’un offset

Ce bloc lit la droite de régression 2 bougies avant son extrémité courante. Un offset positif déplace le point d’évaluation vers un point plus ancien de la droite ajustée, produisant une lecture légèrement retardée et plus lisse.

[[linreg]]
id     = "linreg"
length = 50
offset = 2

Projection avec un offset négatif

Ce bloc évalue la droite de régression une bougie après la bougie courante. Un offset négatif prolonge la droite ajustée au-delà de la fenêtre, transformant l’indicateur en une projection à court terme de la tendance.

[[linreg]]
id     = "linreg"
length = 50
offset = -1

Recherche de l’offset optimal

Ce bloc explore une plage de valeurs pour offset, d’une lecture vers le passé jusqu’à une projection vers le futur, afin d’identifier la plus pertinente. La plage peut inclure des valeurs négatives.

[[linreg]]
id           = "linreg"
length       = 50
offset.start = -3
offset.stop  = 3

Symbole et timeframe dédiés

Dans cette configuration, la régression est calculée sur la série journalière de BINANCE:ETHUSDT, indépendamment du symbole et du timeframe principaux utilisés par le reste de la stratégie. Voir la page Exchanges, Symboles et Timeframes pour les règles d’alignement.

[[linreg]]
id        = "linreg"
length    = 50
symbol    = "BINANCE:ETHUSDT"
timeframe = "D"

Paramètres

ParamètreDescription
id
 Texte
 Obligatoire
Nom unique identifiant la série linreg ; le bloc expose une série numérique portant cet identifiant.
source
 Texte
 ou Tableau
 Optionnel
Série d’entrée utilisée pour le calcul.
Formes acceptées : source = "hlc3" ou source = ["close", "hlc3"].
Chaque valeur peut être soit une source de prix standard (open, close, high, low, hl2, hlc3, ohlc4, hlcc4, volume), soit l’id d’un autre indicateur.
Valeur par défaut : "close"
length
 Entier
 Obligatoire
Nombre de bougies de la fenêtre de régression ; la droite est ajustée sur ce nombre de valeurs de la source. Doit être ≥ 1.
Remarque : avec length = 1, la fenêtre ne contient qu’un seul point, aucune droite ne peut être ajustée, et la série vaut NaN sur chaque bougie.

Usage :
• Fixe : length = valeur
• Grille :
length.start = valeur_minimale
length.stop = valeur_maximale
length.step = valeur (optionnel, par défaut 1)
offset
 Entier
 Optionnel
Position à laquelle la droite ajustée est lue, comptée à rebours depuis la bougie courante. 0 lit la droite sur la bougie courante ; une valeur positive lit un point plus ancien le long de la droite ; une valeur négative prolonge la droite au-delà de la bougie courante. Peut être négatif.
Si offset est omis, la valeur par défaut est 0.

Usage :
• Fixe : offset = valeur
• Grille :
offset.start = valeur_minimale
offset.stop = valeur_maximale
offset.step = valeur (optionnel, par défaut 1)
symbol
 Texte
 ou Tableau
 Optionnel
Symbole(s) de marché fournissant la série source lorsque source contient des prix standards (open, close, high, low, hl2, hlc3, ohlc4, hlcc4, volume).
Si source mélange des prix standards et des ids d’indicateurs, symbol ne s’applique qu’aux combinaisons fondées sur des prix standards.
Si source ne contient que des ids d’indicateurs, symbol est ignoré.
Pour le format et les règles d’alignement, voir Exchanges, Symboles et Timeframes.
timeframe
 Texte
 ou Tableau
 Optionnel
Timeframe sur lequel cet indicateur est calculé.
Si timeframe est omis, le calcul se fait sur le timeframe principal de la grille défini dans [backtest].
Pour les formats acceptés et les règles d’alignement entre timeframes, voir Exchanges, Symboles et Timeframes.

Variables disponibles

Le bloc linreg expose une série numérique, ses paramètres de configuration et des métadonnées sur la source d’entrée, le symbole et le timeframe. Ces identifiants s’emploient directement dans vos expressions.

Supposons le bloc configuré ainsi :

[[linreg]]
id     = "linreg"
source = "close"
length = 20

Alors :

VariableDescription
linreg ou linreg[0]
Décimal
Valeur actuelle de la droite de régression, lue à l’offset configuré.
linreg[n]
Décimal
Valeur de linreg il y a n bougies.
linreg.length
Décimal
Longueur de la fenêtre de régression utilisée.
linreg.offset
Décimal
Offset appliqué.
linreg.source
Texte
Nom de la série d’entrée (par exemple close, hlc3, ou l’id d’un autre indicateur).
linreg.symbol
Texte
Symbole à partir duquel les données d’entrée sont lues.
linreg.timeframe
Texte
Timeframe sur lequel le linreg est calculé.

Notes

  • Pendant la phase d’amorçage, les length - 1 premières bougies n’ont pas de fenêtre complète et la série vaut NaN. Si une valeur de la fenêtre vaut NaN, le résultat de cette bougie vaut également NaN.
  • Les variables numériques se combinent librement (arithmétique, comparaisons, opérateurs logiques).
  • Les variables textuelles sont des chaînes destinées aux comparaisons d’égalité/inégalité uniquement.