Le recul de tendance peut ajuster la stratégie d'entrée dynamique du risque

SMA EMA 移动平均线交叉 回调策略 风险管理 止损止盈 突破点保护 趋势确认
Date de création: 2025-03-26 13:29:16 Dernière modification: 2025-03-26 13:29:16
Copier: 0 Nombre de clics: 276
2
Suivre
319
Abonnés

Le recul de tendance peut ajuster la stratégie d’entrée dynamique du risque Le recul de tendance peut ajuster la stratégie d’entrée dynamique du risque

Aperçu

La stratégie d’entrée dynamique de risque de reprise de tendance est conçue pour les traders qui souhaitent établir des positions multiples dans le revirement après un changement de tendance à court terme, tout en entrant immédiatement en position haussière lorsque les conditions du marché sont favorables à la baisse. La stratégie combine une confirmation de tendance croisée SMA, un pourcentage fixe de reprise d’entrée et des paramètres de gestion du risque ajustables pour une exécution optimale des transactions.

Le cœur de la stratégie est d’utiliser une simple moyenne mobile (SMA) croisée de 10 cycles et 25 cycles pour confirmer la direction de la tendance, et combinée à une moyenne mobile de l’indice de 150 cycles (EMA) comme condition de filtrage supplémentaire pour les transactions à vide. Les transactions à plusieurs niveaux n’entrent pas immédiatement après la croisée de la SMA, mais attendent que le prix revienne à un pourcentage spécifié pour entrer, ce qui optimise le prix d’entrée et augmente le ratio de risque-rendement.

Principe de stratégie

Le principe de fonctionnement de cette stratégie peut être divisé en plusieurs parties clés:

  1. Mécanisme de reconnaissance des tendances:

    • Lorsque le SMA à 10 cycles est traversé par le SMA à 25 cycles, le système identifie le signal de changement de tendance à la hausse
    • Lorsque le SMA de 10 cycles dépasse le SMA de 25 cycles, le système identifie un signal de basculement de tendance baissière
    • Les transactions à vide ne sont exécutées que lorsque le prix est inférieur à 150 cycles EMA, afin d’assurer la cohérence avec la tendance plus large
  2. Mécanisme de retour à la compétition:

    • Ne pas entrer immédiatement lorsque le signal de croisement SMA apparaît, mais attendre que le prix revienne et entrer ensuite dans le plus
    • Le point d’entrée est défini comme la position d’un pourcentage fixe (défaut de 1%) de rétroaction depuis le plus haut point récent.
    • Système de calcul dynamique et de cartographie des supports pour visualiser les zones d’arrivée de retour
    • La hausse des cours a déclenché une entrée en bourse multiple
  3. Règles d’entrée à vide:

    • Si le prix est inférieur à 150 cycles EMA, il est immédiatement en position vide.
  4. Stratégies de gestion des risques et de sortie:

    • TP - objectif de profit modifiable (défaut: 1000 points)
    • Stop Loss (SL) - un nombre de points réglable pour le niveau de Stop Loss (défaut: 250 points)
    • Point de couverture ((BE) - lorsque le prix se déplace dans la direction favorable, le stop loss se déplace vers le point de couverture
    • Condition de sortie supplémentaire pour les positions à plusieurs niveaux: forcer une sortie de plusieurs niveaux pour éviter les pertes causées par un renversement de tendance si le prix est inférieur à 150 cycles d’EMA et que la position à plusieurs niveaux a traversé 25 cycles d’EMA sous SMA de 10 cycles

La stratégie utilise des variables persistantes pour suivre les signaux de reprise et s’assurer qu’ils entrent au bon moment. Lorsque la position est vide, le système réinitialise tous les signaux et les niveaux pour préparer le prochain signal de négociation.

Avantages stratégiques

Après une analyse approfondie du code, la stratégie présente les avantages suivants:

  1. Temps d’entrée optimisé:

    • La stratégie obtient un meilleur prix d’entrée en attendant le rappel à l’entrée plutôt que d’entrer immédiatement lorsque le signal de croisement apparaît.
    • Cette approche réduit le risque initial et augmente le potentiel de risque/rendement.
    • Le pourcentage de retournement est ajustable pour s’adapter aux différentes conditions du marché et aux préférences de risque des traders.
  2. Une gestion complète des risques:

    • Des paramètres de stop-loss et de stop-loss précis assurent un contrôle clair du risque pour chaque transaction
    • Les mécanismes de couverture protègent les transactions réalisées et réduisent le taux de retrait global
    • Tous les paramètres de risque peuvent être ajustés en fonction de la volatilité du marché
  3. Filtre d’alignement des tendances:

    • Utilisation de l’EMA150 comme condition de filtrage supplémentaire pour s’assurer que les transactions à court terme sont conformes à la tendance à long terme
    • Règles de retrait supplémentaires protègent les fonds contre des pertes importantes lorsque la tendance est inversée
  4. Commentaires visuels:

    • Le système trace les niveaux de réglage et les signaux sur un graphique, fournissant un guide visuel clair
    • Les points d’exécution et de sortie des transactions sont clairement marqués pour faciliter le suivi et l’amélioration des stratégies
  5. Très adaptable:

    • Les stratégies s’appliquent à toutes les catégories d’actifs, y compris les actions, les devises et les indices
    • Les paramètres sont adaptables pour différents environnements de marché et styles de négociation

Risque stratégique

Bien que cette stratégie présente de nombreux avantages, les risques suivants doivent être pris en compte:

  1. Les risques du marché rapide:

    • Dans un marché très volatile, les prix peuvent dépasser les points d’entrée ou les niveaux de stop-loss prévus.
    • Les événements de marché extrêmes peuvent entraîner une augmentation des points de glissement et affecter les prix d’exécution réels.
    • La solution: ajuster le pourcentage de rebond et les paramètres de risque pendant une période de forte volatilité, ou envisager de suspendre le trading
  2. La réaction de la bourse:

    • La stratégie de dépendance à la tendance confirme qu’il peut y avoir des signaux erronés dans un marché oscillant à la verticale
    • La fréquence des croisements SMA peut entraîner une série de pertes
    • Solution: ajouter des filtres de force de tendance supplémentaires, tels que l’indicateur ADX, ou suspendre la négociation dans un marché en crise
  3. Les limites de la gestion des risques de points fixes:

    • Les arrêts et arrêts à points fixes peuvent ne pas être adaptés aux différentes volatilités du marché.
    • Une augmentation de la volatilité peut entraîner un arrêt prématuré ou une cesse trop loin de la cible.
    • Solution: considérer les niveaux de stop loss et de stop stop dynamique basés sur l’ATR
  4. Une dépendance excessive à l’égard des indicateurs techniques:

    • La stratégie repose entièrement sur des indicateurs techniques et ignore les facteurs fondamentaux et l’humeur du marché.
    • Les SMA et EMA sont des indicateurs en retard qui peuvent ne pas répondre à un tournant du marché en temps opportun.
    • La solution: combiner avec d’autres indicateurs de tête ou d’émotion du marché, comme le RSI ou l’indicateur des flux de trésorerie
  5. Risques liés à l’optimisation des paramètres:

    • Les paramètres d’optimisation excessive peuvent entraîner une adéquation de la courbe et une mauvaise performance sur les marchés futurs.
    • La solution: faire un retour d’expérience avec suffisamment de données historiques et vérifier la solidité de la stratégie dans différentes conditions de marché

Orientation de l’optimisation de la stratégie

Sur la base de l’analyse du code, voici les principales directions dans lesquelles cette stratégie peut être optimisée:

  1. Gestion dynamique des risques:

    • Conversion des points fixes de stop loss et de stop loss en niveaux dynamiques basés sur l’ATR
    • Cela permet à la gestion des risques de s’adapter à la volatilité du marché actuel, en définissant des arrêts plus petits pendant les basses volatilités et des arrêts plus importants pendant les hautes volatilités.
    • Méthode de mise en œuvre:stopDistance = input.float(2.0) * ta.atr(14)Le calcul de
  2. Filtrage de la force de la tendance:

    • Ajouter l’ADX (indice de direction moyenne) ou un indicateur similaire pour mesurer la force de la tendance
    • Exécuter une transaction uniquement lorsque la tendance est suffisamment forte (par exemple, ADX > 25) pour éviter les faux signaux dans les marchés en crise
    • Cela réduira considérablement le nombre de signaux erronés et augmentera les chances de succès.
  3. Analyse de plusieurs périodes:

    • Intégrer les informations sur les tendances des périodes plus longues pour s’assurer que les transactions sont conformes aux tendances plus larges
    • Par exemple, les transactions ne sont effectuées que si la ligne journalière et le graphique à 4 heures montrent la même direction de tendance.
    • Cette méthode permet d’améliorer le taux de réussite des transactions et de réduire le risque de contrepartie.
  4. Reconnaissance de rétroéclairage intelligente:

    • Le simple pourcentage fixe est remplacé par une méthode plus complexe d’identification des retours
    • Considérez l’utilisation de niveaux de rétroaction de Fibonacci ou de résistances de support critiques
    • Cela offrirait des points d’entrée plus significatifs et mieux alignés sur la structure du marché.
  5. Confirmation de la transaction:

    • Ajout d’une analyse du volume des transactions dans le cadre d’un signal de confirmation
    • Trouver des points d’entrée de meilleure qualité dans les retraits de bas volume et les percées de haut volume
    • La confirmation du volume des transactions peut améliorer considérablement la qualité du signal et réduire le bruit des transactions.
  6. Paramètres d’adaptation:

    • Développer un mécanisme permettant d’ajuster les paramètres stratégiques en fonction de l’évolution récente du marché
    • Par exemple, augmenter automatiquement le pourcentage de rétroaction lorsque la volatilité augmente
    • Cette capacité d’adaptation permet à une stratégie de rester robuste dans différents environnements de marché.

Résumer

Une stratégie d’entrée dynamique est un système de négociation bien conçu qui combine la reconnaissance des tendances, l’optimisation de l’entrée et la gestion complète des risques. En attendant une reprise des prix, la stratégie obtient un meilleur rapport entre le prix d’entrée et le rendement du risque que le simple système de croisement SMA.

Le principal avantage de cette stratégie réside dans sa flexibilité et son ajustabilité, permettant aux traders d’ajuster les paramètres en fonction de leurs préférences personnelles en matière de risque et des conditions du marché. Parallèlement, la fonctionnalité intégrée de gestion des risques (incluant les points d’arrêt, d’arrêt et de couverture) offre une protection complète des fonds.

Cependant, la stratégie présente également des limites, notamment en ce qui concerne la performance sur des marchés en crise et la gestion des risques de points fixes. L’application d’optimisations recommandées, telles que la gestion des risques dynamiques, le filtrage de l’intensité de la tendance et la confirmation du volume des transactions, peut considérablement améliorer la solidité et la performance globale de la stratégie.

C’est une stratégie de base idéale pour les traders de swing, qui peut être personnalisée davantage en fonction de leur style de trading et de leurs objectifs. Avec des paramètres raisonnables et des ajustements de surveillance constants, cette stratégie a le potentiel de fournir des résultats de trading stables dans une variété d’environnements de marché.

Code source de la stratégie
/*backtest
start: 2024-08-01 00:00:00
end: 2025-03-25 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("BTCUSD with adjustable sl,tp", 
     overlay=true, 
     initial_capital=10000, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=10, 
     calc_on_every_tick=true)

// ─────────────────────────────────────────────────────────────────────────────
//  ▌ USER INPUTS
// ─────────────────────────────────────────────────────────────────────────────
longSignalStyle  = input.string("Label Up", title="Long Signal Style", options=["Label Up", "Arrow Up", "Cross"])
shortSignalStyle = input.string("Label Down", title="Short Signal Style", options=["Label Down", "Arrow Down", "Cross"])

// Adjustable exit parameters (in points)
tpDistance    = input.int(1000, "Take Profit Distance (points)", minval=1)
slDistance    = input.int(250, "Stop Loss Distance (points)",   minval=1)
beTrigger     = input.int(500, "Break-Even Trigger Distance (points)", minval=1)

// Adjustable retracement percentage for long pullback entry (e.g. 0.01 = 1%)
retracementPct = input.float(0.01, "Retracement Percentage (e.g. 0.01 for 1%)", step=0.001)

// ─────────────────────────────────────────────────────────────────────────────
//  ▌ INDICATORS: SMA & EMA
// ─────────────────────────────────────────────────────────────────────────────
sma10  = ta.sma(close, 10)
sma25  = ta.sma(close, 25)
ema150 = ta.ema(close, 150)

plot(sma10,  color=color.blue,   title="SMA 10")
plot(sma25,  color=color.red,    title="SMA 25")
plot(ema150, color=color.orange, title="EMA 150")

// ─────────────────────────────────────────────────────────────────────────────
//  ▌ ENTRY CONDITIONS
// ─────────────────────────────────────────────────────────────────────────────
longCondition  = ta.crossover(sma10, sma25)
shortCondition = ta.crossunder(sma10, sma25)
shortValid     = close < ema150  // Only take shorts if price is below EMA150

// Plot immediate entry signals (for visual reference)
plotshape(longCondition and (strategy.position_size == 0), title="Long Signal", 
     style=(longSignalStyle == "Label Up" ? shape.labelup : (longSignalStyle == "Arrow Up" ? shape.triangleup : shape.cross)), 
     location=location.belowbar, color=color.green, text="Long", size=size.small)
plotshape(shortCondition and shortValid and (strategy.position_size == 0), title="Short Signal", 
     style=(shortSignalStyle == "Label Down" ? shape.labeldown : (shortSignalStyle == "Arrow Down" ? shape.triangledown : shape.cross)), 
     location=location.abovebar, color=color.red, text="Short", size=size.small)

// ─────────────────────────────────────────────────────────────────────────────
//  ▌ LONG PULLBACK ENTRY USING FIXED PERCENTAGE RETRACEMENT
// ─────────────────────────────────────────────────────────────────────────────
// We use persistent variables to track the pullback signal.
var bool longSignalActive = false
var float pullHigh = na        // highest high since long signal activation
var float retraceLevel = na    // level = pullHigh * (1 - retracementPct)

// Only consider new entries when no position is open.
if strategy.position_size == 0
    // When a long crossover occurs, activate the signal and initialize pullHigh.
    if longCondition
        longSignalActive := true
        pullHigh := high

    // If signal active, update pullHigh and compute retracement level.
    if longSignalActive
        pullHigh := math.max(pullHigh, high)
        retraceLevel := pullHigh * (1 - retracementPct)

        // When price bounces upward and crosses above the retracement level, enter long
        if ta.crossover(close, retraceLevel)
            strategy.entry("Long", strategy.long)
            longSignalActive := false

    // Short entries: enter immediately if conditions are met
    if shortCondition and shortValid
        strategy.entry("Short", strategy.short)

// ─────────────────────────────────────────────────────────────────────────────
//  ▌ EXIT CONDITIONS WITH ADJUSTABLE TP, SL & BE
// ─────────────────────────────────────────────────────────────────────────────
var bool beLong  = false
var bool beShort = false

// LONG EXIT LOGIC
if strategy.position_size > 0 and strategy.position_avg_price > 0
    longEntry = strategy.position_avg_price

    // Additional exit: if SMA(10) crosses below SMA(25) while price < EMA150, exit long
    if ta.crossunder(sma10, sma25) and close < ema150
        label.new(bar_index, low, "SMA Exit", style=label.style_label_down, color=color.red, textcolor=color.white)
        strategy.close("Long", comment="SMA Cross Exit")

    // Break-even trigger if price moves in favor by beTrigger points
    if close >= longEntry + beTrigger
        beLong := true

    effectiveLongStop = beLong ? longEntry : (longEntry - slDistance)
    if close <= effectiveLongStop
        label.new(bar_index, low, (beLong ? "BE Hit" : "SL Hit"), style=label.style_label_down, color=color.red, textcolor=color.white)
        strategy.close("Long", comment=(beLong ? "BE Hit" : "SL Hit"))

    if close >= longEntry + tpDistance
        label.new(bar_index, high, "TP Hit", style=label.style_label_up, color=color.green, textcolor=color.white)
        strategy.close("Long", comment="TP Hit")

// SHORT EXIT LOGIC
if strategy.position_size < 0 and strategy.position_avg_price > 0
    shortEntry = strategy.position_avg_price

    // Basic stop logic
    if close >= shortEntry + slDistance
        label.new(bar_index, high, (beShort ? "BE Hit" : "SL Hit"), style=label.style_label_up, color=color.red, textcolor=color.white)
        strategy.close("Short", comment=(beShort ? "BE Hit" : "SL Hit"))

    // Take profit logic
    if close <= shortEntry - tpDistance
        label.new(bar_index, low, "TP Hit", style=label.style_label_down, color=color.green, textcolor=color.white)
        strategy.close("Short", comment="TP Hit")

    // Break-even trigger
    if close <= shortEntry - beTrigger
        beShort := true

    effectiveShortStop = beShort ? shortEntry : (shortEntry + slDistance)
    if close >= effectiveShortStop
        label.new(bar_index, high, (beShort ? "BE Hit" : "SL Hit"), style=label.style_label_up, color=color.red, textcolor=color.white)
        strategy.close("Short", comment=(beShort ? "BE Hit" : "SL Hit"))

// Reset BE flags when no position is open
if strategy.position_size == 0
    beLong  := false
    beShort := false
    // Reset the pullback signal
    if not longSignalActive
        pullHigh := na
        retraceLevel := na