Stratégie avancée d'oscillateur d'espace d'opportunité : un système de trading quantitatif basé sur l'écart de juste valeur

FVG ATR SMA VOL BFVG SFVG
Date de création: 2025-02-21 10:43:26 Dernière modification: 2025-02-24 14:55:25
Copier: 1 Nombre de clics: 362
2
Suivre
319
Abonnés

Stratégie avancée d’oscillateur d’espace d’opportunité : un système de trading quantitatif basé sur l’écart de juste valeur Stratégie avancée d’oscillateur d’espace d’opportunité : un système de trading quantitatif basé sur l’écart de juste valeur

Aperçu

Cette stratégie est un système de négociation innovant basé sur le vide de juste valeur (FVG) qui capture les opportunités de négociation potentielles en identifiant les écarts de prix et les anomalies de volume de transaction dans le marché. La stratégie, combinant un mécanisme de comptage dynamique et un traitement standardisé, permet non seulement d’identifier avec précision les signaux d’achat et de vente, mais également d’aider les traders à mieux comprendre la structure du marché grâce à une présentation visuelle.

Principe de stratégie

Le cœur de la stratégie est d’identifier les opportunités de transactions potentielles en surveillant les écarts de prix entre les lignes K continues.

  1. La condition de formation d’un BFVG est que le prix le plus bas de la ligne K actuelle est supérieur au prix le plus élevé des deux lignes K précédentes
  2. La condition de formation de la FVG (SFVG) est que le prix le plus élevé de la ligne K actuelle est inférieur au prix le plus bas avant les deux lignes K
  3. La stratégie a introduit un mécanisme de vérification basé sur le volume de transactions et la taille de la faille, et le signal de transaction est déclenché uniquement par les FVG qui remplissent les conditions de vérification.
  4. Utilisez une fenêtre de comptage dynamique de 50 cycles pour cumuler le nombre de FVG en survol
  5. La conversion de la largeur d’ouverture en un indicateur plus intuitif par traitement homogène

Avantages stratégiques

  1. Le système dispose d’un mécanisme de validation du signal parfait, permettant d’améliorer la qualité du signal grâce à la double confirmation de la quantité de transactions et de l’amplitude de la faille
  2. Les fenêtres de compteurs dynamiques permettent de capturer efficacement les changements de tendance du marché
  3. Le traitement de l’uniformisation permet la comparabilité des signaux de différentes périodes
  4. La stratégie est dotée d’une fonction de gestion automatique des positions, qui permet d’effacer automatiquement les positions inverses avant d’ouvrir une nouvelle position.
  5. Une bonne visualisation pour aider les traders à comprendre le marché

Risque stratégique

  1. Les signaux FVG peuvent produire de faux signaux dans les marchés à forte volatilité
  2. Les paramètres de vérification fixes peuvent ne pas s’appliquer à tous les environnements de marché
  3. Aucun arrêt de perte et de freinage n’a été mis en place, ce qui pourrait entraîner un retrait plus important.
  4. Les transactions fréquentes peuvent entraîner des coûts de transaction plus élevés Il est recommandé de gérer ces risques en définissant des positions de stop-loss appropriées et en introduisant des filtres d’environnement de marché.

Orientation de l’optimisation de la stratégie

  1. L’introduction d’un mécanisme d’ajustement des paramètres adaptatifs permettant aux stratégies de mieux s’adapter aux différents environnements du marché
  2. Ajoutez un filtre de tendance et ne négociez qu’en sens unique en cas de forte tendance
  3. La conception de systèmes de gestion des entrepôts plus complexes, y compris la construction par lots et l’arrêt dynamique des pertes
  4. Considérations sur les coûts de transaction et optimisation de la fréquence des transactions
  5. Combiné à d’autres indicateurs techniques pour améliorer la fiabilité du signal

Résumer

Il s’agit d’une stratégie de négociation innovante basée sur la structure des prix qui capture les opportunités de marché en identifiant et en vérifiant intelligemment les lacunes de juste valeur. La stratégie est conçue avec une conception claire, une mise en œuvre professionnelle et une bonne extensibilité.

Code source de la stratégie
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

// ----------------------------------------------------------------------------
// This Pine Script™ code is subject to the terms of the Mozilla Public License
// 2.0 at https://mozilla.org/MPL/2.0/
// © OmegaTools
// ----------------------------------------------------------------------------

//@version=5
strategy("FVG Oscillator Strategy", 
     shorttitle="FVG Osc v5 [Strategy]", 
     overlay=false, 
     initial_capital=100000, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100)

//------------------------------------------------------------------------------
// 1) Input Parameters
//------------------------------------------------------------------------------
lnt   = input.int(50, "Bars Back")
area  = input.bool(true, "Show Areas")
upcol = input.color(#2962ff, "Positive Color")
dncol = input.color(#e91e63, "Negative Color")

//------------------------------------------------------------------------------
// 2) FVG Detection
//    bfvg = bullish FVG, sfvg = bearish FVG
//------------------------------------------------------------------------------
bfvg = low > high[2]
sfvg = high < low[2]

//------------------------------------------------------------------------------
// 3) Additional Conditions - FVG Verification (Volume, Gap Size)
//------------------------------------------------------------------------------
vol  = volume > ta.sma(volume, 10)
batr = (low - high[2]) > ta.sma(low - high[2], lnt) * 1.5
satr = (high - low[2]) > ta.sma(high - low[2], lnt) * 1.5

//------------------------------------------------------------------------------
// 4) Sum of Bullish / Bearish FVG within the Last lnt Bars
//------------------------------------------------------------------------------
countup   = math.sum(bfvg ? 1 : 0, lnt)      // +1 for each BFVG
countdown = math.sum(sfvg ? -1 : 0, lnt)     // -1 for each SFVG

//------------------------------------------------------------------------------
// 5) Verification (e.g., Require Higher Volume or Large Gap)
//------------------------------------------------------------------------------
verifyb = (bfvg and vol[1]) or (bfvg and batr)
verifys = (sfvg and vol[1]) or (sfvg and satr)

//------------------------------------------------------------------------------
// 6) Normalized Gap Values
//------------------------------------------------------------------------------
normb = ((low - high[2]) * countup * 0.75) / ta.highest(low - high[2], lnt)
norms = ((high - low[2]) * countdown * 0.75) / ta.lowest(high - low[2], lnt)

//------------------------------------------------------------------------------
// 7) Total Net FVG Count + Calculation of Maximum for fill()
//------------------------------------------------------------------------------
totcount = countup + countdown
max      = math.max(
               ta.highest(countup, 200), 
               ta.highest(math.abs(countdown), 200)
           )

//------------------------------------------------------------------------------
// 8) Plotting Values (as in an indicator – can be kept for visualization)
//------------------------------------------------------------------------------
up   = plot(countup,     "Buy FVG",  color=upcol,  display=display.none)
down = plot(countdown,   "Sell FVG", color=dncol,  display=display.none)
zero = plot(0, "", color.new(color.gray, 100), display=display.none, editable=false)

// Net Value (sum of FVG)
plot(totcount, "Net Value", color=color.new(color.gray, 50))

// Filling areas above/below zero

plot(verifyb ? normb : na, "Long Pattern Width",  color=upcol,  linewidth=1, style=plot.style_histogram)
plot(verifys ? norms : na, "Short Pattern Width", color=dncol, linewidth=1, style=plot.style_histogram)

//------------------------------------------------------------------------------
// 9) Simple Trading Logic (STRATEGY)
//------------------------------------------------------------------------------
// - If "verifyb" is detected, go long.
// - If "verifys" is detected, go short.
//
// You can extend this with Stop Loss, Take Profit, 
// closing old positions, etc.
//------------------------------------------------------------------------------
bool goLong  = verifyb
bool goShort = verifys

// Basic example: Open Long if verifyb, Open Short if verifys.
if goLong
    // First close any short position if it exists
    if strategy.position_size < 0
        strategy.close("Short FVG")
    // Then open Long
    strategy.entry("Long FVG", strategy.long)

if goShort
    // First close any long position if it exists
    if strategy.position_size > 0
        strategy.close("Long FVG")
    // Then open Short
    strategy.entry("Short FVG", strategy.short)