Stratégie de croisement de moyennes mobiles multi-périodes avec suivi de tendance dynamique

SMA EMA MA
Date de création: 2024-12-13 10:40:30 Dernière modification: 2024-12-13 10:40:30
Copier: 0 Nombre de clics: 475
1
Suivre
1617
Abonnés

Stratégie de croisement de moyennes mobiles multi-périodes avec suivi de tendance dynamique

Aperçu

La stratégie est un système de trading de suivi de tendance basé sur des moyennes pluricycliques. La stratégie utilise les moyennes mobiles simples à 89 cycles et à 21 cycles (SMA) pour déterminer la direction de la tendance générale du marché, tout en combinant les hauts et les bas de l’indice des moyennes mobiles à 5 cycles (EMA) pour rechercher des signaux de trading spécifiques. La stratégie utilise une méthode de gestion de position double et combine des arrêts fixes et des arrêts de suivi pour contrôler le risque.

Principe de stratégie

La logique fondamentale de la stratégie comprend les éléments clés suivants :

  1. Détermination de la tendance: utilisez la position relative des SMA de 89 cycles et de 21 cycles et la position des prix pour déterminer la tendance. Lorsque le prix et l’EMA de 5 cycles sont au-dessus du SMA de 21 cycles et que le SMA de 21 cycles est au-dessus du SMA de 89 cycles, la tendance est à la hausse; au contraire, la tendance est à la baisse.
  2. Signaux d’entrée: dans une tendance à la hausse, entrez plus lorsque le prix revient au bas de l’EMA de 5 cycles; dans une tendance à la baisse, entrez à vide lorsque le prix rebondit au haut de l’EMA de 5 cycles.
  3. Gestion des positions: chaque fois que le signal est déclenché, deux positions contractuelles égales sont ouvertes.
  4. Contrôle des risques: le premier poste est géré par des objectifs de stop loss et de profit fixes, le second par un stop loss suivi.

Avantages stratégiques

  1. Confirmation de plusieurs périodes: une combinaison de moyennes mobiles de différentes périodes permet de juger plus globalement les tendances du marché et de réduire les faux signaux.
  2. La méthode de stop flexible: en combinant les stops fixes et les stops suivis, vous pouvez profiter des fluctuations à court terme sans perdre de vue les grandes tendances.
  3. Le risque est contrôlable: la position de stop loss est définie et le seuil de risque est fixé pour chaque signal de transaction.
  4. Opération systématisée: les règles de transaction sont claires, indépendantes du jugement subjectif, faciles à mettre en œuvre de manière programmatique.

Risque stratégique

  1. Risque de choc: dans le cas d’une correction horizontale, des croisements fréquents peuvent entraîner un excès de faux signaux.
  2. Risque de glissement: les prix de transaction réels peuvent être très éloignés des prix de signaux théoriques en cas de forte volatilité du marché.
  3. Risques de gestion des fonds: la méthode de négociation avec un nombre fixe de contrats peut ne pas convenir à toutes les tailles de fonds.
  4. Sensitivité des paramètres: le choix de la période de la moyenne mobile a un impact important sur la performance de la stratégie et nécessite une optimisation pour différents marchés.

Orientation de l’optimisation de la stratégie

  1. Gestion dynamique des positions: il est recommandé d’ajuster dynamiquement le nombre de contrats de négociation en fonction de la valeur nette du compte et de la volatilité du marché.
  2. Filtrage de l’environnement de marché: augmentation de l’indicateur de force de tendance (comme l’ADX) et réduction de la fréquence de négociation dans les marchés instables.
  3. Optimisation de l’arrêt des pertes: l’utilisation de l’ATR peut être envisagée pour ajuster dynamiquement la distance d’arrêt afin d’améliorer l’adaptabilité de la stratégie aux différents environnements de marché.
  4. Confirmation de signaux: augmentation des indicateurs auxiliaires tels que le volume de transactions, la dynamique et la fiabilité des signaux de négociation.

Résumer

La stratégie est un système structuré de suivi des tendances, qui capture les tendances du marché grâce à une combinaison de courbes moyennes à périodes multiples et contrôle les risques par une gestion de position flexible et un arrêt-stop. Bien qu’il y ait un certain espace d’optimisation, le cadre de base de la stratégie est plus pratique et évolutif.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tobiashartemink2

//@version=5
strategy("High 5 Trading Technique", overlay=true)

// --- Input parameters ---
sma89Length = input.int(title="SMA 89 Length", defval=89)
sma21Length = input.int(title="SMA 21 Length", defval=21)
ema5HighLength = input.int(title="EMA 5 High Length", defval=5)
ema5LowLength = input.int(title="EMA 5 Low Length", defval=5)
contracts = input.int(title="Aantal Contracten", defval=1)
stopLossPoints = input.int(title="Stop Loss Points per Contract", defval=25)
takeProfitPoints = input.int(title="Take Profit Points per Contract", defval=25)

// --- Calculate moving averages ---
sma89 = ta.sma(close, sma89Length)
sma21 = ta.sma(close, sma21Length)
ema5High = ta.ema(high, ema5HighLength)
ema5Low = ta.ema(low, ema5LowLength)

// --- Identify trend and order of moving averages ---
longSetup = close > sma89 and close > sma21 and ema5High > sma21 and sma21 > sma89
shortSetup = close < sma89 and close < sma21 and ema5Low < sma21 and sma21 < sma89

// --- Entry signals ---
longTrigger = longSetup and close <= ema5Low
shortTrigger = shortSetup and close >= ema5High

// --- Entry orders ---
if (longTrigger)
    strategy.entry("Long 1", strategy.long, qty=contracts)
    strategy.entry("Long 2", strategy.long, qty=contracts)

if (shortTrigger)
    strategy.entry("Short 1", strategy.short, qty=contracts)
    strategy.entry("Short 2", strategy.short, qty=contracts)

// --- Stop-loss and take-profit for long positions ---
if (strategy.position_size > 0)
    strategy.exit("Exit Long 1", "Long 1", stop=strategy.position_avg_price - stopLossPoints, limit=strategy.position_avg_price + takeProfitPoints)
    strategy.exit("Exit Long 2", "Long 2", stop=strategy.position_avg_price - stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)

// --- Stop-loss and take-profit for short positions ---
if (strategy.position_size < 0)
    strategy.exit("Exit Short 1", "Short 1", stop=strategy.position_avg_price + stopLossPoints, limit=strategy.position_avg_price - takeProfitPoints)
    strategy.exit("Exit Short 2", "Short 2", stop=strategy.position_avg_price + stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)

// --- Plot moving averages ---
plot(sma89, color=color.blue, linewidth=2)
plot(sma21, color=color.red, linewidth=2)
plot(ema5High, color=color.green, linewidth=2)
plot(ema5Low, color=color.orange, linewidth=2)