O recurso está a ser carregado... Carregamento...

Estratégia de ruptura da diferença de valor justo de vários prazos com teste de retrocesso histórico

Autora:ChaoZhang, Data: 2025-01-17 14:45:10
Tags:FVGBOSHTFRRSL

 Multi-timeframe Fair Value Gap Breakout Strategy with Historical Backtest

Estratégia geral

Esta estratégia é um sistema de negociação abrangente que combina análise de vários prazos, Gap de Valor Justo (FVG) e Break of Structure (BOS).

Princípios de estratégia

A lógica central é construída em três pilares principais: primeiro, usa um prazo mais longo (default 1 hora ou superior) para identificar a ruptura da estrutura (BOS), que fornece a estrutura fundamental para a direção da negociação. Segundo, procura por lacunas de valor justo (FVG) em prazos mais baixos, indicando possíveis desequilíbrios de oferta e demanda nessas áreas. Finalmente, combina essas condições com a posição atual do preço para desencadear sinais de negociação quando o preço está em locais favoráveis. O sistema gerencia o risco por meio de rácios de risco-recompensa e fatores de stop-loss.

Vantagens da estratégia

  1. Análise multidimensional: combina análise de vários prazos para melhorar a confiabilidade do sinal.
  2. Gerenciamento abrangente do risco: configurações integradas de risco-recompensação e mecanismos de controlo de stop-loss garantem uma gestão clara do risco para cada operação.
  3. Feedback visual: A estratégia fornece um feedback visual claro, incluindo a exibição de caixas FVG e potenciais marcadores de oportunidades comerciais.
  4. Alta adaptabilidade: através do ajuste de parâmetros, a estratégia pode adaptar-se a diferentes condições de mercado e estilos de negociação.

Riscos estratégicos

  1. Risco de Falsa Breakout: os mercados podem exibir falsas breakouts que levam a sinais de negociação incorretos.
  2. Atraso do sinal: devido à utilização de dados de prazo mais longo, pode haver atraso do sinal. Recomenda-se combinar com outros indicadores técnicos para confirmação.
  3. Risco de volatilidade do mercado: durante períodos de alta volatilidade, a formação de FVG pode não ser estável. Pode ser abordada ajustando o comprimento de observação do FVG.

Orientações para a otimização da estratégia

  1. Filtragem de sinal: adicionar um mecanismo de confirmação de volume para confirmar sinais apenas quando suportado por volume.
  2. Parâmetros dinâmicos: ajustar dinamicamente a relação risco-recompensa e o fator stop-loss com base na volatilidade do mercado.
  3. Filtragem de tendências: adicionar indicadores de identificação de tendências para tomar apenas posições na direção da tendência.
  4. Filtragem por tempo: adicionar filtros de sessão de negociação para evitar a negociação durante períodos de mercado desfavoráveis.

Resumo

Esta estratégia constrói um sistema de negociação completo através do uso abrangente de análise de vários prazos, quebras na estrutura de preços e lacunas no valor justo. Seus pontos fortes estão em sua abordagem de análise multidimensional e mecanismos abrangentes de gerenciamento de riscos, mas os comerciantes ainda precisam otimizar parâmetros e controlar riscos de acordo com as condições reais do 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

Mais.