Estratégia de rompimento de lacuna de valor justo em vários períodos com base em backtesting histórico

FVG BOS HTF RR SL
Data de criação: 2025-01-17 14:45:10 última modificação: 2025-01-17 14:45:10
cópia: 0 Cliques: 454
1
focar em
1617
Seguidores

Estratégia de rompimento de lacuna de valor justo em vários períodos com base em backtesting histórico

Visão geral da estratégia

A estratégia é um sistema de negociação abrangente que combina análise de múltiplos prazos, lacunas de valor justo (FVG) e quebra de estrutura (BOS). Ele identifica entradas de negociação potenciais identificando rompimentos na estrutura de preços em prazos mais altos, enquanto procura por lacunas de valor justo que se formam em prazos mais baixos. A estratégia também integra um sistema de gerenciamento de risco, incluindo definição automática de metas de stop-loss e lucro.

Princípio da estratégia

A lógica central da estratégia é construída em três pilares principais: primeiro, usar períodos de tempo maiores (padrão de 1 hora ou mais) para identificar rompimentos na estrutura de preços (BOS), o que fornece a estrutura básica para a direção da negociação. Em segundo lugar, procure por um Fair Value Gap (FVG) em prazos menores. A formação de um FVG indica que há um potencial desequilíbrio de oferta e demanda no mercado nessa área. Por fim, essas duas condições são combinadas com a posição atual do preço para acionar um sinal de negociação quando o preço estiver em uma posição favorável. O sistema gerencia o risco de cada negociação por meio da relação risco-recompensa e do fator stop-loss.

Vantagens estratégicas

  1. Análise multidimensional: ao combinar análises de vários períodos de tempo, a confiabilidade dos sinais de negociação é melhorada.
  2. Gerenciamento de risco perfeito: a configuração integrada da relação risco-retorno e o mecanismo de controle de stop-loss garantem que cada transação tenha um controle de risco claro.
  3. Feedback visual: a estratégia fornece feedback visual claro, incluindo a exibição da caixa FVG e a marcação de potenciais oportunidades de negociação.
  4. Forte adaptabilidade: por meio do ajuste de parâmetros, a estratégia pode se adaptar a diferentes condições de mercado e estilos de negociação.

Risco estratégico

  1. Risco de falso rompimento: o mercado pode sofrer um falso rompimento, resultando em falsos sinais de negociação. A solução é adicionar um mecanismo de confirmação de sinal.
  2. Atraso de sinal: devido ao uso de dados de período maior, pode haver um atraso de sinal. Recomenda-se confirmar em combinação com outros indicadores técnicos.
  3. Risco de volatilidade do mercado: durante períodos de alta volatilidade, a formação do FVG pode não ser estável o suficiente. Isso pode ser acomodado ajustando o comprimento de observação do FVG.

Direção de otimização da estratégia

  1. Filtragem de sinal: Um mecanismo de confirmação de volume pode ser adicionado para confirmar o sinal somente se o volume o suportar.
  2. Parâmetros dinâmicos: A relação risco-retorno e o fator stop-loss podem ser ajustados dinamicamente de acordo com a volatilidade do mercado.
  3. Filtragem de tendências: adicione indicadores de julgamento de tendências e abra posições somente na direção da tendência.
  4. Filtro de tempo: adicione filtros de período de negociação para evitar negociações durante horários desfavoráveis ​​de mercado.

Resumir

A estratégia cria um sistema de negociação completo combinando análise de vários períodos de tempo, avanços na estrutura de preços e lacunas de valor justo. Suas vantagens estão em seus métodos de análise multidimensionais e mecanismo perfeito de gerenciamento de risco, mas os traders ainda precisam realizar a otimização de parâmetros e o controle de risco apropriados com base nas condições reais do mercado. A otimização subsequente pode começar pela confirmação do sinal, ajuste dinâmico de parâmetros e filtragem do ambiente de mercado para melhorar ainda mais a estabilidade e a confiabilidade da estratégia.

Código-fonte da estratégia
/*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)