
La stratégie est un système de négociation quantitatif intégré qui combine le suivi des tendances, l’identification des signaux de retournement et la récupération de positions pyramidales. La stratégie est principalement basée sur la direction de la tendance du marché sur la base de multiples moyennes mobiles de l’indice ((EMA) croisées, en utilisant des signaux d’entrée de confirmation d’entrée de forme absorbante, et est équipée d’une gestion de fonds pyramidale et d’une fonction d’arrêt de perte mobile, pour construire une boucle de clôture complète.
La stratégie s’appuie principalement sur les moyennes mobiles indicielles de trois périodes différentes (EMA20, EMA50 et EMA200) pour juger de la tendance du marché, et combine le graphe de la courbe comme condition de déclenchement d’un signal d’entrée. Plus précisément, le principe de fonctionnement de la stratégie est le suivant:
Le mécanisme de jugement des tendances:
Signaux d’entrée:
Sélection:
Gestion des risques:
Le mécanisme de récupération de la pyramide:
Dans la mise en œuvre du code, trois indicateurs EMA ont d’abord été définis (§ 20, 50, 200), puis une logique de filtrage a été construite pour éliminer la volatilité hésitante. La stratégie comporte deux conditions d’achat: un achat tendanciel et un achat inversé.
Adaptation à l’ensemble du marchéEn incluant à la fois le suivi des tendances et les stratégies de retournement, le système est capable de rechercher des opportunités de trading dans différents environnements de marché, sans être limité à un seul état de marché.
Gestion des risques à plusieurs niveaux: Un triple mécanisme de protection combiné avec un arrêt fixe, un arrêt proportionnel et un arrêt de suivi des pertes, sans limiter les gains potentiels tout en protégeant les fonds.
Le mécanisme de récupération de la pyramide: Introduction innovante d’un système de récupération qui permet de récupérer plus rapidement la valeur nette d’un compte après un retrait à court terme en augmentant scientifiquement les positions pour faire face à des pertes continues.
Gestion dynamique des positions: Ajuste automatiquement la taille de la position en fonction de la performance de la transaction, maintient la position de base pendant la période de profit et augmente progressivement la position pendant la période de perte pour accélérer la reprise.
Indicateurs techniques combinés à la forme: non seulement dépendant d’indicateurs techniques tels que les moyennes mobiles, mais combiné avec l’analyse de la forme du graphe, améliore la qualité du signal grâce à la confirmation multiple.
Filtrage de pénétration: Filtrez les corps hésitants par le paramètre body_ratio, réduisant ainsi le risque de faux signaux.
Une marque visuelle simpleLes signaux de négociation sont affichés sur des graphiques pour faciliter l’analyse des retours et la surveillance en temps réel.
Risque d’expansion rapide des positions: le mécanisme de récupération pyramidale peut entraîner une augmentation rapide des positions en cas de pertes consécutives, ce qui peut aggraver les pertes si le marché persiste. Il est recommandé de contrôler le paramètre max_recovery dans une plage raisonnable et d’ajuster la base_position en fonction du montant total des fonds.
Le retard dans la transition: les systèmes basés sur des moyennes mobiles peuvent être lents à réagir au début d’un changement de tendance, ce qui entraîne un retard d’entrée ou d’entrée. Des indicateurs plus sensibles tels que le RSI ou le MACD peuvent être considérés comme un jugement auxiliaire.
Le risque de perte de points fixesIl est recommandé d’envisager d’utiliser l’ATR (Average True Range) pour ajuster dynamiquement la distance de stop.
Les faux signaux qui engloutissent la forme: Dans le marché horizontal, l’engorgement peut produire plus de faux signaux. La qualité du signal peut être améliorée en augmentant la confirmation de la transaction ou d’autres indicateurs auxiliaires.
Restrictions sur les transactions à sens uniqueLa stratégie actuelle consiste à effectuer seulement plusieurs opérations, ce qui peut laisser passer des opportunités de prise de position en période de baisse. Pensez à ajouter une logique de prise de position symétrique pour s’adapter aux marchés bidirectionnels.
Le stress de la gestion des fondsIl est recommandé de définir avec précaution les paramètres pyramid_factor et max_recovery en fonction de la taille du compte total.
Système d’arrêt dynamique: le remplacement des arrêts à points fixes par des arrêts dynamiques basés sur l’ATR, pour mieux s’adapter aux changements de volatilité du marché. La mise en œuvre consiste à calculer la valeur actuelle de l’ATR, puis à définir le stop loss comme le multiple du prix d’entrée moins l’ATR.
Ajout d’une logique de blanchiment: l’ajout de conditions de couverture symétriques permet à la stratégie d’être tout aussi efficace dans un marché en baisse. La méthode de mise en œuvre consiste à copier la logique d’achat existante, à inverser les conditions de mise en place et la direction d’entrée.
Améliorer le jugement des tendancesEn plus de l’EMA, d’autres outils de confirmation de tendance ont été introduits, tels que l’ADX (indicateur de la force de la tendance) et un environnement de tendance plus fort a été filtré. Des conditions telles que “ADX > 25” peuvent être ajoutées comme filtre de force de tendance.
Optimisation du ratio de risqueIl est possible que le paramètre tp_multiplier doive être ajusté pour trouver le meilleur rapport entre les pertes et les arrêts en fonction des données de retracement historique.
Filtreur de temps: Augmentation des conditions de filtrage temporel, en évitant les périodes de faible volatilité ou d’instabilité du marché. En particulier pour les transactions indicielles, il est possible de se concentrer sur les périodes d’activité du marché.
Optimiser le système de récupérationConsidérant l’ajustement dynamique du facteur pyramide basé sur les gains et les pertes, plutôt que l’utilisation de multiples fixes. Un mécanisme d’ajustement adaptatif basé sur les performances récentes peut être réalisé.
Augmentation de la séquestration des bénéfices: après avoir atteint une certaine marge, les positions sont liquidées en lots pour bloquer une partie des bénéfices, tout en conservant les positions restantes pour suivre la tendance.
Intégration des indicateurs émotionnels: Introduction d’indicateurs de l’humeur du marché tels que le VIX ou l’indicateur de la largeur du marché, ajustement des paramètres de stratégie ou suspension des transactions en cas d’humeur extrême.
La stratégie de croisement récursif de type pyramide de récupération de tendance est un système intégré qui combine plusieurs idées de négociation, principalement en jugant les tendances par croisement des EMA, en absorbant les signaux de confirmation de la forme et en s’accompagnant d’un mécanisme de récupération pyramidale innovant pour gérer les risques et optimiser l’efficacité des fonds. Le principal avantage de la stratégie réside dans sa capacité à s’adapter à différents environnements de marché tout en offrant un mécanisme de contrôle des risques parfait.
Cette stratégie est particulièrement adaptée aux traders qui ont une certaine connaissance de l’analyse technique et qui sont prêts à accepter des risques modérés pour rechercher des rendements stables à long terme. Grâce à la mise en œuvre des orientations d’optimisation ci-dessus, la stabilité et l’adaptabilité de la stratégie peuvent être encore améliorées, en particulier dans des environnements de forte volatilité du marché. Il est à noter que toute stratégie quantitative nécessite une vérification complète des retours d’expérience avant la mise en œuvre réelle et l’ajustement des paramètres en fonction de la tolérance du risque personnel.
Dans l’ensemble, cette stratégie représente une approche typique de l’analyse technique, de la gestion des risques et de la gestion des fonds utilisés de manière intégrée dans les transactions quantifiées modernes, offrant aux traders un cadre extensible qui peut être personnalisé et optimisé en fonction de leurs besoins personnels et de l’environnement du marché.
/*backtest
start: 2024-06-23 00:00:00
end: 2025-06-21 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
//@version=5
strategy("DJ30 Sniper (Trend + Reversal Buy + Pyramid Recovery + Trailing)", overlay=true, default_qty_value=1)
// === INPUTS ===
ema_fast = input.int(20, "EMA Fast")
ema_mid = input.int(50, "EMA Mid")
ema_slow = input.int(200, "EMA Slow")
rsi_period = input.int(14, "RSI Period")
sl_points = input.int(650, "Stop Loss (Points)")
tp_extra = input.int(200, "Extra TP Points")
tp_multiplier = 5
trailing_trigger = input.int(100, "Activate Trailing SL After (Points)")
trailing_stop = input.int(500, "Trailing Stop Size (Points)")
// === Recovery Settings ===
max_recovery = input.int(3, "Max Pyramid Levels", minval=1)
base_position = input.float(1000, "Base Order Size ($)") // 🔁 doubled from 500 to 1000
pyramid_factor = input.float(2.0, "Recovery Multiplier")
// === MAs ===
ema20 = ta.ema(close, ema_fast)
ema50 = ta.ema(close, ema_mid)
ema200 = ta.ema(close, ema_slow)
// === Candle Filter ===
body = math.abs(close - open)
candle_range = high - low
body_ratio = candle_range != 0 ? body / candle_range : 0
not_indecision = body_ratio > 0.3
// === Buy Conditions ===
bull_trend = ema20 > ema50 and ema50 > ema200 and close > ema200
engulfing_bullish = close > open and close > close[1] and open < open[1]
buy_trend = bull_trend and engulfing_bullish and not_indecision
bear_trend = ema20 < ema50 and ema50 < ema200 and close < ema200
engulfing_bearish = close < open and close < close[1] and open > open[1]
buy_reversal = bear_trend and engulfing_bearish and not_indecision
buy_condition = buy_trend or buy_reversal
// === SL/TP ===
tp_points = sl_points * tp_multiplier + tp_extra
sl_buy = close - sl_points * syminfo.mintick
tp_buy = close + tp_points * syminfo.mintick
// === Recovery Logic ===
var int recovery_level = 0
var float position_size = base_position
if strategy.closedtrades > 0
last_trade = strategy.closedtrades - 1
last_profit = strategy.closedtrades.profit(last_trade)
if last_profit > 0
recovery_level := 0
else
recovery_level := math.min(recovery_level + 1, max_recovery)
position_size := base_position * math.pow(pyramid_factor, recovery_level)
// === Trade Execution ===
if buy_condition and strategy.opentrades == 0
strategy.entry("Buy DJ30", strategy.long, qty=position_size)
// === Exit Logic ===
if strategy.opentrades > 0
entry_price = strategy.opentrades.entry_price(0)
unrealized_points = (close - entry_price) / syminfo.mintick
if unrealized_points >= trailing_trigger
strategy.exit("Trail Exit", from_entry="Buy DJ30", trail_points=trailing_stop, trail_offset=trailing_stop)
else
strategy.exit("Fixed Exit", from_entry="Buy DJ30", stop=sl_buy, limit=tp_buy)
// === Visual Markers ===
plotshape(buy_trend, location=location.belowbar, style=shape.labelup, color=color.green, text="TrendBuy")
plotshape(buy_reversal, location=location.belowbar, style=shape.labelup, color=color.orange, text="RevBuy")