Les ressources ont été chargées... Je charge...

Intégration dynamique de signaux à plusieurs périodes Stratégie de percée en matière de structure intelligente des TIC

Auteur:ChaoZhang est là., Date: 2025-01-06 14:09:05 Je suis désolé
Les étiquettes:Indice de résistanceLe MACDLe taux d'intérêtBOSFVGHTFLTFLes TIC

img

Résumé

Cette stratégie est un système de négociation complet qui combine plusieurs indicateurs techniques avec les TIC (concepts de négociation institutionnels). Il intègre les indicateurs d'analyse technique traditionnels (RSI, stochastique, MACD, EMA) avec des concepts de négociation TIC modernes (écart de juste valeur, rupture de la structure, analyse des biais de plus grande durée) à travers différents délais, mettant en œuvre un contrôle précis de l'entrée sur le marché grâce à un filtrage strict des sessions de négociation.

Principes de stratégie

La stratégie fonctionne sur la base de cinq composantes essentielles travaillant en synergie:

  1. Analyses de biais sur des délais plus longs: Utilisation de l'EMA 200 pour déterminer l'orientation de la tendance du marché sur des délais plus longs
  2. Filtre de session de négociation: négociation limitée à une zone spécifique Kill Zone (07:00-10:00)
  3. Définition de l'écart de juste valeur (FVG): reconnaissance des écarts structurels du marché à l'aide de modèles à trois bougies
  4. Détermination de la rupture de la structure (BOS): confirmation des changements de direction basés sur les niveaux clés des prix
  5. Confirmation de l'indicateur de la fourchette de temps inférieure: vérification multiple à l'aide du RSI, du Stochastique, du MACD et de l'EMA 200

Les avantages de la stratégie

  1. Intégration multidimensionnelle des signaux: améliore la fiabilité des signaux grâce à la combinaison de plusieurs indicateurs techniques indépendants et de concepts TIC
  2. Synergie entre les délais: une coordination entre les délais supérieur et inférieur améliore la stabilité du signal
  3. Capture d'opportunités structurelles: mise au point d'opportunités de négociation structurelles à forte probabilité par l'identification des FVG et des BOS
  4. Contrôle complet des risques: comprend des mécanismes de stop-loss et de prise de profit, une gestion standardisée de l'argent
  5. Optimisation du temps de négociation: réduit les interférences des sessions non commerciales grâce au filtrage du temps

Risques stratégiques

  1. Décalage du signal: une combinaison d'indicateurs multiples peut entraîner un retard dans le temps d'entrée
  2. Résultats de marché latéraux: peuvent générer de fréquents faux signaux sur des marchés variés
  3. Sensibilité des paramètres: plusieurs paramètres d'indicateur nécessitent une validation approfondie des données historiques
  4. Risque d'exécution: des combinaisons de conditions complexes peuvent faire perdre certaines opportunités de négociation dans le cadre de la négociation en direct.
  5. Dépendance de l'environnement du marché: le rendement de la stratégie peut varier considérablement selon les différentes conditions du marché

Directions d'optimisation de la stratégie

  1. Ajustement dynamique des paramètres: ajustement adaptatif des paramètres des indicateurs basé sur la volatilité du marché
  2. Classification de l'environnement de marché: ajout du module de reconnaissance de l'environnement de marché pour différentes combinaisons de paramètres
  3. Optimisation du poids du signal: Introduction de méthodes d'apprentissage automatique pour optimiser la distribution du poids des indicateurs
  4. Extension du délai: inclusion d'un plus grand nombre d'analyses de délai pour améliorer la fiabilité du signal
  5. Amélioration du contrôle des risques: introduction de mécanismes dynamiques de stop-loss et optimisation des stratégies de gestion de l'argent

Résumé

La stratégie construit un système de trading complet en intégrant l'analyse technique traditionnelle avec les concepts informatiques modernes. Ses atouts résident dans la confirmation du signal multidimensionnel et le contrôle strict des risques, tout en faisant face à des défis en matière d'optimisation des paramètres et d'adaptabilité du marché.


/*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))


Relationnée

Plus de