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 = 20Recherche 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 = 5Filtre 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ètre | Description |
|---|---|
idTexte Obligatoire | Nom unique utilisé pour identifier la série ER produite par le bloc. |
sourceTexte 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". |
lengthEntier 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) |
symbolTexte 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. |
timeframeTexte 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 :
| Variable | Description |
|---|---|
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.lengthDécimal | Longueur utilisée pour la série ER. |
efficiency.sourceTexte | Nom de la série d’entrée. |
efficiency.symbolTexte | Symbole de marché utilisé par la série. |
efficiency.timeframeTexte | 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épasser1. L’intervalle de0à1est 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.