Estrategia avanzada de oscilador de espacio de oportunidad: un sistema de negociación cuantitativo basado en la brecha de valor justo

FVG ATR SMA VOL BFVG SFVG
Fecha de creación: 2025-02-21 10:43:26 Última modificación: 2025-02-24 14:55:25
Copiar: 1 Número de Visitas: 362
2
Seguir
319
Seguidores

Estrategia avanzada de oscilador de espacio de oportunidad: un sistema de negociación cuantitativo basado en la brecha de valor justo Estrategia avanzada de oscilador de espacio de oportunidad: un sistema de negociación cuantitativo basado en la brecha de valor justo

Descripción general

La estrategia es un sistema de negociación innovador basado en la brecha de valor justo (FVG) para capturar oportunidades de negociación potenciales mediante la identificación de brechas de precios y anomalías en el volumen de transacción en el mercado. La estrategia combina mecanismos de contabilidad dinámica y procesamiento estandarizado, que no solo puede identificar con precisión las señales de compra y venta, sino que también puede ayudar a los comerciantes a comprender mejor la estructura del mercado mediante su visualización.

Principio de estrategia

El núcleo de la estrategia es identificar posibles oportunidades de negociación mediante la monitorización de brechas de precios entre líneas K continuas. En concreto:

  1. La condición para la formación de un BFVG es que el precio mínimo de la línea K actual es mayor que el precio máximo anterior a las dos líneas K
  2. La condición para la formación de un FVG es que el precio máximo de la línea K actual es menor que el precio mínimo de las dos líneas K anteriores.
  3. La estrategia introdujo un mecanismo de verificación basado en el volumen de transacciones y el tamaño de la brecha, y solo los FVG que cumplen con los requisitos de verificación dispararán la señal de transacción.
  4. Utiliza una ventana de recuento dinámico de 50 ciclos para acumular el número de FVG en el aire
  5. Convierte la anchura de la brecha en un indicador más intuitivo mediante el tratamiento de la estandarización

Ventajas estratégicas

  1. El sistema cuenta con un mecanismo de verificación de la señal completo para mejorar la calidad de la señal mediante la doble confirmación del volumen de transacción y la amplitud de la brecha
  2. Las ventanas de conteo dinámico pueden capturar de manera efectiva los cambios en las tendencias del mercado
  3. El tratamiento de homogeneidad permite la comparabilidad de señales de diferentes épocas
  4. La estrategia tiene una función de administración automática de posiciones, que automáticamente elimina las posiciones invertidas antes de abrir una nueva posición
  5. Excelentes efectos visuales para ayudar a los operadores a entender el estado del mercado

Riesgo estratégico

  1. Las señales FVG pueden generar falsas señales en mercados de alta volatilidad
  2. Los parámetros de verificación fijos pueden no ser válidos para todos los entornos de mercado
  3. No hay un mecanismo de detención de pérdidas y detenición, lo que puede provocar una mayor retirada
  4. Las transacciones frecuentes pueden generar costos de transacción más altos Se recomienda administrar estos riesgos mediante la configuración de la posición de parada adecuada y la introducción de filtros de entorno de mercado.

Dirección de optimización de la estrategia

  1. Introducción de mecanismos de ajuste de parámetros adaptativos para que las estrategias se adapten mejor a diferentes entornos de mercado
  2. Aumentar el filtro de tendencia y hacer solo operaciones unidireccionales en una tendencia fuerte
  3. Diseño de sistemas de gestión de almacenes más complejos, incluyendo la construcción de almacenes por lotes y el deterioro dinámico
  4. Incluir los costos de las transacciones y optimizar la frecuencia de las transacciones
  5. Mejora de la fiabilidad de la señal junto con otros indicadores técnicos

Resumir

Se trata de una estrategia de negociación innovadora basada en la estructura de precios, que captura oportunidades de mercado mediante la identificación y verificación inteligente de brechas de valor justo. La estrategia está diseñada con claridad de concepto, la forma de implementación es profesional y tiene una buena escalabilidad.

Código Fuente de la Estrategia
/*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)