En la carga de los recursos... Cargando...

Estrategia de ruptura de la brecha de valor razonable de varios plazos con retroceso histórico

El autor:¿ Qué pasa?, fecha: 2025-01-17 14:45:10
Las etiquetas:FVGEl BOSEl HTFRRSL

 Multi-timeframe Fair Value Gap Breakout Strategy with Historical Backtest

Resumen de la estrategia

Esta estrategia es un sistema de negociación integral que combina análisis de marcos de tiempo múltiples, brecha de valor justo (FVG) y ruptura de estructura (BOS). Identifica entradas comerciales potenciales mediante la detección de rupturas de estructura en marcos de tiempo más altos mientras busca oportunidades de brecha de valor justo en marcos de tiempo más bajos. La estrategia también incorpora un sistema de gestión de riesgos con configuraciones automatizadas de stop-loss y take-profit.

Principios de estrategia

La lógica básica se basa en tres pilares principales: primero, utiliza un marco de tiempo más alto (por defecto 1 hora o más) para identificar la ruptura de la estructura (BOS), que proporciona el marco fundamental para la dirección de la negociación. Segundo, busca las brechas de valor justo (FVG) en marcos de tiempo más bajos, lo que indica posibles desequilibrios de la oferta y la demanda en esas áreas. Finalmente, combina estas condiciones con la posición actual del precio para desencadenar señales de negociación cuando el precio está en ubicaciones favorables.

Ventajas estratégicas

  1. Análisis multidimensional: Combina análisis de marcos de tiempo múltiples para mejorar la confiabilidad de la señal.
  2. Gestión integral del riesgo: los ajustes integrados de riesgo-recompensación y los mecanismos de control de stop-loss garantizan una gestión clara del riesgo para cada operación.
  3. Retroalimentación visual: La estrategia proporciona una retroalimentación visual clara, incluida la pantalla de la caja FVG y los posibles marcadores de oportunidades comerciales.
  4. Alta adaptabilidad: a través del ajuste de parámetros, la estrategia puede adaptarse a diferentes condiciones del mercado y estilos de negociación.

Riesgos estratégicos

  1. Riesgo de ruptura falsa: los mercados pueden presentar rupturas falsas que conducen a señales comerciales incorrectas.
  2. Retraso de la señal: debido a la utilización de datos de marcos de tiempo más largos, puede haber retraso de la señal. Se recomienda combinar con otros indicadores técnicos para la confirmación.
  3. Riesgo de volatilidad del mercado: durante los períodos de alta volatilidad, la formación de FVG puede no ser estable.

Direcciones para la optimización de la estrategia

  1. Filtración de señales: añadir un mecanismo de confirmación de volumen para confirmar las señales solo cuando se admita por volumen.
  2. Parámetros dinámicos: ajustar dinámicamente la relación riesgo-beneficio y el factor stop-loss en función de la volatilidad del mercado.
  3. Filtración de tendencias: añadir indicadores de identificación de tendencias para tomar sólo posiciones en dirección a la tendencia.
  4. Filtración por tiempo: añadir filtros de sesión de negociación para evitar la negociación durante los períodos de mercado desfavorables.

Resumen de las actividades

Esta estrategia construye un sistema de negociación completo mediante el uso integral del análisis de marcos de tiempo múltiples, las rupturas de la estructura de precios y las brechas en el valor razonable. Sus fortalezas se encuentran en su enfoque de análisis multidimensional y mecanismos integrales de gestión de riesgos, pero los operadores aún necesitan optimizar los parámetros y controlar los riesgos de acuerdo con las condiciones reales del mercado.


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


Relacionados

Más.