Stratégie révolutionnaire de structure intelligente des TIC basée sur une combinaison de signaux dynamiques sur plusieurs périodes de temps

RSI MACD EMA BOS FVG HTF LTF ICT
Date de création: 2025-01-06 14:09:05 Dernière modification: 2025-01-06 14:09:05
Copier: 0 Nombre de clics: 456
1
Suivre
1617
Abonnés

Stratégie révolutionnaire de structure intelligente des TIC basée sur une combinaison de signaux dynamiques sur plusieurs périodes de temps

Aperçu

La stratégie est un système de trading complet qui combine plusieurs indicateurs techniques et ICT (Institutional Trading Concept). Il intègre des indicateurs d’analyse technique traditionnels (RSI, indicateurs stochastiques, MACD, EMA) et des concepts de trading ICT modernes (écart de juste valeur, percée structurelle, analyse de biais de période de temps élevée) sur différentes périodes de temps et filtre à travers des périodes de trading strictes. Obtenez des données de marché précises contrôle d’accès.

Principe de stratégie

La stratégie repose sur la coordination de cinq composantes essentielles :

  1. Analyse du biais de période de temps élevée : utilisez la moyenne mobile sur 200 jours pour déterminer la direction de la tendance du marché d’une période de temps plus élevée
  2. Filtre de temps de trading : limiter le trading à une « kill zone » spécifique (07h00-10h00)
  3. Identification des écarts de juste valeur (FVG) : identification des écarts structurels sur le marché à travers trois modèles de lignes K
  4. Détermination de la rupture de structure (BOS) : une rupture basée sur un niveau de prix clé confirme un changement de direction
  5. Confirmation de l’indicateur de période basse : vérification multiple à l’aide du RSI, de l’indicateur stochastique, du MACD et de la moyenne mobile 200

Avantages stratégiques

  1. Intégration multidimensionnelle du signal : améliorer la fiabilité du signal en combinant plusieurs indicateurs techniques indépendants et concepts TIC
  2. Coordination du cycle temporel : La coordination des cycles temporels hauts et bas améliore la stabilité du signal
  3. Capture d’opportunités structurelles : se concentrer sur les opportunités commerciales structurelles à forte probabilité grâce à l’identification de FVG et de BOS
  4. Contrôle parfait des risques : y compris mécanisme de stop loss et stop profit, gestion de fonds standardisée
  5. Optimisation du temps de négociation : Réduisez les interférences en dehors des heures de négociation grâce au filtrage temporel

Risque stratégique

  1. Retard du signal : la combinaison de plusieurs indicateurs peut entraîner un retard dans le moment de l’entrée
  2. Performances instables du marché : de faux signaux peuvent fréquemment se produire dans un marché latéral
  3. Sensibilité des paramètres : Le réglage de plusieurs paramètres d’indicateurs nécessite une vérification suffisante des données historiques
  4. Risque d’exécution : une combinaison complexe de conditions peut conduire à manquer certaines opportunités de trading dans le cadre de transactions réelles
  5. Dépendance à l’environnement de marché : les performances des stratégies dans différents environnements de marché peuvent varier considérablement

Orientation de l’optimisation de la stratégie

  1. Réglage dynamique des paramètres : ajustez de manière adaptative les paramètres de chaque indicateur en fonction de la volatilité du marché
  2. Classification de l’environnement de marché : ajoutez un module d’identification de l’environnement de marché et utilisez différentes combinaisons de paramètres pour différentes conditions de marché
  3. Optimisation du poids du signal : introduire des méthodes d’apprentissage automatique pour optimiser la répartition du poids de divers indicateurs
  4. Extension de la période de temps : ajoutez plus de périodes de temps pour l’analyse et améliorez la fiabilité du signal
  5. Contrôle des risques renforcé : introduction d’un mécanisme de stop-loss dynamique et optimisation des stratégies de gestion des fonds

Résumer

Cette stratégie construit un système de trading complet en intégrant l’analyse technique traditionnelle aux concepts TIC modernes. Ses avantages résident dans la confirmation multidimensionnelle du signal et dans un contrôle strict des risques, mais il est également confronté à des défis en matière d’optimisation des paramètres et d’adaptabilité du marché. Grâce à une optimisation et une amélioration continues, la stratégie devrait permettre de maintenir des performances stables dans différents environnements de marché.

Code source de la stratégie
/*backtest
start: 2024-01-06 00:00:00
end: 2025-01-04 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// -----------------------------------------------------
// Multi-Signal Conservative Strategy (Pine Script v5)
// + More ICT Concepts (HTF Bias, FVG, Killzone, BOS)
// -----------------------------------------------------
//
// Combines:
// - RSI, Stochastic, MACD, 200 EMA (lower TF)
// - Higher Timeframe (HTF) bias check via 200 EMA
// - Kill Zone time filter
// - Fair Value Gap (FVG) detection (simplified 3-candle approach)
// - Break of Structure (BOS) using pivot highs/lows
// - Only trade markers on chart (no extra indicator plots).
//
// Use on lower timeframes: 1m to 15m
// Always backtest thoroughly and manage risk properly.
//
// -----------------------------------------------------
//@version=5
strategy(title="Multi-Signal + ICT Concepts (HTF/FVG/Killzone/BOS)", shorttitle="ICTStrategyExample",overlay=true, pyramiding=0, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// -----------------------------------------------------
// User Inputs
// -----------------------------------------------------
/////////////// Lower TF Inputs ///////////////
emaLength       = input.int(200,   "LTF EMA Length",           group="Lower TF")
rsiLength       = input.int(14,    "RSI Length",               group="Lower TF")
rsiUpper        = input.int(60,    "RSI Overbought Thresh",    group="Lower TF", minval=50, maxval=80)
rsiLower        = input.int(40,    "RSI Oversold Thresh",      group="Lower TF", minval=20, maxval=50)
stochLengthK    = input.int(14,    "Stoch K Length",           group="Lower TF")
stochLengthD    = input.int(3,     "Stoch D Smoothing",        group="Lower TF")
stochSmooth     = input.int(3,     "Stoch Smoothing",          group="Lower TF")
macdFast        = input.int(12,    "MACD Fast Length",         group="Lower TF")
macdSlow        = input.int(26,    "MACD Slow Length",         group="Lower TF")
macdSignal      = input.int(9,     "MACD Signal Length",       group="Lower TF")

/////////////// ICT Concepts Inputs ///////////////
htfTimeframe    = input.timeframe("60", "HTF for Bias (e.g. 60, 240)", group="ICT Concepts")
htfEmaLen       = input.int(200,  "HTF EMA Length",                   group="ICT Concepts")
sessionInput    = input("0700-1000:1234567", "Kill Zone Window", group="ICT Concepts")
fvgLookbackBars = input.int(2,    "FVG Lookback Bars (3-candle check)",  group="ICT Concepts", minval=1, maxval=10)

/////////////// Risk Management ///////////////
stopLossPerc    = input.float(0.5, "Stop-Loss %",  step=0.1, group="Risk")
takeProfitPerc  = input.float(1.0, "Take-Profit %", step=0.1, group="Risk")

// -----------------------------------------------------
// 1) Higher Timeframe Bias
// -----------------------------------------------------
//
// We'll request the HTF close, then compute the HTF EMA on that data
// to decide if it's bullish or bearish overall.

htfClose       = request.security(syminfo.tickerid, htfTimeframe, close)
htfEma         = request.security(syminfo.tickerid, htfTimeframe, ta.ema(close, htfEmaLen))
isBullHTF      = htfClose > htfEma
isBearHTF      = htfClose < htfEma

// -----------------------------------------------------
// 2) Kill Zone / Session Filter
// -----------------------------------------------------
//
// We'll only consider trades if the current bar is within
// the user-defined session time (e.g., 07:00 to 10:00 local or exchange time).

isInKillZone = time(timeframe.period, sessionInput) != 0

// -----------------------------------------------------
// 3) Fair Value Gap (FVG) Detection (Simplified)
//
// For a "Bullish FVG" among bars [2], [1], [0]:
//     high[2] < low[0] => there's a gap that bar [1] didn't fill
// For a "Bearish FVG":
//     low[2] > high[0] => there's a gap that bar [1] didn't fill
//
// Real ICT usage might check partial fill, candle bodies vs wicks, etc.
// This is just a minimal example for demonstration.

fvgBarsAgo = fvgLookbackBars // default = 2
bullFVG = high[fvgBarsAgo] < low  // e.g. high[2] < low[0]
bearFVG = low[fvgBarsAgo]  > high // e.g. low[2]  > high[0]

// -----------------------------------------------------
// 4) Break of Structure (BOS)
// -----------------------------------------------------
// Using pivot detection from previous example:

swingLen = 2  // pivot detection length (bars on each side)
// Identify a pivot high at bar [1]
swingHigh = high[1] > high[2] and high[1] > high[0]
// Identify a pivot low at bar [1]
swingLow  = low[1]  < low[2]  and low[1]  < low[0]

// Track the most recent pivot high & low
var float lastPivotHigh = na
var float lastPivotLow  = na

if swingHigh
    lastPivotHigh := high[1]

if swingLow
    lastPivotLow := low[1]

bosUp   = not na(lastPivotHigh) and (close > lastPivotHigh)
bosDown = not na(lastPivotLow)  and (close < lastPivotLow)

// -----------------------------------------------------
// 5) Lower TF Indicator Calculations
// -----------------------------------------------------
ema200      = ta.ema(close, emaLength)  // 200 EMA on LTF
rsiValue    = ta.rsi(close, rsiLength)
kValue      = ta.stoch(high, low, close, stochLengthK)
dValue      = ta.sma(kValue, stochLengthD)
stochSignal = ta.sma(dValue, stochSmooth)
[macdLine, signalLine, histLine] = ta.macd(close, macdFast, macdSlow, macdSignal)

// LTF trend filter
isBullTrend = close > ema200
isBearTrend = close < ema200

// -----------------------------------------------------
// Combine All Conditions
// -----------------------------------------------------
//
// We'll require that all filters line up for a long or short:
//  - HTF bias
//  - kill zone
//  - bullish/bearish FVG
//  - BOS up/down
//  - RSI, Stoch, MACD alignment
//  - Price above/below LTF 200 EMA

longCondition = isInKillZone                     // must be in session
 and isBullHTF                                   // HTF bias bullish
 and bullFVG                                     // bullish FVG
 and bosUp                                       // BOS up
 and (rsiValue > rsiUpper)                       // RSI > threshold
 and (kValue > dValue)                           // stoch K above D
 and (macdLine > signalLine)                     // MACD bullish
 and isBullTrend                                 // above LTF 200 EMA

shortCondition = isInKillZone                    // must be in session
 and isBearHTF                                   // HTF bias bearish
 and bearFVG                                     // bearish FVG
 and bosDown                                     // BOS down
 and (rsiValue < rsiLower)                       // RSI < threshold
 and (kValue < dValue)                           // stoch K below D
 and (macdLine < signalLine)                     // MACD bearish
 and isBearTrend                                 // below LTF 200 EMA

// -----------------------------------------------------
// Strategy Entries
// -----------------------------------------------------
if longCondition
    strategy.entry("Long Entry", strategy.long)

if shortCondition
    strategy.entry("Short Entry", strategy.short)

// -----------------------------------------------------
// Risk Management (Stop-Loss & Take-Profit)
// -----------------------------------------------------
if strategy.position_size > 0
    // Long position exit
    strategy.exit("Long Exit", stop  = strategy.position_avg_price * (1.0 - stopLossPerc/100.0), limit = strategy.position_avg_price * (1.0 + takeProfitPerc/100.0))

if strategy.position_size < 0
    // Short position exit
    strategy.exit("Short Exit",  stop  = strategy.position_avg_price * (1.0 + stopLossPerc/100.0), limit = strategy.position_avg_price * (1.0 - takeProfitPerc/100.0))

// -----------------------------------------------------
// Hide All Indicator Plots
// (We only show trade markers for entry & exit)
// -----------------------------------------------------
// Comment out or remove any plot() calls so chart stays clean.
//
// Example (commented out):
// plot(ema200, title="EMA 200", color=color.new(color.yellow, 0), linewidth=2)
// plot(rsiValue, title="RSI", color=color.new(color.blue, 0))
// plot(macdLine, title="MACD", color=color.new(color.teal, 0))
// plot(signalLine, title="Signal", color=color.new(color.purple, 0))