Stratégie de croisement à double EMA

Auteur:ChaoZhang est là., Date: 2023-10-16 16h15: 38
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de trading double EMA basée sur des indicateurs EMA rapides et EMA lents. La stratégie génère des signaux longs lorsque l'EMA rapide traverse au-dessus de l'EMA lente, et ferme des positions longues lorsque l'EMA rapide traverse au-dessous de l'EMA lente. La stratégie est simple et pratique pour le trading à moyen terme.

La logique de la stratégie

La stratégie est principalement mise en œuvre avec les deux indicateurs EMA. L'EMA rapide a une période plus courte pour refléter sensiblement les variations de prix, tandis que l'EMA lente a une période plus longue pour indiquer les tendances à long terme.

Lorsque l'EMA rapide traverse au-dessus de l'EMA lente, une croix dorée se forme, indiquant une dynamique haussière des prix à court terme pour les longs.

Plus précisément, la stratégie comprend:

  1. Paramètres d'entrée pour les EMA rapides et lents, y compris la période, la source, etc.

  2. Calculer l'EMA rapide et l'EMA lente.

  3. Définir la croix d'or lorsque l'EMA rapide traverse l'EMA lente.

  4. Définir la croix de la mort lorsque l'EMA rapide traverse l'EMA lente.

  5. Allez long sur les croix d'or.

  6. Prenez position sur les croix de la mort.

  7. Options pour le rachat et le stop loss/profit taking.

  8. Les notifications d'achat et de vente de sortie.

Grâce à ce système simple de double croisement EMA, la stratégie peut capturer les tendances à court terme pour les bénéfices.

Analyse des avantages

La stratégie présente les avantages suivants:

  1. La logique est simple et claire, facile à comprendre.

  2. Utilise uniquement une double EMA, facile à mettre en œuvre.

  3. Peut détecter les tendances à court terme pour les bénéfices.

  4. Périodes d'EMA personnalisables pour différents marchés.

  5. Option de raccourcissement pour contrôler les risques.

  6. Option de stop loss/prise de bénéfices

  7. Notifications d'achat/de vente à des fins de surveillance.

  8. Facile à optimiser les paramètres EMA pour de meilleurs bénéfices.

Analyse des risques

Il y a aussi des risques:

  1. La double EMA peut générer de faux signaux provoquant des pertes inutiles.

  2. Un paramètre de stop-loss incorrect peut accroître les pertes.

  3. Une fréquence de négociation élevée augmente les coûts et les risques de dérapage.

  4. Les paramètres fixes de l'EMA ne peuvent pas s'adapter aux changements du marché.

  5. Ils sont enclins à courir après l'élan, perdent leur jugement.

  6. Impossible d'identifier un renversement de tendance, peut ouvrir des positions inversées.

Mesures de gestion des risques correspondantes:

  1. Optimiser les paramètres EMA pour réduire les faux signaux.

  2. Définir un stop loss approprié pour limiter la perte par transaction.

  3. Optimiser les périodes EMA pour réduire la fréquence.

  4. Ajustez dynamiquement l'EMA pour les différentes étapes du marché.

  5. Ajoutez des indicateurs de tendance pour éviter de courir après l'élan.

  6. Identifier les principales tendances avec des outils de tendance.

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Optimisation dynamique des paramètres EMA pour les différents marchés.

  2. Ajouter des filtres de stock pour améliorer la précision.

  3. Incorporer un indice de volatilité pour réduire la position dans des environnements à faible volatilité.

  4. Ajoutez une confirmation de volume pour les signaux.

  5. Définissez des niveaux de prix, comme la rupture de 20SMA avant de prendre des signaux.

  6. Améliorer les stratégies de stop loss et de profit.

  7. Ajoutez une analyse de la tendance principale pour éviter de négocier contre tendance.

  8. Optimiser continuellement la stratégie avec des algorithmes d'apprentissage automatique.

Résumé

En résumé, la double stratégie de croisement EMA a une logique simple et claire pour capturer les tendances à court terme, mais comporte également certains risques de profit. Nous pouvons gérer les risques en optimisant les paramètres, en mettant en œuvre le stop loss / profit taking, en filtrant les actions, en jugeant les principales tendances, etc., pour obtenir régulièrement des rendements satisfaisants. La stratégie peut être améliorée progressivement avec des recherches et des améliorations continues.


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

//@version=4

strategy("EMA Strategy", shorttitle="EMA Strategy", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100)


// === Inputs ===
// short ma
maFastSource = input(defval=close, title="Fast MA Source")
maFastLength = input(defval=3, title="Fast MA Period", minval=1)

// long ma
maSlowSource = input(defval=close, title="Slow MA Source")
maSlowLength = input(defval=9, title="Slow MA Period", minval=1)

// invert trade direction
shorting = input(defval=false, title="Allow Shorting?")
// risk management
useStop = input(defval=false, title="Use Initial Stop Loss?")
slPoints = input(defval=25, title="Initial Stop Loss Points", minval=1)
useTS = input(defval=false, title="Use Trailing Stop?")
tslPoints = input(defval=120, title="Trail Points", minval=1)
useTSO = input(defval=false, title="Use Offset For Trailing Stop?")
tslOffset = input(defval=20, title="Trail Offset Points", minval=1)

// Messages for buy and sell
message_buy  = input("Buy message", title="Buy Alert Message")
message_sell   = input("Sell message", title="Sell Alert Message")

// Calculate start/end date and time condition
startDate  = input(timestamp("2021-01-01T00:00:00"), type = input.time)
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time)
 
time_cond  = true

// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)

plot(fastMA, color=color.blue)
plot(slowMA, color=color.purple)

goLong() =>
    crossover(fastMA, slowMA)
killLong() =>
    crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when=goLong() and time_cond, alert_message = message_buy)
strategy.close("Buy", when=killLong() and time_cond, alert_message = message_sell)

// Shorting if using
if shorting
    strategy.entry("Sell", strategy.short, when=killLong() and time_cond, alert_message = message_sell)
    strategy.close("Sell", when=goLong() and time_cond, alert_message = message_buy)

if useStop
    strategy.exit("XLS", from_entry="Buy", stop=strategy.position_avg_price / 1.08)
    strategy.exit("XSS", from_entry="Sell", stop=strategy.position_avg_price * 1.08)



Plus de