Stratégie de suivi de tendance adaptative basée sur la moyenne mobile

SMA MA RR
Date de création: 2025-02-18 14:23:08 Dernière modification: 2025-02-18 14:23:08
Copier: 0 Nombre de clics: 322
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance adaptative basée sur la moyenne mobile

Aperçu

La stratégie est un système de suivi de tendances basé sur des croisements de deux lignes de symétrie, qui capture les tendances du marché par la croisement des moyennes mobiles à court et à long terme, et gère les risques de négociation avec un rapport risque/bénéfice de 1: 3. La stratégie utilise des objectifs de stop-loss et de profit fixes, tout en combinant des mécanismes de stop-loss mobiles pour protéger les bénéfices.

Principe de stratégie

La stratégie utilise les moyennes mobiles à court terme de 74 cycles (SMA court) et les moyennes mobiles à long terme de 70 cycles (SMA long) comme indicateurs principaux. Lorsque la moyenne à court terme monte et traverse la moyenne à long terme, le système génère un signal de multiplication; lorsque la moyenne à court terme descend et traverse la moyenne à long terme, le système génère un signal de blanchiment. La taille de la position par transaction est fixée à 0,002, le stop-loss est fixé à 353 dollars, et l’objectif de profit est de 3 fois le stop-loss (1059 dollars).

Avantages stratégiques

  1. Gestion des risques: un ratio de risque/rendement fixe de 1:3 pour une stabilité des rendements dans les transactions à long terme
  2. Signal clarté: utilisation de la stratégie classique de croisement homogène, des signaux de négociation clairs, faciles à comprendre et à exécuter
  3. Automatisation élevée: logique d’entrée et de sortie complète, sans intervention humaine
  4. Protection mobile contre les pertes: grâce à un mécanisme mobile de prévention des pertes, il est possible de verrouiller efficacement les bénéfices réalisés
  5. Réglementation stricte des positions: taille fixe des positions pour éviter les risques excessifs

Risque stratégique

  1. Décalage de la moyenne: la moyenne mobile est essentiellement un indicateur de décalage, qui peut générer des signaux de décalage dans des marchés en évolution rapide
  2. Les marchés oscillante ne s’appliquent pas: les faux signaux peuvent être fréquents dans les marchés oscillants horizontaux, entraînant des pertes continues
  3. Risque de stop-loss fixe: le stop-loss fixe sur le dollar peut ne pas être suffisamment flexible en cas de fortes fluctuations des prix
  4. Limitation de la portée temporelle: la stratégie ne fonctionne que pendant une certaine période de temps, ce qui peut vous faire manquer des opportunités commerciales importantes

Orientation de l’optimisation de la stratégie

  1. Dynamique d’ajustement des cycles de moyenne: permet d’ajuster automatiquement les cycles de moyenne en fonction des fluctuations du marché, améliorant l’adaptabilité de la stratégie
  2. Introduction d’un filtre de volatilité: ajout d’ATR ou d’autres indicateurs de volatilité pour ajuster le stop loss pendant les périodes de forte volatilité
  3. Optimisation de la gestion des positions: réalisation d’ajustements de positions dynamiques basés sur la valeur nette des comptes, amélioration de l’efficacité de l’utilisation des fonds
  4. Augmentation du filtrage des conditions de marché: introduction d’un indicateur de force de tendance pour réduire automatiquement la fréquence des transactions sur les marchés en crise
  5. Améliorer les mécanismes de sortie: développer des mécanismes de profit plus flexibles combinés à des prix de rupture ou à des indicateurs de dynamisme

Résumer

Il s’agit d’une stratégie de suivi de tendance structurée et logiquement claire. Conçue pour les transactions à moyen et long terme par la capture de tendances en croisement de la courbe, la gestion rigoureuse des risques et le contrôle de la position. Bien qu’il existe des défauts inhérents tels que le retard de la courbe, la stabilité et la rentabilité de la stratégie devraient être encore améliorées par la direction d’optimisation suggérée, en particulier par l’introduction d’ajustements de paramètres dynamiques et de filtrage de l’environnement du marché.

Code source de la stratégie
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-17 00:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bitcoin Strategy by Jag", overlay=true)

// Input Parameters
shortSMALength = input.int(74, title="Short SMA Length")
longSMALength = input.int(70, title="Long SMA Length")
trailStopOffset = input.float(353, title="Trailing Stop Offset (USD)")  // Trailing Stop Loss Offset in USD
tradeSize = input.float(1, title="Trade Size")

// Automatically set Take Profit as 3 times Stop Loss
fixedTakeProfit = trailStopOffset * 3

// Backtesting Date Range
startDate = timestamp(2025, 02,13, 0, 0)
endDate = timestamp(2025, 03, 31, 23, 59)
withinDateRange = true

// Indicators
shortSMA = ta.sma(close, shortSMALength)
longSMA = ta.sma(close, longSMALength)

// Crossover Conditions
longCondition = withinDateRange and ta.crossover(shortSMA, longSMA)
shortCondition = withinDateRange and ta.crossunder(shortSMA, longSMA)

// Entry Logic
if (strategy.position_size == 0)  // Only allow new trades if no position is open
    if (longCondition)
        strategy.entry("Long", strategy.long, tradeSize)

    if (shortCondition)
        strategy.entry("Short", strategy.short, tradeSize)

// Exit Logic for Long Position
if (strategy.position_size > 0)
    strategy.exit("Long exit", "Long", stop=strategy.position_avg_price - trailStopOffset, limit=strategy.position_avg_price + fixedTakeProfit)  // Using stop and limit

// Exit Logic for Short Position
if (strategy.position_size < 0)
    strategy.exit("Short Exit", "Short", stop=strategy.position_avg_price + trailStopOffset, limit=strategy.position_avg_price - fixedTakeProfit)  // Using stop and limit

// Plot Moving Averages
plot(shortSMA, color=color.blue, title="Short SMA")
plot(longSMA, color=color.black, title="Long SMA")

// Visual Signals
plotshape(series=longCondition and strategy.position_size == 0, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", size=size.small)
plotshape(series=shortCondition and strategy.position_size == 0, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", size=size.small)