Estratégia avançada de oscilador espacial de oportunidade: um sistema de negociação quantitativa baseado em lacuna de valor justo

FVG ATR SMA VOL BFVG SFVG
Data de criação: 2025-02-21 10:43:26 última modificação: 2025-02-24 14:55:25
cópia: 1 Cliques: 362
2
focar em
319
Seguidores

Estratégia avançada de oscilador espacial de oportunidade: um sistema de negociação quantitativa baseado em lacuna de valor justo Estratégia avançada de oscilador espacial de oportunidade: um sistema de negociação quantitativa baseado em lacuna de valor justo

Visão geral

A estratégia é um sistema de negociação inovador baseado no Fair Value Gap (FVG), que captura oportunidades de negociação potenciais através da identificação de diferenças de preço e de volumes de transação anormais no mercado. A estratégia combina mecanismos de contabilidade dinâmica e processamento estandarizado, que não só são capazes de identificar com precisão os sinais de compra e venda, mas também ajudam os comerciantes a entender melhor a estrutura do mercado por meio de exibições visuais.

Princípio da estratégia

O núcleo da estratégia é identificar potenciais oportunidades de negociação monitorando brechas de preços entre linhas K contínuas.

  1. A condição para a formação de um BFVG é que o preço mínimo da linha K atual seja maior do que o preço máximo antes das duas linhas K
  2. A condição para a formação do FVG (SFVG) é que o valor máximo da linha K atual seja menor do que o valor mínimo anterior às duas linhas K
  3. A estratégia introduziu um mecanismo de verificação baseado no volume de transações e no tamanho da brecha, e apenas os FVG que preenchessem os requisitos de verificação desencadeariam o sinal de transação
  4. Utilize uma janela de contagem dinâmica de 50 ciclos para acumular o número de FVG de sobrecarga
  5. Transformar a largura do orifício em um indicador mais intuitivo por meio do tratamento de unificação

Vantagens estratégicas

  1. O sistema possui um mecanismo de verificação de sinal perfeito para melhorar a qualidade do sinal por meio da dupla confirmação do volume de transação e da amplitude do buraco
  2. A janela de contagem dinâmica é eficaz para capturar as mudanças nas tendências do mercado
  3. O tratamento de homogeneização permite a comparabilidade de sinais de diferentes períodos
  4. A estratégia possui uma função de gerenciamento automático de posições, que elimina automaticamente as posições reversíveis antes de abrir uma nova posição
  5. Excelentes efeitos visuais para ajudar os comerciantes a entender o estado do mercado

Risco estratégico

  1. Sinais de FVG podem gerar falsos sinais em mercados de alta volatilidade
  2. Os parâmetros de verificação fixos podem não ser aplicados em todos os cenários de mercado
  3. Não existem mecanismos de parada e de suspensão, o que pode levar a uma maior retirada.
  4. As transações frequentes podem ter custos mais elevados Recomenda-se a gestão destes riscos através da definição de posições de parada apropriadas e da introdução de filtros ambientais de mercado.

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

  1. Introdução de mecanismos de ajuste de parâmetros adaptativos para que as estratégias se adaptem melhor a diferentes contextos de mercado
  2. Aumentar o filtro de tendência e negociar apenas em sentido único em uma forte tendência
  3. Projetar sistemas de gestão de estoque mais complexos, incluindo construção de estoque em lotes e stop loss dinâmico
  4. Considerações sobre custos de transação e otimização da frequência de transação
  5. Combinação com outros indicadores técnicos para melhorar a confiabilidade do sinal

Resumir

Trata-se de uma estratégia de negociação inovadora baseada na estrutura de preços, que captura oportunidades de mercado através da identificação e verificação inteligente de brechas de valor justo. A estratégia é concebida com clareza de conceito, a forma de implementação é profissional e possui boa escalabilidade.

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