
La stratégie de rupture de position à filtrage de tendance à plusieurs périodes est un système de trading quantitatif qui combine l’analyse à plusieurs périodes et le principe de rupture de dynamique. La stratégie recherche des opportunités de rupture sur un graphique de 3 minutes, tout en confirmant la tendance à l’aide d’un graphique d’une heure, ce qui améliore le taux de réussite des transactions. La stratégie utilise une méthode de gestion de position intelligente.
Le principe de base de cette stratégie est basé sur les deux idées de négociation “sur le coup” et “sur la dynamique”. La logique de mise en œuvre est la suivante:
Filtrage des tendances à plusieurs périodes:
Début de la compétition:
Gestion intelligente des entrepôts:
Synergie dans plusieurs périodesEn combinant les signaux des graphiques d’une heure et de trois minutes, la stratégie a permis de filtrer efficacement les transactions de faible qualité, de rechercher uniquement des opportunités d’entrée dans les grandes directions de tendance, ce qui a considérablement amélioré les chances de victoire.
Gestion intelligente des entrepôtsLa stratégie de placement par lots permet de bloquer une partie des bénéfices lorsque le prix atteint l’objectif initial, mais permet également de capturer pleinement la tendance en suivant les arrêts de perte pour les positions restantes, réalisant la philosophie de trading “laissez les bénéfices s’échapper”.
Objectifs personnalisésL’utilisation de l’indicateur ATR pour définir des objectifs de profit de manière adaptative permet à la stratégie de s’adapter automatiquement à la volatilité du marché et de fonctionner efficacement dans des environnements à forte volatilité et à faible volatilité.
La défense est prête.La double garantie de suivi des arrêts de perte et des heures supplémentaires permet de maîtriser efficacement le risque maximal d’une seule transaction et d’éviter la possibilité d’un emprisonnement et de pertes à long terme.
Haute fréquence et précisionLes graphiques de 3 minutes permettent de capturer les mouvements des marchés à court terme, d’obtenir des entrées et des sorties plus précises, et de négocier à une fréquence modérée, évitant ainsi la survente.
Risque de fausse percée: Il peut y avoir une fausse rupture du marché qui entraîne un retrait immédiat après l’entrée. La solution est d’ajouter des indicateurs de confirmation, tels que la confirmation du volume de transactions ou la confirmation de la dispersion de la dynamique.
Le risque d’un tournant: L’utilisation d’indicateurs de tendance historique peut entraîner une négociation à contre-courant lorsque la tendance principale est sur le point de changer. Il est recommandé d’ajouter des indicateurs de revers de tendance plus sensibles, tels que le système de double EMA ou l’analyse de la structure des prix.
Une dépendance excessive à l’égard des tendances historiquesLes indices EMA (< 200) et MACD sont des indices en retard et peuvent ne pas être suffisamment sensibles dans un marché en évolution rapide. Il est possible d’envisager d’ajouter des indicateurs de pointe comme compléments.
Paramètre Sensibilité: les performances de la stratégie peuvent être très sensibles aux paramètres (par exemple, période de rétroaction de rupture, multiplication d’ATR, suivi des points d’arrêt). Il est recommandé de procéder à une optimisation complète des paramètres et à des tests de robustesse.
Risques liés aux caractéristiques du marché: Cette stratégie fonctionne mieux dans les marchés où la tendance est évidente, mais elle peut souvent déclencher de faux signaux dans les marchés de choc horizontal. Vous pouvez envisager d’ajouter un filtre d’état du marché et d’activer la stratégie uniquement dans les marchés tendance.
Ajout de filtres sur l’état du marché: permettre l’identification automatique de l’état du marché (trend/choc) et ajuster les paramètres de la stratégie ou suspendre les transactions en fonction des différentes conditions du marché. Cela peut être réalisé par l’analyse des indicateurs ADX ou de la volatilité, ce qui réduit efficacement les faux signaux dans les marchés en crise.
Optimiser le temps d’entrée: Considérez de rechercher un rappel comme point d’entrée après la confirmation de la rupture, plutôt que d’entrer directement au point de rupture. Cela peut être jugé par l’indicateur RSI ou la position de la ceinture de Brin, ce qui augmente le rapport qualité-prix de l’entrée.
Gestion dynamique des positions: Ajustez la taille de la position en fonction de la volatilité du marché et de la dynamique du taux de victoire historique, augmentez la position lorsque des signaux de confiance élevée apparaissent et, au contraire, diminuez. Cela peut améliorer l’efficacité de l’utilisation des fonds et le rendement après ajustement du risque.
Système de paramètres adaptatifs: Développer un mécanisme d’ajustement des paramètres adaptatifs permettant à la stratégie d’ajuster automatiquement la longueur de la rupture, le multiplicateur d’ATR et la distance d’arrêt de suivi en fonction des conditions du marché. Cela peut être réalisé en ajustant les paramètres dynamiques en fonction des fluctuations des N jours précédents.
Ajout de filtres de session: analyser la performance de la stratégie à différents moments de la transaction, éviter les moments inefficaces ou à haut risque, tels que les moments de publication de données importantes ou de manque de liquidité. Cela peut être réalisé par un filtre temporel, ce qui améliore la stabilité de la stratégie globale.
La stratégie de rupture de volume de tendance à filtrage multi-cadres est un système de trading quantitatif bien structuré qui améliore la qualité du signal de trading grâce à l’analyse de plusieurs cadres temporels et réalise des objectifs de négociation de “marge de protection” grâce à une gestion intelligente de la position. Cette stratégie est particulièrement adaptée à un environnement de marché aux caractéristiques de tendance évidentes et capte efficacement les fluctuations de prix à court et moyen terme.
La stratégie peut améliorer encore l’adaptabilité et la stabilité dans différents environnements de marché en appliquant des directions d’optimisation des recommandations, en particulier le filtrage de l’état du marché et l’ajustement des paramètres dynamiques. Avant l’application sur le marché réel, il est recommandé d’effectuer un retour d’expérience historique et une simulation des transactions en profondeur, et d’effectuer des ajustements ciblés en fonction des caractéristiques des variétés de transactions spécifiques.
/*backtest
start: 2024-07-21 00:00:00
end: 2025-07-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":2000000}]
*/
// MNQ 3m Momentum Breakout Strategy with HTF Trend Filter
//@version=5
strategy("MNQ 3m Momentum Breakout", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === INPUTS ===
trailPoints = input.int(40, "Trailing Stop (Ticks)")
timeoutBars = input.int(30, "Timeout Bars (3m)")
breakoutLength = input.int(20, "Breakout Lookback")
atrLength = input.int(14, "ATR Period")
mult = input.float(1.5, "ATR Multiplier")
// === MULTI-TIMEFRAME TREND FILTER ===
ema200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200))
[macdLine_1h, signalLine_1h, macdHist_1h] = request.security(syminfo.tickerid, "60", ta.macd(close, 12, 26, 9))
trendUp = close > ema200_1h and macdHist_1h > 0
trendDown = close < ema200_1h and macdHist_1h < 0
// === BREAKOUT CONDITIONS (3m) ===
highBreakout = close > ta.highest(close[1], breakoutLength)
lowBreakdown = close < ta.lowest(close[1], breakoutLength)
atr = ta.atr(atrLength)
longEntry = trendUp and highBreakout
shortEntry = trendDown and lowBreakdown
// === ENTRY ===
if (longEntry and strategy.position_size == 0)
strategy.entry("Long1", strategy.long, qty=2)
if (shortEntry and strategy.position_size == 0)
strategy.entry("Short1", strategy.short, qty=2)
// === SCALE OUT LOGIC ===
profitTrigger = mult * atr
longScaleOut = strategy.position_size == 2 and close > strategy.position_avg_price + profitTrigger
shortScaleOut = strategy.position_size == -2 and close < strategy.position_avg_price - profitTrigger
if longScaleOut
strategy.close("Long1", qty=1, comment="Scale Out")
if shortScaleOut
strategy.close("Short1", qty=1, comment="Scale Out")
// === EXIT STRATEGY ===
strategy.exit("Exit Long1", from_entry="Long1", trail_points=trailPoints, trail_offset=10)
strategy.exit("Exit Short1", from_entry="Short1", trail_points=trailPoints, trail_offset=10)
// === TIMEOUT EXIT ===
longOpen = strategy.opentrades > 0 and strategy.opentrades.entry_id(0) == "Long1" and bar_index - strategy.opentrades.entry_bar_index(0) >= timeoutBars
shortOpen = strategy.opentrades > 0 and strategy.opentrades.entry_id(0) == "Short1" and bar_index - strategy.opentrades.entry_bar_index(0) >= timeoutBars
if (longOpen)
strategy.close("Long1", comment="Timeout")
if (shortOpen)
strategy.close("Short1", comment="Timeout")
// === VISUALS ===
plot(ema200_1h, color=color.orange, title="EMA 200 (1H)")