Stratégie de trading avec stop loss suiveur basée sur les indicateurs EMA et MACD


Date de création: 2023-09-20 11:21:14 Dernière modification: 2023-09-20 11:21:14
Copier: 0 Nombre de clics: 882
1
Suivre
1617
Abonnés

Aperçu

Cette stratégie combine deux indicateurs, les moyennes mobiles indicielles (EMA) et les moyennes mobiles convergentes (MACD) pour générer un signal de négociation et le suivi des arrêts de perte pour contrôler le risque. La stratégie s’applique à la tendance et vise à suivre les tendances à moyen terme pour les positions longues.

Principe de stratégie

Lorsque la ligne EMA rapide traverse la ligne EMA lente et que la colonne de l’histogramme MACD devient vide, la stratégie fait plus; lorsque des positions de tête multiples sont présentes, définissez une ligne d’arrêt de suivi vers le bas, si le prix baisse au-delà d’une certaine proportion de la ligne d’arrêt, arrêtez et sortez des positions de tête multiples.

En particulier, la stratégie utilise l’EMA du 7e jour et l’EMA du 14e jour pour construire des EMA rapides; utilise l’EMA du 12e jour moins l’EMA du 26e jour pour obtenir la valeur du MACD, puis utilise l’EMA du 9e jour pour obtenir la ligne de signal. Lorsque l’EMA du 7e jour traverse l’EMA du 14e jour et la valeur du MACD pour traverser le signal, ouvrez une position en plus; puis définissez une ligne de stop-loss de suivi vers le bas, et si le prix baisse au-dessus d’un certain pourcentage, arrêtez-vous et sortez-en.

Analyse des avantages

La stratégie combine deux indicateurs, l’EMA et le MACD, pour filtrer efficacement les fausses ruptures. L’EMA détermine la direction de la tendance, le MACD détermine les points d’achat et de vente, ce qui permet de réduire la fréquence des transactions tout en améliorant la qualité du signal. Le suivi des arrêts permet de protéger au maximum les bénéfices réalisés et d’arrêter les pertes en temps opportun en cas de situations défavorables majeures.

La rétroaction montre que la stratégie peut également obtenir de meilleurs rendements dans les marchés baissiers, ce qui indique que la stratégie a une certaine robustesse. La fréquence de négociation de la stratégie est faible et convient aux positions à moyen et long terme. Les paramètres du cycle EMA peuvent être ajustés de manière appropriée pour ajuster la tendance de la stratégie.

Analyse des risques

La stratégie est principalement basée sur les indicateurs, et il existe un risque d’effet de levier. Lorsque le marché est dans une phase de correction de choc, les EMA et le MACD peuvent générer de nombreux faux signaux, entraînant des transactions excessives et des pertes. Le tracking stop n’est efficace qu’en cas de rupture en dessous et ne peut pas faire face à une forte reprise après la rupture en haut.

Il est possible de réduire les faux signaux en augmentant de manière appropriée les paramètres de la période EMA. Il est également possible de combiner les signaux de filtrage d’autres indicateurs, tels que les indicateurs de quantité d’énergie, les indicateurs de volatilité, etc. De plus, le taux d’arrêt peut être ajusté en fonction de la situation du marché pour équilibrer le risque d’arrêt et d’arbitrage.

Direction d’optimisation

  1. Il est possible de tester différentes combinaisons de cycles EMA pour trouver les paramètres de cycle les plus adaptés à la stratégie.

  2. Il est possible de filtrer le signal en ajoutant d’autres indicateurs, tels que RSI, KD, etc., pour améliorer la qualité du signal.

  3. Il est possible d’ajuster le taux de stop loss en fonction des variétés et de configurer un stop loss suivi dynamique pour optimiser la stratégie de stop loss.

  4. Il est possible de combiner des indicateurs techniques tels que la rupture, la forme, pour définir plus de conditions d’ouverture et de placement de positions, ce qui rend la stratégie plus personnalisée.

  5. L’introduction de l’apprentissage automatique peut aider à prédire la direction des tendances cycliques et à déterminer les tendances globales de l’EMA.

Résumer

Cette stratégie est globalement solide et offre de bons rendements en période de baisse. Cependant, il existe un certain risque d’effet de levier, ce qui nécessite une optimisation des paramètres et des conditions de filtrage. L’efficacité de cette stratégie est améliorée si elle peut être optimisée davantage en combinant d’autres indicateurs techniques et des moyens tels que l’apprentissage automatique.

Code source de la stratégie
/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-19 00:00:00
period: 10m
basePeriod: 1m
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/
// © Coinrule

//@version=5
strategy('EMA and MACD with Trailing Stop Loss',
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0

// EMAs 
fastEMA = ta.ema(close, 7)
slowEMA = ta.ema(close, 14)
plot(fastEMA, color = color.blue)
plot(slowEMA, color = color.green)
//buyCondition1 = ta.crossover(fastEMA, slowEMA)
buyCondition1 = fastEMA > slowEMA


// DMI and MACD inputs and calculations
[macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9)
buyCondition2 = ta.crossover(macd_signal, macd)


// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=1) * 0.01

// Determine trail stop loss prices
longStopPrice = 0.0
shortStopPrice = 0.0

longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0

shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + shortTrailPerc)
    math.min(stopValue, shortStopPrice[1])
else
    999999
    

if (buyCondition1 and buyCondition2 and notInTrade and timePeriod)
    strategy.entry(id="Long", direction = strategy.long)

strategy.exit(id="Exit", stop = longStopPrice, limit = shortStopPrice)


//if (sellCondition1 and sellCondition2 and notInTrade and timePeriod)
//strategy.close(id="Close", when = sellCondition1 or sellCondition2)