
Il s’agit d’une stratégie de trading quantitative basée sur la notion de suivi de tendance, principalement pour améliorer l’exactitude des transactions grâce à des signaux de filtrage de multiples indicateurs. La stratégie fonctionne sur un délai de 5 minutes, en utilisant 200 lignes de moyenne et 21 lignes de moyenne comme principaux filtres de tendance, en combinaison avec les indicateurs RSI et MACD pour la confirmation des signaux de transaction. La stratégie utilise un paramètre fixe de stop loss (en 15 points) et de stop loss (en 22,5 points), avec un rapport de retour sur risque de 1:1,5, adapté au suivi des tendances intraday et aux transactions à faible risque.
Le cœur de cette stratégie est de créer un système de reconnaissance de tendance global à l’aide de multiples indicateurs techniques pour éviter les fausses percées et capturer les opportunités de tendance à forte probabilité par filtrage en couches. Les principes de mise en œuvre sont les suivants:
Confirmation de la tendance: Utilisation d’une moyenne mobile à 200 épisodes (EMA) comme indicateur de tendance à long terme, d’une EMA à 21 épisodes comme indicateur de tendance à moyen terme. Les prix doivent être situés du même côté des deux lignes de moyenne pour être considérés comme admissible.
Confirmation du moteur: Utilisez l’indice de force relative (RSI) comme filtre de dynamique supplémentaire. Dans le cas de plusieurs têtes, le RSI doit être supérieur à 50; dans le cas d’une tête vide, le RSI doit être inférieur à 50, en s’assurant qu’il est conforme à la direction de la tendance globale.
Le déclencheur de l’entrée: le signal croisé dépendant de l’indicateur MACD ((12,26,9) comme condition de déclenchement de l’entrée finale. L’entrée à plusieurs têtes nécessite une entrée en ligne MACD avec une valeur MACD positive; l’entrée à tête nue nécessite une entrée en ligne MACD avec une valeur MACD négative.
Gestion des risques: chaque transaction utilise des paramètres fixes de stop loss ((15 points) et de stop loss ((22.5 points) pour créer un rapport risque/rendement de 1:1,5, ce qui est un réglage raisonnable pour équilibrer le risque et le rendement.
Aides visuelles: La stratégie contient une visualisation des étiquettes de transactions et des lignes horizontales de stop/stop pour faciliter la surveillance et l’analyse des retours.
Notification automatisée: Conditions d’alerte intégrées, fonction de notification automatique peut être configurée via la plate-forme pour réaliser des transactions semi-automatisées.
Une analyse approfondie de la mise en œuvre du code de cette stratégie révèle les avantages notables suivants:
Système de filtration multipleEn combinant trois types d’indicateurs différents: la moyenne, le RSI et le MACD, la stratégie établit un système de filtrage de signal strict, réduisant considérablement les faux signaux et améliorant la précision des transactions.
Une maîtrise claire des risquesLe risque de chaque transaction est déterminé à l’avance pour faciliter la gestion des fonds et le contrôle des risques. Le rapport de risque / rendement de 1:1,5 est raisonnable et conforme aux principes de la négociation professionnelle.
Logique de négociation en coursLa stratégie est conçue pour s’assurer que les transactions se déroulent uniquement dans le sens d’une tendance confirmée, évitant ainsi le risque élevé de contre-courant.
Système de rétroaction visuelle: Grâce à l’affichage visuel des balises et des lignes, les traders peuvent visualiser l’état de fonctionnement et la performance historique de la stratégie.
Une gestion de fonds soupleStratégie: utilise le pourcentage d’intérêt du compte pour la gestion des positions, qui peut être ajusté dynamiquement en fonction de la taille du compte, adapté à une exploitation à long terme.
Facilité d’automatisationLes conditions d’alerte intégrées facilitent l’intégration de la stratégie dans les systèmes de trading automatisés, réduisant ainsi les interférences émotionnelles et les erreurs humaines.
Malgré la bonne conception de cette stratégie, il y a des risques potentiels et des limites:
Risque de stop-loss fixe: L’utilisation d’un point fixe de stop-loss peut être insuffisante dans les marchés très volatils, en particulier lorsque la volatilité du marché augmente soudainement, ce qui peut entraîner un stop-loss facilement touché. Une méthode d’amélioration est de considérer l’utilisation de l’ATR (Average True Range) pour ajuster dynamiquement le niveau de stop-loss.
Le manque de reconnaissance des points de basculement des tendances: La stratégie fonctionne bien dans les tendances fortes, mais peut être retardée à un tournant de tendance, ce qui entraîne une entrée dans la direction de la tendance initiale au début de la reprise. L’ajout d’un indicateur de force de tendance tel que l’ADX peut être envisagé pour éviter une entrée dans les tendances faibles.
Les conditions multiples peuvent être exagéréesLes conditions multiples, bien qu’améliorant la qualité du signal, peuvent également entraîner la perte de bonnes opportunités de négociation. Dans les applications pratiques, il est nécessaire d’équilibrer la qualité et la fréquence du signal en fonction des résultats des tests de retour.
Optimisé pour un délai de 5 minutes: Cette stratégie est conçue pour les périodes de 5 minutes et peut nécessiter une réajustement des paramètres sur d’autres périodes. Une simple combinaison sur différentes périodes peut entraîner une baisse de performance.
Manque d’adaptation à la situation du marchéLa stratégie ne fait pas de distinction entre les marchés de compilation et les marchés de tendance, ce qui peut entraîner des transactions à perte fréquentes pendant la phase de compilation horizontale. L’ajout d’un filtre de volatilité ou d’une logique d’identification de la structure du marché peut être envisagé.
Sur la base de l’analyse du code, la stratégie peut être optimisée de la manière suivante:
Gestion dynamique des risques: le remplacement des arrêts et des arrêts à points fixes par des arrêts et des arrêts dynamiques basés sur l’ATR permet à la stratégie d’ajuster automatiquement les paramètres de risque en fonction de la volatilité du marché. L’avantage de ce fait est de maintenir un seuil de risque relativement cohérent dans différents environnements de volatilité.
Filtrage d’intensité de la tendance à la hausse: Ajouter l’ADX comme indicateur de la force de la tendance, n’entrez que lorsque la force de la tendance est supérieure à une barre spécifique (comme 25) et évitez de négocier dans un marché en tendance faible ou en tremblement.
Optimiser le temps d’entréeIl peut être envisagé d’attendre le signal de confirmation pour revenir à la moyenne afin d’obtenir un meilleur prix d’entrée et une plus petite distance de stop-loss, ce qui augmente le retour sur risque.
Ajout de filtres de période de transaction: analysez la performance de différentes périodes de négociation et vous pourriez trouver que certaines périodes (comme les périodes de négociation Europe-Amérique qui se chevauchent) fonctionnent mieux et vous pouvez activer la stratégie uniquement pendant ces périodes.
Mise en place d’un mécanisme de blocage partiel des bénéficesLorsque la transaction atteint un certain niveau de profit (par exemple, 50% de l’objectif), le stop loss est déplacé vers le prix d’entrée ou le profit marginal, garantissant au moins la conservation d’une partie des profits.
Augmenter le jugement sur le marché: juger de l’état du marché par la bande passante de Brin ou des indicateurs similaires ((trend ou consolidation), utiliser différentes logiques de négociation ou paramètres de configuration dans différents états。
Optimisation des paramètres et réévaluation: Optimiser les retours sur les périodes de la moyenne, les seuils du RSI, les paramètres MACD, etc. afin de trouver la combinaison de paramètres la plus performante historiquement, mais attention à éviter les ajustements excessifs.
Il s’agit d’une stratégie de suivi de tendance conçue de manière rationnelle, avec un système de filtrage de signal rigoureux établi grâce à l’application intégrée de multiples indicateurs techniques, qui améliore la qualité des signaux de négociation. Les paramètres de gestion des risques fixes fournissent un cadre de contrôle des risques stable pour la stratégie, adapté aux traders et aux suiveurs de tendance.
Bien que les stratégies puissent bien fonctionner dans un environnement de forte tendance, elles peuvent être confrontées à des défis dans un environnement de changement d’état du marché et de forte volatilité. La robustesse et l’adaptabilité des stratégies peuvent être encore améliorées en mettant en œuvre des mesures d’optimisation recommandées, en particulier la gestion dynamique des risques et l’amélioration de l’adaptabilité aux conditions du marché.
L’ensemble de la stratégie reflète les principes centraux de la négociation systématisée: conditions d’entrée strictes, règles de sortie claires et une gestion cohérente des risques, parfaitement adaptée aux traders qui souhaitent réduire les perturbations émotionnelles et appliquer strictement le système de négociation.
/*backtest
start: 2024-07-31 00:00:00
end: 2025-07-29 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("TPC Strategy XAUUSD - M5 with Fixed SL/TP", overlay=true)
// === INPUTS ===
ema200 = ta.ema(close, 200)
ema21 = ta.ema(close, 21)
rsi = ta.rsi(close, 14)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// === CONDITIONS ===
longCondition = close > ema200 and close > ema21 and rsi > 50 and macdLine > signalLine and ta.crossover(macdLine, signalLine)
shortCondition = close < ema200 and close < ema21 and rsi < 50 and macdLine < signalLine and ta.crossunder(macdLine, signalLine)
// === TRADE PARAMETERS ===
sl_pips = 15.0
tp_pips = 22.5
sl = sl_pips * syminfo.mintick * 10
tp = tp_pips * syminfo.mintick * 10
// === TRADE ENTRIES ===
var float long_entry_price = na
var float short_entry_price = na
if (longCondition)
strategy.entry("Long", strategy.long)
long_entry_price := close
label.new(bar_index, low, "BUY", style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)
if (shortCondition)
strategy.entry("Short", strategy.short)
short_entry_price := close
label.new(bar_index, high, "SELL", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
// === STRATEGY EXITS ===
strategy.exit("Long TP/SL", from_entry="Long", stop=close - sl, limit=close + tp)
strategy.exit("Short TP/SL", from_entry="Short", stop=close + sl, limit=close - tp)
// === PLOTS ===
plot(ema200, color=color.red, title="200 EMA")
plot(ema21, color=color.blue, title="21 EMA")
// === PLOT SL & TP LINES ===
plot(long_entry_price ? long_entry_price - sl : na, title="Long SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(long_entry_price ? long_entry_price + tp : na, title="Long TP", color=color.green, style=plot.style_linebr, linewidth=1)
plot(short_entry_price ? short_entry_price + sl : na, title="Short SL", color=color.red, style=plot.style_linebr, linewidth=1)
plot(short_entry_price ? short_entry_price - tp : na, title="Short TP", color=color.green, style=plot.style_linebr, linewidth=1)
// === ALERT CONDITIONS ===
alertcondition(longCondition, title="Buy Signal", message="📈 XAUUSD Buy Setup (M5) detected!")
alertcondition(shortCondition, title="Sell Signal", message="📉 XAUUSD Sell Setup (M5) detected!")