Stratégie de rupture de l'écart de juste valeur sur plusieurs périodes basée sur des tests rétrospectifs historiques

FVG BOS HTF RR SL
Date de création: 2025-01-17 14:45:10 Dernière modification: 2025-01-17 14:45:10
Copier: 0 Nombre de clics: 454
1
Suivre
1617
Abonnés

Stratégie de rupture de l’écart de juste valeur sur plusieurs périodes basée sur des tests rétrospectifs historiques

Aperçu de la stratégie

La stratégie est un système de trading complet qui combine plusieurs analyses de périodes de temps, des écarts de juste valeur (FVG) et une rupture de structure (BOS). Il identifie les entrées commerciales potentielles en identifiant les ruptures dans la structure des prix sur des périodes plus longues tout en recherchant la formation d’écarts de juste valeur sur des périodes plus courtes. La stratégie intègre également un système de gestion des risques, incluant la définition automatique d’objectifs de stop-loss et de profit.

Principe de stratégie

La logique de base de la stratégie repose sur trois piliers principaux : Premièrement, l’utilisation de délais plus longs (par défaut 1 heure ou plus) pour identifier les cassures dans la structure des prix (BOS), qui fournit le cadre de base pour la direction du trading. Deuxièmement, recherchez un écart de juste valeur (FVG) sur des périodes plus courtes. La formation d’un FVG indique qu’il existe un déséquilibre potentiel entre l’offre et la demande sur le marché dans cette zone. Enfin, ces deux conditions sont combinées à la position de prix actuelle pour déclencher un signal de trading lorsque le prix est dans une position favorable. Le système gère le risque de chaque transaction grâce au ratio risque/récompense et au facteur stop-loss.

Avantages stratégiques

  1. Analyse multidimensionnelle : en combinant l’analyse de plusieurs périodes de temps, la fiabilité des signaux de trading est améliorée.
  2. Gestion parfaite des risques : le paramètre intégré de ratio risque/rendement et le mécanisme de contrôle stop-loss garantissent que chaque transaction bénéficie d’un contrôle clair des risques.
  3. Commentaires visuels : la stratégie fournit un retour visuel clair, y compris l’affichage de la case FVG et le marquage des opportunités de trading potentielles.
  4. Forte adaptabilité : grâce à l’ajustement des paramètres, la stratégie peut s’adapter à différentes conditions de marché et styles de trading.

Risque stratégique

  1. Risque de fausse cassure : le marché peut connaître une fausse cassure, entraînant de faux signaux de trading. La solution est d’ajouter un mécanisme de confirmation du signal.
  2. Retard du signal : en raison de l’utilisation de données sur une période plus longue, il peut y avoir un décalage du signal. Il est recommandé de confirmer en combinaison avec d’autres indicateurs techniques.
  3. Risque de volatilité du marché : pendant les périodes de forte volatilité, la formation du FVG peut ne pas être suffisamment stable. Ceci peut être résolu en ajustant la durée d’observation du FVG.

Orientation de l’optimisation de la stratégie

  1. Filtrage du signal : Un mécanisme de confirmation du volume peut être ajouté pour confirmer le signal uniquement si le volume le prend en charge.
  2. Paramètres dynamiques : Le ratio risque/rendement et le facteur stop-loss peuvent être ajustés de manière dynamique en fonction de la volatilité du marché.
  3. Filtrage des tendances : ajoutez des indicateurs de jugement de tendance et ouvrez des positions uniquement dans le sens de la tendance.
  4. Filtre temporel : ajoutez des filtres de période de négociation pour éviter de négocier pendant les heures de marché défavorables.

Résumer

La stratégie construit un système de trading complet en combinant une analyse sur plusieurs périodes, des percées dans la structure des prix et des écarts de juste valeur. Ses avantages résident dans ses méthodes d’analyse multidimensionnelles et son mécanisme parfait de gestion des risques, mais les traders doivent toujours effectuer une optimisation des paramètres et un contrôle des risques appropriés en fonction des conditions réelles du marché. L’optimisation ultérieure peut commencer par la confirmation du signal, l’ajustement des paramètres dynamiques et le filtrage de l’environnement du marché pour améliorer encore la stabilité et la fiabilité de la stratégie.

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

//@version=5
strategy("ICT Strategy with Historical Backtest", overlay=true)

// === Настройки ===
tf = input.timeframe("60", title="Higher Timeframe (1H or above)")  // Таймфрейм для анализа BOS
fvg_length = input(3, title="FVG Lookback Length")                   // Длина для поиска FVG
risk_reward = input(2, title="Risk-Reward Ratio")                    // Риск-вознаграждение
show_fvg_boxes = input(true, title="Show FVG Boxes")                 // Показывать FVG
stop_loss_factor = input.float(1.0, title="Stop Loss Factor")         // Множитель для стоп-лосса

// === Переменные для анализа ===
var float bos_high = na
var float bos_low = na

// Получаем данные с более старшего таймфрейма
htf_high = request.security(syminfo.tickerid, tf, high)
htf_low = request.security(syminfo.tickerid, tf, low)
htf_close = request.security(syminfo.tickerid, tf, close)

// Определение BOS (Break of Structure) на старшем таймфрейме
bos_up = ta.highest(htf_high, fvg_length) > ta.highest(htf_high[1], fvg_length)
bos_down = ta.lowest(htf_low, fvg_length) < ta.lowest(htf_low[1], fvg_length)

// Обновляем уровни BOS
if (bos_up)
    bos_high := ta.highest(htf_high, fvg_length)
if (bos_down)
    bos_low := ta.lowest(htf_low, fvg_length)

// === Определение FVG (Fair Value Gap) ===
fvg_up = low > high[1] and low[1] > high[2]
fvg_down = high < low[1] and high[1] < low[2]

// Визуализация FVG (Fair Value Gap)
// if (show_fvg_boxes)
//     if (fvg_up)
//         box.new(left=bar_index[1], top=high[1], right=bar_index, bottom=low, bgcolor=color.new(color.green, 90), border_color=color.green)
//     if (fvg_down)
//         box.new(left=bar_index[1], top=high, right=bar_index, bottom=low[1], bgcolor=color.new(color.red, 90), border_color=color.red)

// === Логика сделок ===
// Условия для входа в Лонг
long_condition = bos_up and fvg_up and close < bos_high
if (long_condition)
    strategy.entry("Long", strategy.long, stop=low * stop_loss_factor, limit=low + (high - low) * risk_reward)

// Условия для входа в Шорт
short_condition = bos_down and fvg_down and close > bos_low
if (short_condition)
    strategy.entry("Short", strategy.short, stop=high * stop_loss_factor, limit=high - (high - low) * risk_reward)

// === Надписи для прогнозируемых сделок ===
if (long_condition)
    label.new(bar_index, low, text="Potential Long", color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)

if (short_condition)
    label.new(bar_index, high, text="Potential Short", color=color.red, style=label.style_label_down, textcolor=color.white, size=size.small)