Stratégie de trading dynamique stop-profit et stop-loss EMA RSI MACD

EMA RSI MACD
Date de création: 2024-06-14 15:38:17 Dernière modification: 2024-06-14 15:38:17
Copier: 4 Nombre de clics: 767
1
Suivre
1617
Abonnés

Stratégie de trading dynamique stop-profit et stop-loss EMA RSI MACD

Aperçu

Cette stratégie de négociation combine les trois indicateurs techniques des moyennes mobiles des indices (EMA), des indices de la force relative (RSI) et des moyennes mobiles convergentes (MACD) pour générer des signaux d’achat et de vente lorsque le prix répond à certaines conditions en analysant leurs relations croisées et numériques. En même temps, la stratégie met en place des arrêts et pertes dynamiques pour gérer le risque de négociation.

Principe de stratégie

  1. Calculer la moyenne des prix de clôture plus ou moins élevés ((HLCC4) comme base de la stratégie.
  2. Indicateur EMA et RSI basé sur HLCC4 calculé sur trois périodes différentes.
  3. Calculer la valeur de la colonne MACD
  4. Pour juger du croisement entre EMA1 et EMA2:
    • Lorsque l’EMA1 est porté sur l’EMA2, un signal d’alarme est émis.
    • Un signal baissier est généré lorsque l’EMA1 dépasse l’EMA2.
  5. Les valeurs de l’EMA, du RSI et du MACD sont prises en compte pour déterminer si les conditions d’achat ou de vente sont remplies:
    • Les conditions d’achat sont les suivantes: EMA2 sur EMA1, HLCC4 supérieur à EMA3, RSI supérieur à la marge, prix de clôture supérieur au prix d’ouverture, MACD positif.
    • Conditions de vente: EMA1 en dessous de EMA2, HLCC4 en dessous de EMA3, RSI en dessous de la marge, cours de clôture en dessous du cours d’ouverture, MACD négatif.
  6. Si le signal contraire apparaît pendant la tenue d’une position, il est préférable d’effacer la position existante avant d’ouvrir une nouvelle position.
  7. Lorsque vous achetez ou vendez, définissez un prix stop et stop loss en fonction du nombre de points (pips) que vous avez sélectionné.

Avantages stratégiques

  1. La combinaison de plusieurs indicateurs techniques pour un jugement global améliore la fiabilité du signal.
  2. L’introduction d’un mécanisme d’arrêt de perte dynamique permet de contrôler efficacement le risque.
  3. Le problème de la rétention des positions est évité en éliminant les positions existantes en cas de signal contraire.
  4. Les paramètres sont réglables, adaptatifs et peuvent être optimisés en fonction de différents environnements de marché.

Risque stratégique

  1. En cas de crise, la fréquence des croisements peut entraîner une surcharge de transactions et augmenter les frais de traitement.
  2. Les stop-loss à points fixes peuvent ne pas s’adapter aux fluctuations du marché, ce qui entraîne des stop-loss trop précoces ou des stop-loss trop tardifs.
  3. Les stratégies reposent sur des données historiques et peuvent être retardées par des événements ou des situations inhabituelles.

Orientation de l’optimisation de la stratégie

  1. L’introduction de plus d’indicateurs techniques ou d’indicateurs d’humeur du marché, tels que les bandes de Brin, ATR, etc., peut être envisagée pour améliorer la précision du signal.
  2. Pour les stop-loss, il est possible d’utiliser des méthodes plus dynamiques, comme le suivi des stops ou l’ajustement de la distance de stop-loss en fonction de la volatilité.
  3. Il est possible de filtrer les signaux de trading en combinant avec l’analyse fondamentale, comme les événements majeurs de l’actualité, la publication de données économiques, etc., afin d’éviter de négocier à des périodes spéciales.
  4. Pour la définition des paramètres, il est possible d’utiliser des algorithmes d’apprentissage automatique ou d’optimisation pour trouver la combinaison optimale de paramètres.

Résumer

La stratégie est composée d’un ensemble d’indicateurs techniques tels que l’EMA, le RSI et le MACD, qui forment un système de négociation complet. En cas de tendance, la stratégie permet de capturer efficacement la tendance et de contrôler le risque par un arrêt de perte dynamique. Cependant, en cas de choc, la fréquence des transactions peut affecter les gains.

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

//@version=5
strategy("[BUY/SELL]EMA RSI MACD with TP and SL", overlay=true)

// Input parameters
ema1Length = input.int(9, title="EMA 1 Length")
ema2Length = input.int(21, title="EMA 2 Length")
ema3Length = input.int(34, title="EMA 3 Length")
rsiLength = input.int(14, title="RSI Length")
rsiThreshold = input.int(50, title="RSI Threshold")
macdFastLength = input.int(12, title="MACD Fast Length")
macdSlowLength = input.int(26, title="MACD Slow Length")
macdSignalSmoothing = input.int(9, title="MACD Signal Smoothing")
tpPips = input.int(10, title="Take Profit (pips)")
slPips = input.int(10, title="Stop Loss (pips)")

// HLCC4 calculation
hlcc4_custom = (high + low + close + close) / 4

// Calculate EMA and RSI based on HLCC4
ema1 = ta.ema(hlcc4_custom, ema1Length)
ema2 = ta.ema(hlcc4_custom, ema2Length)
ema3 = ta.ema(hlcc4_custom, ema3Length)
rsi = ta.rsi(hlcc4_custom, rsiLength)

// Calculate MACD Histogram
[a, b, histogram] = ta.macd(hlcc4_custom, macdFastLength, macdSlowLength, macdSignalSmoothing)

// EMA1 and EMA2 crossover conditions
emaCrossUp = ta.crossover(ema1, ema2)
emaCrossDown = ta.crossunder(ema1, ema2)

// BUY signal conditions
buySignal = emaCrossUp and hlcc4_custom > ema3 and rsi > rsiThreshold and close > open and histogram > 0

// SELL signal conditions
sellSignal = emaCrossDown and hlcc4_custom < ema3 and rsi < rsiThreshold and close < open and histogram < 0

var float entryPrice = na
var float tpPrice = na
var float slPrice = na

// Check if there is an open position and a contrary signal appears, then close all old orders first
if strategy.opentrades > 0
    if sellSignal and strategy.position_size > 0
        strategy.close("Buy", comment="Close Buy Order")
    if buySignal and strategy.position_size < 0
        strategy.close("Sell", comment="Close Sell Order")

// Place a BUY order when there is a BUY signal and set TP and SL based on pips
if buySignal and strategy.position_size == 0
    entryPrice := close
    tpPrice := entryPrice + tpPips * syminfo.mintick
    slPrice := entryPrice - slPips * syminfo.mintick
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Buy", limit=tpPrice, stop=slPrice)

// Place a SELL order when there is a SELL signal and set TP and SL based on pips
if sellSignal and strategy.position_size == 0
    entryPrice := close
    tpPrice := entryPrice - tpPips * syminfo.mintick
    slPrice := entryPrice + slPips * syminfo.mintick
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Sell", limit=tpPrice, stop=slPrice)

// Plot the crossover points of EMA1 and EMA2
plotshape(series=emaCrossUp, location=location.belowbar, color=color.aqua, style=shape.triangleup, title="EMA Cross Up", size=size.small)
plotshape(series=emaCrossDown, location=location.abovebar, color=color.red, style=shape.triangledown, title="EMA Cross Down", size=size.small)

// Plot the EMA lines on the chart
plot(ema1, title="EMA 1", color=color.aqua)
plot(ema2, title="EMA 2", color=color.red)
plot(ema3, title="EMA 3", color=color.yellow, linewidth=2)