La stratégie Breakout Scalper est une stratégie de trading de rupture qui utilise des moyennes mobiles rapides et lentes pour identifier les changements de tendance. Elle met en place des arrêts d'entrée et des arrêts de sortie pour la gestion des risques.
La stratégie utilise une fenêtre rapide et une fenêtre lente. Les périodes par défaut sont respectivement 13 et 52. La fenêtre rapide capture les tendances à court terme tandis que la fenêtre lente détermine la direction globale du marché. Les prix moyens des deux fenêtres sont tracés.
Lorsque le prix moyen rapide est au-dessus du prix moyen lent, et que le prix instantané est également au-dessus du prix moyen rapide, un signal d'achat est généré. Le stop d'entrée est placé au prix le plus élevé de la fenêtre lente. Lorsque le prix moyen rapide est en dessous du prix moyen lent, et que le prix instantané est en dessous du prix moyen rapide, un signal de vente est déclenché, avec le stop d'entrée au prix le plus bas de la fenêtre lente.
En outre, les arrêts de sortie sont définis pour le contrôle des risques. Le stop de sortie long est le max des fenêtres rapides et lentes
Les positions sont clôturées lorsque les conditions d'entrée ne sont plus valables, évitant ainsi des pertes inutiles lors de marchés latéraux.
Les principaux avantages de cette stratégie sont les suivants:
La combinaison des fenêtres rapides et lentes permet de détecter rapidement les changements de tendance.
La gestion efficace des risques par des arrêts raisonnables, qui permettent de contrôler les pertes en temps opportun.
Une logique simple et claire basée sur les moyennes mobiles et les arrêts, facile à comprendre et à appliquer.
Facile d'optimisation et d'extension, les paramètres peuvent être réglés et d'autres indicateurs ajoutés.
Les principaux risques sont les suivants:
Les fenêtres rapides sont sujettes au bruit, qui peut générer des signaux incorrects.
Le décalage de la fenêtre est lent, les virages peuvent être détectés en retard.
Les arrêts basés directement sur les prix de la fenêtre peuvent être trop serrés.
Les marchés latéraux conduisent à des fléchettes, les marchés agités génèrent de faux signaux.
Les mesures d'atténuation
Optimisez la fenêtre rapide et ajoutez des filtres.
Améliorer la fenêtre lente et ajouter des indicateurs de confirmation.
Les stocks de tampon dépendent du prix du marché.
Détectez les côtés et évitez les signaux.
La stratégie peut être améliorée sous plusieurs aspects:
Optimiser les périodes de fenêtre pour différents actifs.
Ajouter la dimension de la position pour un meilleur contrôle des risques.
Mettre en œuvre des mécanismes de prise de profit.
Ajoutez plus de filtres pour créer des signaux solides.
Incorporer la détection de modèles comme les triangles et les divergences.
Utiliser l'apprentissage automatique pour optimiser les paramètres.
Le scalper de rupture vise à capter rapidement les changements de tendance basés sur des croisements de moyenne mobile rapides et lents. Il est adapté aux marchés volatils comme l'or. Les arrêts fournissent une gestion des risques. La logique simple le rend facile à comprendre et à optimiser. Les risques et améliorations identifiés offrent des moyens d'améliorer davantage la stratégie.
/*backtest start: 2023-10-17 00:00:00 end: 2023-10-24 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Breakout Scalper", overlay=true) fast_window = input(title="Fast Window", defval=13, minval=1) slow_window = input(title="Slow Window", defval=52, minval=1) instant_period = input(title="Instant Period", defval=3, minval=1) fast_low = lowest(fast_window) fast_high = highest(fast_window) fast_mid = (fast_low + fast_high) / 2 slow_low = lowest(slow_window) slow_high = highest(slow_window) slow_mid = (slow_low + slow_high) / 2 instant_price = ema(close, instant_period) plot(instant_price, title="Instant Price", color=black, transp=50) fp = plot(fast_mid, title="Fast Mid", color=green) sp = plot(slow_mid, title="Slow Mid", color=red) fill(fp, sp, color=(fast_mid > slow_mid ? green : red)) is_buy_mode = (instant_price > fast_mid) and (fast_mid > slow_mid) is_sell_mode = (instant_price < fast_mid) and (fast_mid < slow_mid) entry_color = is_buy_mode ? green : (is_sell_mode ? red : na) exit_color = is_buy_mode ? red : (is_sell_mode ? green : na) entry_buy_stop = slow_high entry_sell_stop = slow_low exit_buy_stop = max(fast_low, slow_low) exit_sell_stop = min(fast_high, slow_high) strategy.entry("long", strategy.long, stop=entry_buy_stop, when=is_buy_mode) strategy.exit("stop", "long", stop=exit_buy_stop) strategy.entry("short", strategy.short, stop=entry_sell_stop, when=is_sell_mode) strategy.exit("stop", "short", stop=exit_sell_stop) strategy.close("long", when=(not is_buy_mode)) strategy.close("short", when=(not is_sell_mode)) entry_buy_stop_color = (strategy.position_size == 0) ? (is_buy_mode ? green : na) : na plotshape(entry_buy_stop, location=location.absolute, color=entry_buy_stop_color, style=shape.circle) entry_sell_stop_color = (strategy.position_size == 0) ? (is_sell_mode ? red : na) : na plotshape(entry_sell_stop, location=location.absolute, color=entry_sell_stop_color, style=shape.circle) exit_buy_stop_color = (strategy.position_size > 0) ? red : na plotshape(exit_buy_stop, location=location.absolute, color=exit_buy_stop_color, style=shape.xcross) exit_sell_stop_color = (strategy.position_size < 0) ? green : na plotshape(exit_sell_stop, location=location.absolute, color=exit_sell_stop_color, style=shape.xcross)