Percentile Linear Interpolation (pli)

[[pli]] renvoie le percentile percentage de sa source sur les length dernières valeurs. Le bloc trie la fenêtre de la plus basse à la plus haute et produit une série numérique située à la position choisie dans ce classement. Un percentile de 0 correspond au bas de la fenêtre, 50 à sa médiane et 100 à son sommet.

Lorsque la position demandée se trouve entre deux valeurs triées, le bloc les combine par interpolation linéaire au lieu d’en sélectionner une seule. La sortie peut donc prendre une valeur absente de la fenêtre, mais toujours située entre les deux observations qui encadrent le percentile.

Déclaration du bloc

Une stratégie peut contenir plusieurs blocs [[pli]]. Chaque bloc produit une série numérique : le percentile demandé de la source sur la fenêtre configurée.

Exemples

Configuration minimale

Ce bloc calcule le 50e percentile, la médiane, de close sur 20 bougies. Comme source est omis, le bloc utilise la valeur par défaut "close".

[[pli]]
id         = "pli"
length     = 20
percentage = 50

Source spécifique

Ce bloc calcule la même médiane sur la source hl2 (moyenne du plus haut et du plus bas) plutôt que sur close.

[[pli]]
id         = "pli"
source     = "hl2"
length     = 20
percentage = 50

Source issue d’un autre indicateur

Ce bloc calcule le 90e percentile de la série produite par le bloc rsi sur 50 bougies, une référence haute et lente que les valeurs récentes du RSI dépassent rarement.

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

[[pli]]
id         = "rsi_p90"
source     = "rsi"
length     = 50
percentage = 90

Recherche de la longueur optimale

Ce bloc explore une plage de valeurs pour length afin d’identifier la fenêtre la plus performante, le percentile restant fixé à la médiane.

[[pli]]
id           = "pli"
length.start = 10
length.stop  = 30
percentage   = 50

Recherche du percentile optimal

Ce bloc garde length fixe et explore une plage de valeurs de percentage pendant le grid search : un backtest est exécuté pour chaque percentile de la plage, et le classement des résultats montre quel niveau est le plus performant.

[[pli]]
id               = "pli"
length           = 20
percentage.start = 10
percentage.stop  = 90
percentage.step  = 10

Symbole et timeframe dédiés

Ce bloc calcule le percentile sur la série journalière de BINANCE:ETHUSDT, indépendamment du symbole et du timeframe principaux définis dans [backtest]. Voir la page Exchanges, Symboles et Timeframes pour les règles d’alignement.

[[pli]]
id         = "pli"
length     = 20
percentage = 50
symbol     = "BINANCE:ETHUSDT"
timeframe  = "D"

Paramètres

ParamètreDescription
id
 Texte
 Obligatoire
Nom unique identifiant la série pli ; 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 = "hl2" ou source = ["close", "hl2"].
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 sur laquelle le percentile est calculé ; doit être ≥ 1.

Usage :
• Fixe : length = valeur
• Grille :
length.start = valeur_minimale
length.stop = valeur_maximale
length.step = valeur (optionnel, par défaut 1)
percentage
 Décimal
 Obligatoire
Percentile à lire dans la fenêtre triée, de 0 (valeur la plus basse) à 100 (valeur la plus haute) ; 50 correspond à la médiane.

Usage :
• Fixe : percentage = valeur
• Grille :
percentage.start = valeur_minimale
percentage.stop = valeur_maximale
percentage.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 pli expose une série numérique, sa longueur de calcul, le percentile demandé 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 :

[[pli]]
id         = "pli"
length     = 20
percentage = 50

Alors :

VariableDescription
pli ou pli[0]
Décimal
Valeur actuelle du percentile.
pli[n]
Décimal
Valeur du percentile il y a n bougies.
pli.length
Décimal
Longueur de la fenêtre utilisée.
pli.percentage
Décimal
Percentile lu dans la fenêtre, de 0 à 100.
pli.source
Texte
Nom de la série d’entrée (par exemple close, hl2, ou l’id d’un autre indicateur).
pli.symbol
Texte
Symbole à partir duquel les données d’entrée sont lues.
pli.timeframe
Texte
Timeframe sur lequel le percentile est calculé.

Notes

  • Pendant la phase d’amorçage, tant que la fenêtre ne contient pas length bougies, la série vaut NaN.
  • percentage = 0 renvoie la valeur la plus basse de la fenêtre, percentage = 100 la plus haute et percentage = 50 la médiane. Avec length = 1, la série reprend simplement la valeur courante de la source.
  • Une bougie dont la source vaut NaN reste dans la fenêtre mais est classée après toutes les valeurs numériques. Un percentage élevé peut donc renvoyer NaN tant que ces valeurs manquantes occupent le haut du classement, alors que les percentiles plus bas restent calculables.
  • 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.