Stratégie de trading de tendance stop profit et stop loss à double moyenne mobile

SMA MA TP SL CROSSOVER
Date de création: 2025-02-20 15:08:54 Dernière modification: 2025-02-27 17:36:23
Copier: 0 Nombre de clics: 331
2
Suivre
319
Abonnés

Stratégie de trading de tendance stop profit et stop loss à double moyenne mobile Stratégie de trading de tendance stop profit et stop loss à double moyenne mobile

Aperçu

Cette stratégie est un système de trading de suivi de tendance basé sur le croisement de deux courbes de valeurs, combiné à un mécanisme de gestion des risques. La stratégie utilise une moyenne mobile simple (SMA) de 9 cycles et 21 cycles pour capturer les tendances du marché, tout en définissant des arrêts et des arrêts de 1% pour contrôler les risques.

Principe de stratégie

La logique centrale de la stratégie est basée sur les caractéristiques de continuité de la tendance du marché. Le point de conversion de la tendance est jugé en observant les croisements des moyennes mobiles à court terme (cycle 9) et à long terme (cycle 21). Lorsqu’une “fourche d’or” se forme lorsque la courte moyenne traverse la moyenne à long terme, indiquant le début d’une tendance à la hausse, le système émet plusieurs signaux. Lorsqu’une “fourche morte” se forme lorsque la courte moyenne traverse la moyenne à long terme, indiquant la fin possible d’une tendance à la hausse, le système est à plat.

Avantages stratégiques

  1. La capacité de saisir les tendances est forte: les points de conversion de la tendance sont mieux captés par le croisement de deux lignes de même longueur, ce qui permet de mieux saisir les principales tendances du marché.
  2. Le contrôle des risques est parfait: des stop-loss et des stops à taux fixe sont mis en place pour contrôler efficacement les risques liés aux transactions individuelles.
  3. Le système est entièrement automatisé et ne nécessite aucune intervention humaine.
  4. L’interface graphique permet de visualiser clairement les signaux de trading et les zones de contrôle du risque.
  5. Optimisation des paramètres est flexible: les cycles de ligne moyenne et le ratio de stop-loss peuvent être ajustés en fonction des caractéristiques du marché.

Risque stratégique

  1. Risque de marché oscillant: Dans les marchés oscillants horizontaux, des croisements de moyenne fréquents peuvent entraîner de faux signaux.
  2. Risque de glissement: les prix de transaction réels peuvent être très éloignés des prix de signaux en cas de forte volatilité du marché.
  3. Risque de renversement de tendance: les arrêts fixes peuvent être insuffisants pour faire face à une forte volatilité en cas de renversement soudain d’une tendance forte.
  4. Paramétralité: la performance de la stratégie est sensible aux paramètres de la moyenne et du stop loss.

Orientation de l’optimisation de la stratégie

  1. Introduction de filtres de tendance: des indicateurs de force de tendance tels que l’ADX peuvent être ajoutés pour ouvrir une position lorsque la tendance est claire.
  2. Mécanisme d’arrêt dynamique: l’ATR ou la volatilité peuvent être utilisés pour ajuster dynamiquement l’amplitude de l’arrêt.
  3. Augmentation de la confirmation du volume des transactions: utilisez le volume des transactions comme indicateur de confirmation auxiliaire du signal de transaction.
  4. Les paramètres d’optimisation s’adaptent à eux-mêmes: les cycles de la ligne moyenne sont ajustés en fonction de la dynamique des fluctuations du marché.
  5. Ajouter un filtre de force de tendance: la force de la tendance peut être déterminée par des indicateurs tels que le RSI.

Résumer

La stratégie est un système de trading de suivi de tendance plus complet grâce à une capture de tendance croisée à double équilibre et à un contrôle de risque combiné avec un mécanisme de stop-loss. Bien que des faux signaux puissent être générés dans des marchés instables, la stabilité et la rentabilité de la stratégie peuvent être encore améliorées par une optimisation raisonnable des paramètres et l’ajout d’indicateurs auxiliaires.

Code source de la stratégie
/*backtest
start: 2024-02-21 00:00:00
end: 2024-12-13 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Moving Average Crossover with Stop Loss and Take Profit", overlay=true)

// Parameters for moving averages
short_length = input.int(9, title="Short Moving Average Length")  // Optimized for 15-minute time frame
long_length = input.int(21, title="Long Moving Average Length")   // Optimized for 15-minute time frame

// Parameters for risk management
stop_loss_percent = input.float(1.0, title="Stop Loss (%)") / 100  // 1% stop loss
take_profit_percent = input.float(1.0, title="Take Profit (%)") / 100  // 1% take profit

// Calculate moving averages
short_ma = ta.sma(close, short_length)
long_ma = ta.sma(close, long_length)

// Plot moving averages
plot(short_ma, color=color.blue, title="Short MA")
plot(long_ma, color=color.orange, title="Long MA")

// Entry and exit conditions
long_condition = ta.crossover(short_ma, long_ma)  // Golden Cross
short_condition = ta.crossunder(short_ma, long_ma)  // Death Cross

// Execute strategy with stop loss and take profit
if (long_condition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Long", stop=strategy.position_avg_price * (1 - stop_loss_percent), limit=strategy.position_avg_price * (1 + take_profit_percent)  )

if (short_condition)
    strategy.close("Long")  // Close long position on Death Cross

// Plot Buy/Sell Signals
plotshape(series=long_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=short_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Draw 1% stop loss level as a transparent red rectangle
var float stop_loss_level = na
var float entry_price = na
if (strategy.position_size > 0)  // Only update when in a trade
    stop_loss_level := strategy.position_avg_price * (1 - stop_loss_percent)
    entry_price := strategy.position_avg_price

// Create transparent colors
transparent_red = color.new(color.black, 90)  // 90% transparency
transparent_green = color.new(color.green, 90)  // 90% transparency

// Plot stop loss and entry levels conditionally
plot(strategy.position_size > 0 ? stop_loss_level : na, color=transparent_red, title="Stop Loss Level", linewidth=1)
plot(strategy.position_size > 0 ? entry_price : na, color=transparent_green, title="Entry Price", linewidth=1)

// Fill the area between stop loss and entry price conditionally
fill( plot(strategy.position_size > 0 ? stop_loss_level : na),  plot(strategy.position_size > 0 ? entry_price : na),  color=transparent_red)