Stratégie de suivi de tendance croisée à moyenne mobile à cibles multiples

EMA SL TP
Date de création: 2025-02-08 15:22:15 Dernière modification: 2025-02-08 15:22:15
Copier: 6 Nombre de clics: 391
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance croisée à moyenne mobile à cibles multiples

Aperçu

La stratégie est un système de suivi de la tendance basé sur les signaux de croisement de l’EMA. Elle utilise l’EMA à 34 cycles comme indicateur principal de la tendance, combinée à un mécanisme de prise de bénéfices et de contrôle des risques par lots, permettant une négociation entièrement automatisée. Le cœur de la stratégie est de capturer le point de départ de la tendance en croisant le prix avec l’EMA et de maximiser les opportunités de profit en définissant des objectifs de multiples gains.

Principe de stratégie

La stratégie fonctionne principalement selon les principes clés suivants:

  1. Utilisation de l’EMA à 34 cycles comme indicateur de tendance
  2. Lorsque le prix passe à la hausse à travers l’EMA, ouvrez plus de positions à la position du prix de l’EMA
  3. La mise en place d’un blocage des lots en utilisant un objectif de triple rendement (5%, 10%, 15%)
  4. Stop loss de 7% pour maîtriser le risque
  5. La conservation de 10% de la position comme une position à long terme pour saisir la grande tendance
  6. Évitez les transactions excessives avec un intervalle minimal de 8 heures
  7. Les deux façons de soutenir le volume de négociation fixe et la taille de position dynamique

Avantages stratégiques

  1. Une conception à but lucratif multiple qui fonctionne bien dans différents environnements de marché
  2. En conservant une partie de la position comme une position à long terme, vous pouvez profiter des gains de la grande tendance
  3. Le trading à effet de levier, adapté à vos préférences en matière de risque
  4. Des mécanismes pour empêcher les sur-traitements
  5. Gestion de position flexible, avec un choix de positions fixes ou dynamiques
  6. Le système est entièrement automatisé, sans intervention humaine.
  7. Les paramètres sont flexibles et s’adaptent à différents styles de négociation

Risque stratégique

  1. L’EMA en tant qu’indicateur de retard peut entraîner des retards dans le temps d’entrée
  2. Des arrêts multiples peuvent survenir dans un marché en crise
  3. L’utilisation d’un levier peut augmenter les pertes
  4. Les stop-loss à pourcentage fixe peuvent ne pas être suffisamment flexibles dans des marchés très volatils
  5. L’objectif de multiples bénéfices pourrait entraîner une sortie prématurée d’une tendance forte Contre-mesures :
  • Recommandé dans les marchés où la tendance est claire
  • Ratio de stop-loss ajusté en fonction des fluctuations du marché
  • Prudence dans l’utilisation des leviers
  • Retour régulier des paramètres d’optimisation

Orientation de l’optimisation de la stratégie

  1. Augmentation des filtres d’intensité de tendance pour améliorer la qualité de l’entrée
  2. Introduction de mécanismes de stop-loss dynamiques tels que le stop-loss ATR
  3. Ajout de l’indicateur de confirmation de transaction
  4. Développer des mécanismes d’objectifs de rentabilité adaptés
  5. Ajout d’un module de jugement sur les conditions du marché
  6. Mécanisme d’ajustement dynamique pour l’optimisation de l’intervalle entre les transactions Ces optimisations peuvent améliorer la stabilité et la rentabilité de la stratégie et réduire l’impact des faux signaux.

Résumer

Il s’agit d’une stratégie de suivi de tendance conçue de manière rationnelle et logique. Elle permet de gérer le risque en capturant les tendances de manière linéaire, en utilisant des objectifs de profit multiples et en conservant une partie de la position.

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

//@version=5
strategy("EMA25 Long Strategy", overlay=true)

// Inputs
initial_capital = input.float(50000, title="Initial Capital ($)")
leverage = input.int(1, title="Leverage")
mode = input.string("Fixed Volume", title="Position Sizing Mode", options=["Fixed Volume", "Current Balance"])
ema_length = input.int(34, title="EMA Length")
stop_loss_percent = input.float(7, title="Stop Loss (%)", step=0.1) / 100
take_profit_1_percent = input.float(5, title="Take Profit 1 (%)", step=0.1) / 100
take_profit_2_percent = input.float(10, title="Take Profit 2 (%)", step=0.1) / 100
take_profit_3_percent = input.float(15, title="Take Profit 3 (%)", step=0.1) / 100
position_size_percent = input.float(100, title="Position Size (%)", step=1) / 100
long_term_hold_percent = input.float(10, title="Long Term Hold (%)", step=1) / 100
trade_delay = input.int(8, title="Trade Delay (hours)", minval=1) * 60  // Convert hours to minutes

// Calculate EMA
ema = ta.ema(close, ema_length)
// Plot EMA
plot(ema, title="EMA25", color=color.blue)

// Determine if a new trade can be placed
var float last_trade_time = na
can_trade = na(last_trade_time) or (time - last_trade_time) > trade_delay * 60 * 1000

// Determine position size based on selected mode
var float position_size = na
if (mode == "Fixed Volume")
    position_size := initial_capital * leverage * position_size_percent / close
else
    position_size := strategy.equity * leverage * position_size_percent / close

// Entry Condition
var float entry_price = na
price_crossed_ema_up = ta.crossover(close, ema)
price_crossed_ema_down = ta.crossunder(close, ema)

if ((price_crossed_ema_up or price_crossed_ema_down) and can_trade)
    entry_price := ema
    strategy.entry("Long", strategy.long, qty=position_size, limit=entry_price)
    last_trade_time := time
    label.new(bar_index, entry_price, text="Entry", color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)

// Stop Loss
strategy.exit("Stop Loss", from_entry="Long", stop=entry_price * (1 - stop_loss_percent))

// Take Profits
take_profit_1_price = entry_price * (1 + take_profit_1_percent)
take_profit_2_price = entry_price * (1 + take_profit_2_percent)
take_profit_3_price = entry_price * (1 + take_profit_3_percent)

strategy.exit("Take Profit 1", from_entry="Long", limit=take_profit_1_price, qty=position_size / 3)
strategy.exit("Take Profit 2", from_entry="Long", limit=take_profit_2_price, qty=position_size / 3)
strategy.exit("Take Profit 3", from_entry="Long", limit=take_profit_3_price, qty=position_size / 3)

// Long Term Hold (10% of position)
hold_qty = position_size * long_term_hold_percent
if (strategy.position_size > hold_qty)
    strategy.close("Long Term Hold")