Estrategia avanzada de detección de brechas de valor razonable basada en gestión dinámica de riesgos y ganancias fijas

FVG SL TP
Fecha de creación: 2024-11-29 16:22:10 Última modificación: 2024-11-29 16:22:10
Copiar: 0 Número de Visitas: 587
1
Seguir
1617
Seguidores

Estrategia avanzada de detección de brechas de valor razonable basada en gestión dinámica de riesgos y ganancias fijas

Descripción general

Se trata de una estrategia de negociación basada en la brecha de valor justo (FVG), que combina la gestión dinámica del riesgo y el objetivo de ganancias fijas. La estrategia se ejecuta en un período de tiempo de 15 minutos para capturar oportunidades de negociación potenciales mediante la identificación de brechas de precios en el mercado. Según los datos de retrospectiva, entre noviembre de 2023 y agosto de 2024, la estrategia logró una rentabilidad neta del 284.40%, con un total de 153 operaciones completadas, de las cuales la rentabilidad alcanzó el 71.24% y el factor de ganancia fue de 2.422

Principio de estrategia

El núcleo de la estrategia es identificar brechas de justo valor mediante la monitorización de las relaciones de precios entre tres líneas K consecutivas. En concreto:

  1. Condiciones para la formación de un FVG de múltiples cabezas: el precio máximo de una línea K actual es inferior al precio mínimo de las dos líneas K anteriores
  2. Condición de formación de la FVG de cabeza vacía: el precio mínimo de una línea K actual es mayor que el precio máximo de las dos líneas K anteriores
  3. La señal de entrada está controlada por los parámetros de valoración de FVG y se dispara solo cuando el tamaño de la brecha supera un cierto porcentaje del precio
  4. El control de riesgo utiliza una proporción fija de intereses en la cuenta (%) como criterio de alto riesgo
  5. Objetivo de ganancias con un número fijo de puntos (de 50 puntos)

Ventajas estratégicas

  1. La ciencia de la gestión de riesgos es razonable: la adopción de cuentas con pérdidas en la proporción de derechos y intereses permite un control de riesgos dinámico
  2. Las reglas de negociación son claras: usar objetivos de ganancias fijas y evitar juicios subjetivos
  3. Excelente rendimiento: una alta tasa de ganancias y un factor de ganancias indican que la estrategia tiene una buena estabilidad
  4. Implementación sencilla: lógica de código clara, fácil de entender y mantener
  5. Adaptabilidad: puede adaptarse a diferentes entornos de mercado mediante parámetros

Riesgo estratégico

  1. Riesgo de fluctuación del mercado: los objetivos de ganancias fijas en puntos pueden no ser lo suficientemente flexibles en mercados altamente volátiles
  2. Riesgo de deslizamiento: las operaciones frecuentes pueden generar costos de deslizamiento más altos
  3. Dependencia de parámetros: el rendimiento de la estrategia depende en gran medida de la configuración de los valores mínimos de FVG
  4. Riesgo de falsa brecha: Algunas señales de FVG pueden ser falsas brechas y requieren indicadores de confirmación adicionales
  5. Riesgo de gestión de fondos: el cierre de la tasa fija puede reducir rápidamente los fondos en caso de pérdidas continuas

Dirección de optimización de la estrategia

  1. Introducción de indicadores de volatilidad del mercado y ajuste dinámico de los objetivos de ganancias
  2. Aumentar los filtros de tendencias para evitar el comercio en mercados horizontales
  3. Desarrollo de un mecanismo de confirmación de múltiples ciclos de tiempo
  4. Optimización de los algoritmos de gestión de posiciones, introducción de un sistema de posiciones flotantes
  5. Aumentar los filtros de tiempo de negociación para evitar períodos de alta volatilidad
  6. Desarrollar un sistema de puntuación de la intensidad de la señal para seleccionar oportunidades de comercio de alta calidad

Resumir

La estrategia ha demostrado una buena eficacia comercial mediante la combinación de la teoría de la brecha de valor justo y los métodos científicos de gestión de riesgos. La alta rentabilidad de la estrategia y el factor de ganancias estables indican que tiene un valor real.

Código Fuente de la Estrategia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Fair Value Gap Strategy with % SL and Fixed TP", overlay=true, initial_capital=500, default_qty_type=strategy.fixed, default_qty_value=1)

// Parameters
fvgThreshold = input.float(0.5, "FVG Threshold (%)", minval=0.1, step=0.1)

// Fixed take profit in pips
takeProfitPips = 50

// Function to convert pips to price
pipsToPriceChange(pips) =>
    syminfo.mintick * pips * 10

// Function to detect Fair Value Gap
detectFVG(dir) =>
    gap = 0.0
    if dir > 0  // Bullish FVG
        gap := low[2] - high[1]
    else  // Bearish FVG
        gap := low[1] - high[2]
    math.abs(gap) > (close * fvgThreshold / 100)

// Detect FVGs
bullishFVG = detectFVG(1)
bearishFVG = detectFVG(-1)

// Entry conditions
longCondition = bullishFVG
shortCondition = bearishFVG

// Calculate take profit level
longTakeProfit = strategy.position_avg_price + pipsToPriceChange(takeProfitPips)
shortTakeProfit = strategy.position_avg_price - pipsToPriceChange(takeProfitPips)

// Calculate stop loss amount (5% of capital)
stopLossAmount = strategy.equity * 0.01

// Execute trades
if (longCondition)
    strategy.entry("Long", strategy.long)

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

// Set exit conditions
if (strategy.position_size > 0)
    strategy.exit("Long TP", "Long", limit=longTakeProfit)
    strategy.close("Long SL", when=strategy.openprofit < -stopLossAmount)
else if (strategy.position_size < 0)
    strategy.exit("Short TP", "Short", limit=shortTakeProfit)
    strategy.close("Short SL", when=strategy.openprofit < -stopLossAmount)

// Plot signals
plotshape(longCondition, "Buy Signal", location = location.belowbar, color = color.green, style = shape.triangleup, size = size.small)
plotshape(shortCondition, "Sell Signal", location = location.abovebar, color = color.red, style = shape.triangledown, size = size.small)