Stratégie de négociation d'indicateurs de référence d'Ehlers

Auteur:ChaoZhang est là., Date: le 31 octobre 2023 14:13:30
Les étiquettes:

img

Résumé

Cette stratégie est basée sur les idées du maître de l'analyse technique John Ehlers, utilisant l'indicateur Ehlers pour juger du cycle historique des prix et générer des signaux d'achat et de vente.

Principe de stratégie

La stratégie calcule d'abord le prix synthétique décentralisé (DSP), qui est obtenu en soustrayant la valeur d'un filtre Butterworth de troisième ordre d'un filtre Butterworth de deuxième ordre pour obtenir une fonction en phase avec le cycle dominant des données de prix réels.

Ensuite, il calcule l'indicateur de référence Ehlers (ELI), qui est obtenu en soustrayant la moyenne mobile simple du prix synthétique détérioré du prix synthétique détérioré lui-même, et peut donner une indication avancée d'un tournant cyclique.

Enfin, lorsque la ligne ELI traverse le DSP, des signaux d'achat et de vente sont générés. Si ELI traverse au-dessus du DSP, un signal d'achat est généré.

Analyse des avantages

Le plus grand avantage de cette stratégie est l'utilisation de l'indicateur Ehlers Leading Indicator pour juger des points tournants dans les tendances des prix à l'avance.

En outre, la combinaison du prix décentralisé pour la génération de signaux commerciaux filtre les informations de basse fréquence non pertinentes sur les prix, ce qui rend la stratégie plus axée sur les tendances cycliques des prix sans être perturbée par le bruit de marché à court terme.

Risques et optimisation

Le principal risque de cette stratégie est la possibilité que l'ELI identifie incorrectement les signaux, ce qui entraîne une entrée prématurée et des pertes.

Les traders doivent également noter que cette stratégie ne s'applique qu'aux produits présentant des schémas cycliques évidents. Elle serait moins efficace pour les produits présentant des mouvements de prix chaotiques.

Les risques peuvent être gérés en confirmant les signaux avec d'autres indicateurs, ou en ajustant la taille des positions et les stratégies de stop loss.

Résumé

Cette stratégie identifie la cyclicité des prix à l'aide de l'indicateur Ehlers Leading Indicator, en entrant dans des positions tôt avant le début de nouveaux cycles, ce qui en fait une tendance typique suivant la stratégie.


/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/03/2017
// This Indicator plots a single
// Daily DSP (Detrended Synthetic Price) and a Daily ELI (Ehlers Leading
// Indicator) using intraday data.
// Detrended Synthetic Price is a function that is in phase with the dominant
// cycle of real price data. This one is computed by subtracting a 3 pole Butterworth
// filter from a 2 Pole Butterworth filter. Ehlers Leading Indicator gives an advanced
// indication of a cyclic turning point. It is computed by subtracting the simple
// moving average of the detrended synthetic price from the detrended synthetic price.
// Buy and Sell signals arise when the ELI indicator crosses over or under the detrended
// synthetic price.
// See "MESA and Trading Market Cycles" by John Ehlers pages 64 - 70. 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading
////////////////////////////////////////////////////////////
strategy(title="D_ELI (Ehlers Leading Indicator)", shorttitle="D_ELI (Ehlers Leading Indicator)")
Length = input(7, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=red, linestyle=line)
xHL2 = request.security(syminfo.tickerid, 'D', hl2)
xEMA1 = ema(xHL2, Length)
xEMA2 = ema(xHL2, 2 * Length)
xEMA1_EMA2 = xEMA1 - xEMA2
xResultEMA = ema(xEMA1_EMA2, Length)
nRes = xEMA1_EMA2 - xResultEMA
pos = iff(nRes > 0, 1,
	     iff(nRes < 0, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(request.security(syminfo.tickerid, "D", xEMA1_EMA2), color=blue, title="D_DSP")
plot(request.security(syminfo.tickerid, "D", nRes), color=green, title="D_ELI")

Plus de