Stratégie de suivi croisé de l'EMA

Auteur:ChaoZhang est là., Date: 2023-10-25 17:44:35 Je suis désolé
Les étiquettes:

img

Résumé

La stratégie de croisement EMA génère des signaux d'achat et de vente en suivant le croisement entre deux lignes EMA de périodes différentes. Lorsque l'EMA de la période plus courte traverse l'EMA de la période plus longue, un signal d'achat est généré. Lorsque l'EMA de la période plus courte traverse en dessous de l'EMA de la période plus longue, un signal de vente est généré. Cette stratégie incorpore également l'indicateur SuperTrend pour filtrer les fausses ruptures.

La logique de la stratégie

Cette stratégie est principalement basée sur la croix dorée et la croix de la mort des lignes EMA. Les lignes EMA peuvent lisser les données de prix et filtrer le bruit. Le croisement entre les lignes EMA indique les changements de tendance des prix. Lorsque la courte période EMA (20 période) traverse la courte période EMA (50 période), cela signifie que le prix à court terme est maintenant au-dessus du prix à long terme, ce qui implique une tendance à la hausse et génère un signal d'achat. Lorsque la courte période EMA traverse en dessous de la courte période EMA, cela signifie que le prix à court terme se déplace en dessous du prix à long terme, ce qui implique une tendance à la baisse et génère un signal de vente.

En outre, cette stratégie utilise l'indicateur SuperTrend pour filtrer les faux signaux générés par les croisements EMA. L'indicateur SuperTrend est calculé sur la base de l'ATR pour tracer les bandes supérieures et inférieures qui définissent mieux la tendance réelle. Lorsque le prix dépasse la bande supérieure de SuperTrend, un signal d'achat est généré. Lorsque le prix dépasse la bande inférieure de SuperTrend, un signal de vente est généré. Les signaux de croisement EMA ne sont valables que lorsqu'ils sont confirmés par les signaux SuperTrend. Cela aide à éliminer les faux signaux causés par les fluctuations de prix.

Plus précisément, la logique d'entrée de stratégie est définie comme suit:

  1. Lorsque 20EMA dépasse 50EMA et que le prix dépasse la bande supérieure de SuperTrend, un signal d'achat est généré.

  2. Lorsque 20EMA franchit le seuil inférieur à 50EMA, et que le prix dépasse la bande inférieure de SuperTrend, un signal de vente est généré.

L'utilisation de croisements EMA pour déterminer la direction de la tendance majeure combinée au filtre SuperTrend pourrait améliorer la précision des signaux de négociation.

Les avantages

La stratégie croisée de l'EMA présente les avantages suivants:

  1. Il suffit de calculer deux croisements EMA.

  2. L'EMA comme moyenne mobile peut filtrer un peu de bruit.

  3. La combinaison avec SuperTrend réduit encore les faux signaux causés par les fluctuations des prix.

  4. Les périodes EMA peuvent être ajustées en fonction des différents environnements de marché.

  5. Personnalisable pour les transactions longues ou courtes, applicable à diverses approches de négociation.

  6. Peut être mis en œuvre dans différents délais pour différents styles de négociation.

Les risques

Il existe également certains risques associés à la stratégie de croisement de l'EMA:

  1. Les signaux croisés de l'EMA peuvent être retardés lors de fluctuations extrêmes des prix, ne reflétant pas les variations de prix en temps opportun.

  2. Les lignes EMA ont un effet de retard qui pourrait générer des signaux incorrects.

  3. Des paramètres de période EMA incorrects pourraient entraîner des signaux erronés excessifs.

  4. Le crossover à lui seul ne peut pas déterminer la tendance réelle, car il est encore largement en retard.

  5. Une bonne gestion des risques comme le stop loss est nécessaire pour contrôler les risques.

Quelques moyens de réduire les risques:

  1. Optimiser les périodes EMA pour mieux adapter les lignes rapides et lentes.

  2. Réduire la période de détention et appliquer un stop loss rapide.

  3. Combinez avec d'autres indicateurs comme les moyennes mobiles, les modèles de chandeliers pour un jugement complet.

  4. Ajustez la fréquence des transactions à un nombre inférieur de transactions.

Améliorations

Cette stratégie peut être renforcée et optimisée dans les domaines suivants:

  1. Optimiser les périodes d'EMA pour différents cycles et environnements de marché.

  2. Testez différents indicateurs de moyenne mobile comme SMA, KWMA.

  3. Incorporer plus d'indicateurs techniques pour former des modèles multivariés, comme le MACD, le RSI. Appliquer des algorithmes d'apprentissage automatique pour optimiser les paramètres et les poids.

  4. Ajoutez des techniques de stop-loss comme le stop-loss de suivi, le stop-loss en pourcentage pour contrôler les risques.

  5. Mettre en place des filtres de volume fonctionnant avec des indicateurs de volume pour éviter les faux signaux.

  6. Optimiser les sorties en définissant des règles de sortie, en les combinant avec des schémas graphiques, des écarts, etc.

  7. Confirmer la tendance sur une période plus longue, effectuer des transactions sur une période plus courte pour suivre les tendances.

Conclusion

La stratégie de croisement EMA est un système simple et pratique de suivi des tendances. Elle peut identifier les tendances à moyen terme et générer des signaux de chronométrage. La combinaison avec le filtre SuperTrend pourrait réduire efficacement les faux trades. Mais des risques tels que le retard et les mauvais signaux existent toujours. La stratégie peut être améliorée par l'optimisation des paramètres, le stop loss, la combinaison d'indicateurs, etc. La stratégie de croisement EMA est facile à utiliser, adaptée au suivi des tendances à moyen et long terme et efficace pour les traders novices.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © alokbothra

//@version=5
strategy("Ema Crossover", overlay=true, initial_capital = 1000)
start = timestamp(2021,1,1,0,0)
end = timestamp(2023,10,30,0,0)
plot (ta.ema(close,20), title = "Ema 20", color = color.green , linewidth = 2)
plot (ta.ema(close,50), title = "Ema 50", color = color.red, linewidth = 2 )

//supertrend 1
Periods = input(title='ATR Period', defval=11)
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3)
changeATR = input(title='Change ATR Calculation Method ?', defval=true)
showsignals = input(title='Show Buy/Sell Signals ?', defval=true)
highlighting = input(title='Highlighter On/Off ?', defval=true)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = close - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn =close+ Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title='Up Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title='UpTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0))
dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title='DownTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0))
mPlot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0)
changeCond = trend != trend[1]

longonly = input.bool(defval = true, title = 'Long Only')
shortonly = input.bool(defval = true, title = 'Short Only')

longCondition = (ta.ema(close, 20) >= ta.ema(close, 50)) 
shortCondition = (ta.ema(close, 20) <= ta.ema(close, 50))
long = (trend == 1)
short = (trend == -1)
sell= short
cover= long
if time >= start and time < end
    if longonly
        if ((longCondition) and (long))
            strategy.entry ("Long Entry", strategy.long, comment ="Long Entry")
        if strategy.position_size > 0
            strategy.close("Long Entry", when = sell, comment = "Long Exit")
    if shortonly
        if ((shortCondition) and (short))
            strategy.entry("Short Entry", strategy.short, comment = "Short Entry")
        if strategy.position_size < 0
            strategy.close("Short Entry", when = cover, comment = "Short Exit")


Plus de