Stratégie de suivi Double EMA Golden Cross et Death Cross


Date de création: 2023-11-13 17:35:14 Dernière modification: 2023-11-13 17:35:14
Copier: 0 Nombre de clics: 681
1
Suivre
1617
Abonnés

Stratégie de suivi Double EMA Golden Cross et Death Cross

Aperçu

Cette stratégie est une stratégie de suivi de la tendance en calculant les EMA de la ligne rapide et de la ligne lente et en comparant la relation de taille entre les deux, pour réaliser des signaux de négociation de forcs dorés et morts de deux EMA. Une stratégie de suivi de la tendance simple est réalisée en générant un signal d’achat lorsque la ligne rapide traverse la ligne lente et un signal de vente lorsque la ligne rapide traverse la ligne lente.

Principe de stratégie

La logique de base de cette stratégie se compose principalement des éléments suivants:

  1. Calculer l’EMA de la ligne rapide et l’EMA de la ligne lente: calculer la longueur de l’EMA de la ligne rapide pour l’input rapide et la longueur de l’EMA de la ligne lente pour l’input lent par la fonction ta.ema (().

  2. Définition de la plage de temps de retour: filtrez le temps de retour par les paramètres useDateFilter et définissez les dates de début et de fin de retour backtestStartDate et backtestEndDate.

  3. Génération de signaux de transaction: par les fonctions ta.crossover () et ta.crossunder () comparer la relation entre la taille de l’EMA de la ligne rapide et celle de la ligne lente, générer un signal d’achat lorsque la ligne rapide traverse la ligne lente et générer un signal de vente lorsque la ligne rapide traverse la ligne lente.

  4. Traitement des commandes en dehors de la période de référence: les commandes non exécutées en dehors de la période de référence sont annulées et toutes les positions sont liquidées.

  5. Tracez une moyenne mobile: tracez sur le graphique les moyennes mobiles de l’EMA rapide et de l’EMA lente.

Avantages stratégiques

Il s’agit d’une stratégie de suivi de tendances très simple, qui présente les avantages suivants:

  1. La logique de la stratégie est simple, facile à comprendre et à mettre en œuvre.

  2. L’EMA a simplifié les données sur les prix pour réduire le bruit des transactions.

  3. Les paramètres du cycle EMA peuvent être personnalisés pour s’adapter à différents environnements de marché.

  4. Il est possible de définir de manière flexible les périodes de retour pour effectuer des tests sur une période donnée.

  5. Les conditions d’entrée et de sortie peuvent être optimisées en combinaison avec d’autres indicateurs.

Analyse des risques

Cette stratégie comporte également des risques à prendre en compte:

  1. La stratégie de la double EMA est trop grossière et ne permet pas de s’adapter à l’évolution du marché.

  2. Il existe un risque de transactions fréquentes et répétées.

  3. Une mauvaise configuration des paramètres EMA peut entraîner une erreur de signal.

  4. Des délais de réponse déraisonnables peuvent entraîner une suradaptation.

  5. Il y a un risque de retrait inévitable et de pertes.

Le risque peut être maîtrisé par l’optimisation des paramètres, le filtrage approprié des fluctuations et la mise en place d’un arrêt de perte.

Direction d’optimisation

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

  1. Optimiser les paramètres du cycle EMA pour choisir la meilleure combinaison de paramètres.

  2. Ajouter des filtres sur d’autres indicateurs pour éviter les transactions inutiles.

  3. Il a ajouté: “Nous avons besoin d’une stratégie de réduction des pertes et d’une stratégie de contrôle des pertes”.

  4. Les filtres de tendance, de volatilité, etc. sont utilisés pour réduire la fréquence des transactions.

  5. Tester différents contrats de variété pour trouver les meilleurs candidats pour la stratégie.

  6. Le contrôle des coûts, tels que les points de glissement et les frais de traitement, rendent le retour plus réaliste.

Résumer

Cette stratégie est une stratégie très simple, logiquement claire et facile à comprendre, qui génère des signaux de transaction par une comparaison rapide et lente des lignes EMA. L’avantage de cette stratégie est sa simplicité, mais il existe également des problèmes tels que la fréquence des transactions, la facilité de sur-optimisation, etc. La prochaine étape peut être améliorée en termes d’optimisation des paramètres, de contrôle des risques, etc., ce qui rend la stratégie plus robuste et pratique.

Code source de la stratégie
/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=5
strategy("MollyETF_EMA_Crossover", overlay = true, initial_capital = 100000, default_qty_value=100, default_qty_type=strategy.percent_of_equity)

fastInput = input( 10, "Fast EMA")
slowInput = input( 21, "Slow EMA")

// Calculate two moving averages with different lengths.
float fastMA = ta.ema(close, fastInput)
float slowMA = ta.ema(close, slowInput)


// STEP 1. Create inputs that configure the backtest's date range
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 2018"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " +  
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("7 Sep 2023"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")

// STEP 2. See if current bar falls inside the date range
inTradeWindow = true

// STEP 3. Include the date filter with the entry order conditions

// Enter a long position when `fastMA` crosses over `slowMA`.
if inTradeWindow and ta.crossover(fastMA, slowMA)
    strategy.entry("buy", strategy.long)

// Enter a short position when `fastMA` crosses under `slowMA`.
if inTradeWindow and ta.crossunder(fastMA, slowMA)
    strategy.close_all(comment="sell")

// STEP 4. With the backtest date range over, exit all open
// trades and cancel all unfilled pending orders
if not inTradeWindow and inTradeWindow[1]
    strategy.cancel_all()
    strategy.close_all(comment="Date Range Exit")

// Plot the moving averages.
plot(fastMA, "Fast MA", color.aqua)
plot(slowMA, "Slow MA", color.orange)