
La stratégie de trading quantifié est un système de trading intégré qui combine plusieurs indicateurs techniques pour capturer les différentes opportunités de trading sur le marché. Le cœur du système est constitué des trois indicateurs majeurs: le diagramme de l’Ichimoku, l’indice de force relative, le RSI et la moyenne mobile pondérée par la transaction, le VWMA, et utilise la dynamique de l’amplitude de fluctuation en temps réel, l’ATR, les paramètres d’arrêt et de perte. La suite de stratégies propose quatre sous-stratégies différentes, adaptées à différents environnements de marché: le type de suivi de la tendance, le type de rebond uniforme, le type de revers inverse, le type de divergence et le type de rupture.
Le principe central de cette stratégie est de confirmer les signaux de transaction par une combinaison de plusieurs indicateurs, ce qui améliore la fiabilité des signaux.
Composants de la carte du nuage Ichimoku:
Indicateur RSILe RSI standard de 14 cycles est utilisé pour mesurer la dynamique des prix et les surachats et les survente.
Indicateur VWMAMoyenne mobile pondérée à 20 cycles pour confirmer la tendance des prix
Indicateur ATR: utilisé pour définir dynamiquement les niveaux de stop loss et stop loss, en s’adaptant à la volatilité du marché
Selon le type de stratégie choisi, le système active différentes logiques de génération de signaux:
Chaque fois qu’un signal de transaction est généré, le système définit des niveaux de stop et d’arrêt dynamiques en fonction de la valeur ATR, avec par défaut un stop de 1,5 fois l’ATR et un stop de 3,0 fois l’ATR, ce qui assure une gestion des risques en accord avec la volatilité du marché.
Mécanisme de vérification multidimensionnelle: La confirmation des signaux de négociation en trois dimensions, à partir de la tendance, de la dynamique et du volume de transactions, est réalisée en combinant trois types d’indicateurs différents, le diagramme du nuage d’Ichimoku, le RSI et le VWMA, ce qui réduit considérablement le risque de faux signaux.
Très adaptable: La suite de stratégies offre quatre sous-stratégies différentes, adaptées à différents environnements de marché, avec des options de stratégies correspondantes allant de la tendance à la convulsion.
Gestion dynamique des risques: l’utilisation de l’indicateur ATR pour définir dynamiquement les niveaux de stop loss et stop loss, permettant à la gestion des risques de s’adapter automatiquement à la volatilité du marché, évitant ainsi l’inadaptabilité des stop loss à point fixe dans différents environnements de volatilité.
Mécanisme de défense contre la répétitionEn suivant l’état du signal précédent (variable “prevSignal”), on évite de générer des signaux répétitifs dans la même direction, ce qui réduit les coûts de transaction inutiles.
Aide visuelle: marquer clairement chaque signal de trading et sa stratégie d’origine sur un graphique à l’aide d’une balise pour faciliter l’analyse de retour et la surveillance en temps réel.
Conception modulaire: La structure du code est claire, les modules fonctionnels sont séparés, ce qui facilite la maintenance et l’extension ultérieures, par exemple, il est facile d’ajouter de nouvelles variantes de stratégie ou d’ajuster les paramètres de stratégie existants.
Paramètre Sensibilité: La stratégie utilise plusieurs indicateurs techniques, chacun avec sa propre configuration de paramètres, ce qui rend la stratégie plus sensible au choix des paramètres. Différents marchés ou périodes de temps peuvent nécessiter des combinaisons de paramètres différentes pour obtenir des résultats optimaux. La solution consiste à effectuer une optimisation et un retour de paramètres suffisants pour trouver des combinaisons de paramètres robustes.
Risque de retard de signal: Les indicateurs techniques sont par nature en retard, en particulier les moyennes mobiles, ce qui peut entraîner une entrée tardive près des virages de tendance. La solution consiste à envisager d’ajouter certains indicateurs de pointe ou de raccourcir la période de certains indicateurs, ce qui améliore la rapidité des signaux.
Risques liés à la surventeQuatre stratégies peuvent produire des signaux fréquents dans certaines conditions de marché, entraînant une survente des transactions. La solution consiste à ajouter des conditions de filtrage des signaux ou à mettre en place un mécanisme de période de refroidissement des transactions, limitant la fréquence des transactions sur de courtes périodes.
Les nuages expliquent la complexitéLe nuage d’Ichimoku est un système d’indicateurs relativement complexe qui nécessite de l’expérience pour être correctement interprété. La solution consiste à approfondir les principes d’utilisation du nuage d’Ichimoku ou à envisager de simplifier l’utilisation du nuage d’Ichimoku en utilisant uniquement ses composants de base.
RSI détourné de la simplification des jugements: Le jugement de l’écart de RSI dans le code utilise un algorithme simplifié qui peut ne pas capturer toutes les formes d’écart efficaces. La solution est d’améliorer l’algorithme de détection de l’écart et d’utiliser une méthode de jugement plus précise.
Ratio de stop-loss est fixe: Bien qu’il soit possible d’utiliser l’ATR pour définir dynamiquement le point d’arrêt de perte, le multiplicateur ATR de l’arrêt de perte est fixe et peut ne pas s’appliquer à toutes les conditions du marché. La solution consiste à ajuster dynamiquement le multiplicateur ATR en fonction des caractéristiques de la fluctuation du marché ou du type de stratégie, ou à mettre en œuvre une stratégie d’arrêt mobile.
Amélioration de l’algorithme de déviationLe code actuel utilise une méthode simplifiée de détection de déviation du RSI qui permet d’améliorer la précision de la déviation en mettant en œuvre des algorithmes de détection de sommets plus complexes. En particulier, l’indicateur ZigZag ou la théorie de la fracturation peuvent être utilisés pour identifier les points de basculement critiques du prix et de l’indicateur, puis comparer la position relative de ces points pour juger de la déviation.
Ajouter un filtre temporel: de nombreux marchés présentent des caractéristiques différentes à différentes périodes, il est possible d’ajouter des conditions de filtrage temporel, d’activer ou de désactiver certaines stratégies à des périodes de négociation spécifiques pour éviter des périodes de négociation inefficaces.
Confirmation d’augmentation du volume: Bien que la stratégie utilise VWMA, il est possible d’ajouter des analyses de volume de transaction directes, par exemple en demandant que le volume de transaction au moment de la génération du signal soit supérieur au volume de transaction moyen des N cycles précédents, pour améliorer la fiabilité du signal.
Implémentation de paramètres adaptatifs: les paramètres clés (tels que les seuils RSI, les multiples ATR, etc.) sont conçus pour s’ajuster automatiquement en fonction des fluctuations du marché, par exemple en utilisant des seuils RSI plus souples et une plus grande distance de stop loss dans des marchés très volatils, et vice versa.
Joignez-vous au filtrage de force de tendance: l’introduction d’indicateurs de force de tendance tels que l’ADX, l’adoption de stratégies de suivi de la tendance uniquement lorsque la tendance est suffisamment forte, le passage à des stratégies de renversement ou de choc lorsque la tendance est faible, améliorant l’adaptabilité de la stratégie.
Mise en place d’une gestion partielle des positions: La stratégie actuelle utilise une taille de position fixe ((10% du capital de compte par défaut), permettant une gestion dynamique de la position basée sur la force du signal, la volatilité du marché ou la courbe du capital du compte, par exemple en augmentant la position lorsque le signal est fort et en réduisant la position dans un environnement à forte volatilité.
Ajout d’une fonctionnalité de suivi et d’arrêt des pertesEn plus de la fonction de stop fixe ATR, la fonction Trailing Stop est activée, qui ajuste automatiquement le niveau de stop lorsque le prix se déplace dans une direction favorable, bloquant une partie des bénéfices tout en donnant au prix suffisamment de marge de manœuvre.
Intégrer des méthodes d’apprentissage automatiqueConsidérez d’optimiser les paramètres de stratégie à l’aide d’algorithmes d’apprentissage automatique ou de filtrer les signaux, par exemple en utilisant des forêts aléatoires ou en prenant en charge un classificateur de machine vectorielle pour évaluer la fiabilité de chaque signal et filtrer les signaux de mauvaise qualité.
Le système de négociation intégrée multi-indicateurs est un ensemble de stratégies de négociation quantitative complètement fonctionnelles et flexibles, qui fournit aux traders une solution pour faire face à divers environnements de marché en intégrant les trois principaux indicateurs techniques, le diagramme de l’Ichimoku, le RSI et le VWMA, et en combinant la gestion dynamique des risques ATR. Les principaux avantages de la stratégie résident dans le mécanisme de confirmation de signaux multidimensionnel, la flexibilité du choix de la stratégie et la gestion dynamique des risques. Ces caractéristiques améliorent la robustesse et l’adaptabilité de la stratégie.
En même temps, nous devons reconnaître les risques inhérents à la stratégie, tels que la sensibilité des paramètres, le retard du signal et la simplification des jugements d’écart. Pour répondre à ces risques, nous proposons plusieurs orientations d’optimisation, y compris l’amélioration des algorithmes de détection d’écart, l’ajout d’un filtre de temps, la réalisation de paramètres d’adaptation et l’ajout d’une fonction de suivi des pertes. Ces mesures d’optimisation peuvent améliorer encore la performance et la stabilité de la stratégie.
Dans l’ensemble, ce système de stratégies fournit aux traders un cadre de négociation solide qui peut être appliqué directement aux transactions réelles et servir de base pour le développement et la personnalisation de stratégies ultérieures. Grâce à une optimisation et une adaptation continues, la stratégie est susceptible d’obtenir une performance de négociation stable dans divers environnements de marché.
/*backtest
start: 2024-06-30 00:00:00
end: 2025-06-28 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":50000000}]
*/
//@version=5
strategy("Ichimoku + RSI + VWMA Strategy Suite (w/ ATR SLTP)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === STRATEJI SECIMI === //
strategy_type = input.string("IchimokuRSITrend", options=["IchimokuRSITrend", "VWMA_RSIBounce", "DivergenceReversal", "FlatBreakout"], title="Strateji Tipi")
// === ATR PARAMETRESİ === //
atrLength = input.int(14, title="ATR Periyodu")
atrMultSL = input.float(1.5, title="Stop-Loss x ATR")
atrMultTP = input.float(3.0, title="Take-Profit x ATR")
atr = ta.atr(atrLength)
// === GÖSTERGE PARAMETRELERİ === //
rsi = ta.rsi(close, 14)
vwma = ta.vwma(close, 20)
// Ichimoku bileşenleri
tenkan = (ta.highest(9) + ta.lowest(9)) / 2
kijun = (ta.highest(26) + ta.lowest(26)) / 2
senkouSpanA = (tenkan + kijun) / 2
senkouSpanB = (ta.highest(52) + ta.lowest(52)) / 2
priceAboveCloud = close > senkouSpanA and close > senkouSpanB
priceBelowCloud = close < senkouSpanA and close < senkouSpanB
tenkanAboveKijun = tenkan > kijun
tenkanFlat = math.abs(tenkan - kijun) < 1.0
// RSI Divergence Etiketi (basit taklit)
rsiBullishDiv = ta.lowestbars(rsi, 5) < ta.lowestbars(rsi, 5)[1] and ta.lowestbars(close, 5) > ta.lowestbars(close, 5)[1]
rsiBearishDiv = ta.highestbars(rsi, 5) > ta.highestbars(rsi, 5)[1] and ta.highestbars(close, 5) < ta.highestbars(close, 5)[1]
// === SİNYAL TANIMLARI === //
var string prevSignal = "none"
longSignal = false
shortSignal = false
// === STRATEJİ 1: Ichimoku Bulut + RSI Momentum === //
if strategy_type == "IchimokuRSITrend"
longSignal := priceAboveCloud and tenkanAboveKijun and rsi > 50 and close > vwma and prevSignal != "long"
shortSignal := priceBelowCloud and not tenkanAboveKijun and rsi < 50 and close < vwma and prevSignal != "short"
// === STRATEJİ 2: VWMA Cross + RSI Aşırı Satım === //
if strategy_type == "VWMA_RSIBounce"
longSignal := ta.crossover(close, vwma) and rsi > 35 and tenkanAboveKijun and prevSignal != "long"
shortSignal := ta.crossunder(close, vwma) and rsi < 65 and kijun > tenkan and prevSignal != "short"
// === STRATEJİ 3: RSI Divergence + Ichimoku Reversal === //
if strategy_type == "DivergenceReversal"
longSignal := rsiBullishDiv and tenkanAboveKijun and vwma > close and prevSignal != "long"
shortSignal := rsiBearishDiv and kijun > tenkan and vwma < close and prevSignal != "short"
// === STRATEJİ 4: Flat Zone + RSI Breakout === //
if strategy_type == "FlatBreakout"
longSignal := tenkanFlat and rsi > 55 and close > vwma and prevSignal != "long"
shortSignal := tenkanFlat and rsi < 45 and close < vwma and prevSignal != "short"
// === STRATEJI GİRİŞ/ÇIKIŞLARI === //
if longSignal
strategy.entry("Long", strategy.long)
strategy.exit("TP/SL Long", from_entry="Long", stop=close - atr * atrMultSL, limit=close + atr * atrMultTP)
label.new(bar_index, low, strategy_type + " → LONG", style=label.style_label_up, color=color.green, textcolor=color.white)
prevSignal := "long"
if shortSignal
strategy.entry("Short", strategy.short)
strategy.exit("TP/SL Short", from_entry="Short", stop=close + atr * atrMultSL, limit=close - atr * atrMultTP)
label.new(bar_index, high, strategy_type + " → SHORT", style=label.style_label_down, color=color.red, textcolor=color.white)
prevSignal := "short"