Kaufman's Efficiency Ratio (er)

Le ratio d’efficacité de Kaufman (ER) compare le déplacement net d’une série à l’ensemble des variations qu’elle a parcourues sur la période length. Lorsque cette période contient une suite continue de valeurs définies, il produit une valeur comprise entre 0 et 1 qui décrit la régularité du trajet, indépendamment de sa direction.

Une valeur proche de 1 indique que les variations successives ont formé un mouvement presque direct. Une valeur proche de 0 signifie que ces variations se sont largement compensées, ou que la série est restée immobile. Une hausse régulière et une baisse régulière peuvent donc produire la même valeur élevée : l’ER mesure l’efficacité du déplacement, pas son orientation.

Déclaration du bloc

Une stratégie peut contenir plusieurs blocs [[er]]. Chaque bloc produit une série numérique identifiée par la valeur de son champ id.

Le calcul utilise close par défaut. Le paramètre source permet de sélectionner une autre série de prix ou la sortie d’un autre indicateur.

Exemples

Configuration minimale

Ce bloc utilise la source par défaut close et la longueur par défaut 10.

[[er]]
id = "efficiency"

Configuration fixe personnalisée

Ce bloc mesure la régularité de la source hl2 sur une période de 20 bougies.

[[er]]
id     = "efficiency"
source = "hl2"
length = 20

Recherche de la longueur optimale

Ce bloc explore les longueurs 5, 10, 15, 20, 25 et 30. Whale-E exécute une combinaison de la grille pour chaque valeur afin de comparer leur effet sur les résultats de la stratégie.

[[er]]
id           = "efficiency"
length.start = 5
length.stop  = 30
length.step  = 5

Filtre de régularité avec seuil

Cet exemple utilise l’ER pour ne poursuivre la stratégie que lorsque le mouvement récent est suffisamment régulier. Le bloc [[constant]] fait varier le seuil er_threshold de 0.3 à 0.7 pendant la recherche par grille.

La condition devient vraie lorsque efficiency > er_threshold. Un seuil bas accepte des trajectoires plus irrégulières. Un seuil élevé ne conserve que les mouvements les plus directs. Comme l’ER ne donne pas la direction, ce filtre peut se déclencher pendant une hausse comme pendant une baisse.

[[er]]
id = "efficiency"

[[constant]]
id    = "er_threshold"
start = 0.3
stop  = 0.7
step  = 0.1

[[condition]]
id            = "directional_market"
condition     = "efficiency > er_threshold"
next_block_id = "..."

Symbole et timeframe dédiés

Ce bloc utilise les clôtures en quatre heures de BINANCE:ETHUSDT, indépendamment du symbole et du timeframe principaux définis dans [backtest]. Voir la page Exchanges, Symboles et Timeframes pour les formats acceptés et les règles d’alignement.

[[er]]
id        = "efficiency_4h"
symbol    = "BINANCE:ETHUSDT"
timeframe = "240"

Paramètres

ParamètreDescription
id
 Texte
 Obligatoire
Nom unique utilisé pour identifier la série ER produite par le bloc.
source
 Texte
 ou Tableau
 Optionnel
Série d’entrée dont le bloc mesure la régularité.
Formats acceptés : source = "hl2" ou source = ["close", "hl2"].
Chaque valeur peut être une source de prix standard (open, close, high, low, hl2, hlc3, ohlc4, hlcc4, volume) ou l’id d’un autre indicateur.
Si source est omis, la valeur par défaut est "close".
length
 Entier
 Optionnel
Nombre de bougies de la période observée ; doit être compris entre 1 et 10000 lorsqu’il est renseigné.
Une valeur courte rend l’ER plus réactif aux changements récents. Une valeur plus élevée évalue la régularité sur une période plus étendue.
Si length est omis, la valeur par défaut est 10.

Usage :
• Fixe : length = valeur
• Grille :
 – length.start = valeur_minimale
 – length.stop = valeur_maximale
 – length.step = valeur (optionnel, par défaut 1)
symbol
 Texte
 ou Tableau
 Optionnel
Symbole(s) de marché utilisé(s) lorsque source contient une source de prix standard.
Si source mélange des prix standard et des identifiants d’indicateurs, symbol s’applique uniquement aux combinaisons basées sur les prix standard.
Si source ne contient que des identifiants d’indicateurs, symbol est ignoré.
Si symbol est omis, le bloc hérite du symbole principal défini dans [backtest].
Pour les formats acceptés et les règles d’alignement, voir Exchanges, Symboles et Timeframes.
timeframe
 Texte
 ou Tableau
 Optionnel
Timeframe sur lequel l’ER est calculé.
Si timeframe est omis, le calcul utilise 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

Vous pouvez utiliser directement les identifiants ci-dessous dans vos expressions. Le bloc ER expose sa série numérique et sa longueur, ainsi que sa source d’entrée, son symbole et son timeframe.

Supposons le bloc configuré ainsi :

[[er]]
id = "efficiency"

Alors :

VariableDescription
efficiency ou efficiency[0]
Décimal
Valeur actuelle de l’ER.
efficiency[n]
Décimal
Valeur de l’ER il y a n bougies.
efficiency.length
Décimal
Longueur utilisée pour la série ER.
efficiency.source
Texte
Nom de la série d’entrée.
efficiency.symbol
Texte
Symbole de marché utilisé par la série.
efficiency.timeframe
Texte
Timeframe utilisé par la série.

Notes

  • Si la source contient des NaN, le moteur conserve les dernières variations valides pour le dénominateur. Lorsque les valeurs courante et décalée sont de nouveau définies, la sortie peut alors dépasser 1. L’intervalle de 0 à 1 est garanti uniquement sur une fenêtre continue sans valeur manquante.
  • 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.