Stratégie de trading de retracement de point de retournement de tendance moyenne mobile sur plusieurs périodes

SMA MA 移动均线 趋势跟踪 回踩策略 止损 趋势反转 多周期分析 动量指标 波动率
Date de création: 2025-07-08 13:40:33 Dernière modification: 2025-07-08 13:40:33
Copier: 0 Nombre de clics: 227
2
Suivre
319
Abonnés

Stratégie de trading de retracement de point de retournement de tendance moyenne mobile sur plusieurs périodes Stratégie de trading de retracement de point de retournement de tendance moyenne mobile sur plusieurs périodes

Aperçu

La stratégie de trading multi-périodes est un système de trading quantitatif basé sur une simple moyenne mobile (SMA) qui combine quatre éléments principaux: la confirmation de la tendance, l’inclinaison de la moyenne, la reprise des prix et la suspension des fluctuations. La stratégie identifie les opportunités de reprise des prix dans un environnement de forte tendance en surveillant les moyennes mobiles de différentes périodes (9, 20, 50, 100 et 200) et en utilisant les paramètres d’arrêt précis des fluctuations historiques.

Principe de stratégie

Le principe de fonctionnement de la stratégie est basé sur un système de filtrage conditionnel à plusieurs niveaux:

  1. Conditions de confirmation de la tendance:

    • La tendance à plusieurs têtes exige que les prix soient situés au-dessus des moyennes de 20 et 200 jours (trendUp)
    • La tendance haussière exige que les prix soient situés en dessous de la moyenne des 20 et des 200 jours (trendDown)
  2. Conditions de mise en ligne moyenne:

    • Le nombre d’ordres multiples exige que la moyenne des 20 jours soit située au-dessus de la moyenne des 200 jours.
    • La ligne de 20 jours est située en dessous de la ligne de 200 jours.
  3. Conditions de la pente:

    • Calcul de la pente en comparant la moyenne actuelle avec la moyenne des 5 dernières périodes
    • Les exigences à plusieurs têtes de 20 jours et 200 jours ont une inclinaison moyenne positive (slopeUp)
    • La pente moyenne des 20e et 200e journées est négative (slopeDown)
  4. Conditions de retour:

    • Le pullbackUp implique que le prix de la période précédente soit inférieur à la moyenne des 20 jours, et que le prix actuel se retrouve à la moyenne des 20 jours.
    • PullbackDown (PullbackDown) Le prix de la période précédente est supérieur à la moyenne des 20 jours, tandis que le prix actuel est inférieur à la moyenne des 20 jours
  5. Réglages de stop-loss:

    • Le plus grand nombre de têtes utilise le point le plus bas des 10 derniers cycles comme arrêt (swingLow)
    • La tête vide utilise le point le plus élevé des 10 derniers cycles comme arrêt (swingHigh)

Lorsque toutes les conditions correspondantes sont remplies simultanément, la stratégie émet un signal de multi-tête ou de tête vide et définit la position de stop correspondante.

Avantages stratégiques

  1. Filtrage systématique des tendancesLa stratégie a permis de filtrer efficacement les faiblesses et de consolider le marché grâce à des conditions de moyennes et de pentes multiples, et de négocier uniquement dans un environnement de tendance forte, ce qui a considérablement amélioré la qualité du signal.

  2. L’heure exacte d’entréeLes conditions de reprise assurent l’entrée des positions à faible risque après la confirmation de la tendance, évitent la poursuite des hauts et des bas, et améliorent le rapport risque/rendement par transaction.

  3. Système d’arrêt dynamique: Stop loss basé sur la volatilité réelle du marché, plus adapté aux différentes conditions de marché et environnements de taux de volatilité que le stop loss à points fixes.

  4. Mécanisme de confirmation multipleLa probabilité d’un faux signal est réduite par une combinaison de conditions multiples, telles que la croisée des moyennes, la position des prix et la direction de la pente.

  5. Facile à comprendre et à optimiser: logique stratégique claire et intuitive, moins de paramètres et des rôles clairs, permettant un ajustement optimisé en fonction des différentes caractéristiques du marché.

Risque stratégique

  1. Problème de retard de ligne moyenneLa solution consiste à envisager l’introduction d’indicateurs plus sensibles tels que l’EMA ou le VWMA en complément.

  2. Retour à la profondeur de l’incertitude: l’incapacité de la stratégie à prédire la profondeur de la reprise, parfois le prix peut revenir à la tendance avant de toucher la moyenne des 20 jours, ce qui entraîne des opportunités de négociation manquées. Il peut être envisagé d’ajouter un jugement de zone dynamique basé sur l’ATR plutôt qu’une seule ligne de prix.

  3. Risque de rupture continue: Dans un marché en turbulence, les prix qui traversent fréquemment la moyenne peuvent entraîner des arrêts de perte continus. Il est recommandé d’ajouter des filtres de volatilité, d’ajuster les paramètres de stratégie ou de suspendre la négociation dans un environnement à forte volatilité.

  4. Paramètre Sensibilité: la stratégie est sensible aux cycles de moyenne et aux paramètres de rétrocession, et différents marchés et périodes de temps peuvent nécessiter des paramètres différents. Il est recommandé de déterminer la combinaison de paramètres la mieux adaptée à une variété de transactions particulière par rétroaction.

  5. Manque de confirmation de la livraison: La stratégie actuelle est basée uniquement sur les données de prix, et le manque de confirmation de la transaction peut conduire à de faux signaux dans un environnement de faible liquidité. Considérez l’augmentation de la condition de transaction comme un filtre supplémentaire.

Orientation de l’optimisation de la stratégie

  1. Adaptation des paramètresIl peut être envisagé d’ajuster automatiquement le cycle moyen et la période de rétrocession en fonction de la volatilité du marché, afin que la stratégie conserve une performance optimale dans différents environnements de marché. Par exemple, un cycle moyen plus court peut être utilisé dans un marché à faible volatilité et un cycle plus long dans un marché à forte volatilité.

  2. Ajout de conditions de filtrageIntroduction d’un indicateur relativement faible (RSI) ou aléatoire (Stochastic) comme filtre auxiliaire pour confirmer les signaux de reprise uniquement dans les zones de surachat/survente, réduisant ainsi davantage les faux signaux.

  3. Gestion dynamique des positionsAjuster la taille de la position en fonction de la volatilité et de l’intensité de la tendance, augmenter la position dans un environnement à faible volatilité avec une forte tendance, réduire la position dans un environnement à forte volatilité avec une tendance faible, optimiser l’efficacité des fonds.

  4. Confirmation de plusieurs périodesLe but de cette initiative est d’introduire des mécanismes de confirmation de tendance pour les périodes plus longues, afin de garantir la cohérence de l’orientation des transactions avec les tendances plus importantes et de réduire le risque de trading à contre-courant.

  5. Objectif de profit: La stratégie actuelle a seulement un paramètre de stop-loss et aucun objectif de profit, on peut considérer un objectif de profit dynamique basé sur l’ATR ou un objectif de résistance / support critique, pour optimiser le ratio de retour sur risque.

  6. Augmentation de la classification des états du marché: introduire des jugements de l’état du marché (trends, oscillations, ruptures), utiliser différents paramètres ou logiques de négociation pour différents états du marché.

Résumer

La stratégie de trading multi-périodes est un système de trading quantitatif, structuré et logiquement clair, qui capture efficacement les opportunités d’entrée à faible risque dans un marché tendanciel grâce à une combinaison de plusieurs courbes de moyenne, une analyse de la pente et des conditions de reprise des prix. Cette stratégie est particulièrement adaptée aux environnements de marché où les tendances à moyen et long terme sont clairement définies.

Bien qu’il existe des risques intrinsèques tels que le retard de la ligne uniforme et la sensibilité aux paramètres, la stabilité et l’adaptabilité de la stratégie peuvent être encore améliorées par des orientations d’optimisation suggérées, telles que les paramètres d’adaptation, les conditions de filtrage multiples et la gestion dynamique des positions. En fin de compte, la stratégie fournit un cadre de base fiable aux traders quantifiés, qui peuvent être personnalisés en fonction de leurs préférences de risque personnelles et des caractéristiques du marché.

Code source de la stratégie
/*backtest
start: 2025-01-01 00:00:00
end: 2025-07-05 10:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("SMA Pullback Strategy with Swing SL", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// === SMA Definitions ===
sma9   = ta.sma(close, 9)
sma20  = ta.sma(close, 20)
sma50  = ta.sma(close, 50)
sma100 = ta.sma(close, 100)
sma200 = ta.sma(close, 200)

// === Inputs ===
slopeLookback  = input.int(5, title="Slope Lookback")
swingLookback  = input.int(10, title="Swing High/Low Period")

// === Slope Calculation ===
slope20  = sma20 - sma20[slopeLookback]
slope200 = sma200 - sma200[slopeLookback]

// === Long Conditions ===
trendUp     = close > sma20 and close > sma200
smaOrderUp  = sma20 > sma200
slopeUp     = slope20 > 0 and slope200 > 0
pullbackUp  = close[1] < sma20[1] and close > sma20
swingLow    = ta.lowest(low, swingLookback)

longCondition = trendUp and smaOrderUp and slopeUp and pullbackUp

// === Short Conditions ===
trendDown     = close < sma20 and close < sma200
smaOrderDown  = sma20 < sma200
slopeDown     = slope20 < 0 and slope200 < 0
pullbackDown  = close[1] > sma20[1] and close < sma20
swingHigh     = ta.highest(high, swingLookback)

shortCondition = trendDown and smaOrderDown and slopeDown and pullbackDown

// === Strategy Entries & Exits ===
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", from_entry="Long", stop=swingLow)

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", from_entry="Short", stop=swingHigh)

// === Plotting SMAs ===
plot(sma9,   title="SMA 9",   color=color.gray)
plot(sma20,  title="SMA 20",  color=color.orange)
plot(sma50,  title="SMA 50",  color=color.purple)
plot(sma100, title="SMA 100", color=color.green)
plot(sma200, title="SMA 200", color=color.blue)

// === Plot Entry Signals ===
plotshape(longCondition,  title="Buy Signal",  location=location.belowbar, color=color.green, style=shape.triangleup,   size=size.small)
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red,   style=shape.triangledown, size=size.small)