Estratégia de tendência de ruptura de preço Leapfrog, sistema de negociação quantitativa com base em níveis de preços-chave de vários períodos

HOD LOD PMH PML PDH PDL MA RSI ATR ADX
Data de criação: 2025-01-06 16:06:30 última modificação: 2025-01-06 16:06:30
cópia: 1 Cliques: 328
1
focar em
1617
Seguidores

Estratégia de tendência de ruptura de preço Leapfrog, sistema de negociação quantitativa com base em níveis de preços-chave de vários períodos

Visão geral

A estratégia é um sistema de negociação de breakout baseado em múltiplos níveis de preços-chave. Ele rastreia principalmente seis pontos-chave: máxima intradiária (HOD), mínima intradiária (LOD), máxima pré-mercado (PMH), mínima pré-mercado (PML), máxima do dia anterior (PDH) e mínima do dia anterior (PDL). Preço níveis, os sinais de negociação são gerados pelo rompimento de preços através desses níveis. A estratégia usa negociação automatizada para executar operações de compra e venda com base em cruzamentos de preços de níveis-chave.

Princípio da estratégia

A lógica central da estratégia inclui as seguintes partes principais:

  1. Cálculo dos principais níveis de preços: use a função request.security para obter dados de preços para diferentes períodos de tempo e calcular seis principais níveis de preços.
  2. Definição de condição de abertura: abra uma posição longa quando o preço romper PMH ou PDH para cima; abra uma posição curta quando o preço romper PML ou PDL para baixo.
  3. Configuração da condição de fechamento: quando uma posição longa é mantida, se o preço atingir o HOD, a posição é fechada; quando uma posição curta é mantida, se o preço atingir o LOD, a posição é fechada.
  4. Visualização gráfica: Use linhas horizontais coloridas diferentes para marcar cada nível de preço: branco para HOD, roxo para LOD, laranja para PDH, azul para PDL, verde para PMH e vermelho para PML.

Vantagens estratégicas

  1. Referência de preço multidimensional: entenda completamente as tendências do mercado monitorando os principais níveis de preço em vários períodos de tempo.
  2. A lógica do comércio inovador é clara: os sinais de negociação são gerados com base em rompimentos de preços, e as regras de negociação são claras e fáceis de entender.
  3. Alto grau de automação: o sistema calcula automaticamente vários níveis de preços e executa transações, reduzindo a intervenção humana.
  4. Forte efeito de visualização: cada nível de preço é exibido intuitivamente por meio de linhas horizontais de cores diferentes, o que é conveniente para análise e julgamento.
  5. Forte adaptabilidade: A estratégia pode ser aplicada a diferentes produtos de negociação e períodos de tempo.

Risco estratégico

  1. Risco de falso rompimento: o mercado pode sofrer um falso rompimento, resultando em um sinal falso.
  2. Dependência da volatilidade: as estratégias podem ter um desempenho ruim em ambientes de baixa volatilidade.
  3. Controle de risco insuficiente: falta de mecanismos dinâmicos de stop-loss e profit-taking.
  4. Dependência do ambiente de mercado: pode negociar frequentemente em um mercado lateralizado, onde a tendência não é óbvia.
  5. Impacto da derrapagem: você pode enfrentar uma derrapagem maior em mercados com baixa liquidez.

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

  1. Adicionar filtragem de indicadores técnicos:
  • Apresentando o indicador RSI para filtrar sobrecompra e sobrevenda
  • Usando ATR para definir stop loss dinâmico
  • Combine ADX para determinar a força da tendência
  1. Melhore a gestão de riscos:
  • Crie um mecanismo de stop loss dinâmico
  • Adicionada função trailing stop
  • Estabelecer um mecanismo de geração de lucro em lotes
  1. Confirmação do sinal de otimização:
  • Aumentar a confirmação do volume
  • Adicionada confirmação de tendência multiperíodo
  • Configurar mecanismo de confirmação de atraso de sinal

Resumir

Essa estratégia captura oportunidades de mercado monitorando e utilizando diversos níveis-chave de preços e é caracterizada por uma lógica clara e um alto grau de automação. Mas também há certos riscos que precisam ser otimizados adicionando filtragem de indicadores técnicos, melhorando mecanismos de gerenciamento de riscos, etc. A principal vantagem da estratégia está em seu sistema de referência de preços multidimensional, que permite compreender melhor as tendências de mercado, mas na aplicação real, ajustes de parâmetros direcionados são necessários de acordo com diferentes ambientes de mercado.

Código-fonte da estratégia
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradingbauhaus

//@version=6
strategy("HOD/LOD/PMH/PML/PDH/PDL Strategy by tradingbauhaus ", shorttitle="HOD/LOD Strategy", overlay=true)

// Daily high and low
dailyhigh = request.security(syminfo.tickerid, 'D', high)
dailylow = request.security(syminfo.tickerid, 'D', low)

// Previous day high and low
var float previousdayhigh = na
var float previousdaylow = na
high1 = request.security(syminfo.tickerid, 'D', high[1])
low1 = request.security(syminfo.tickerid, 'D', low[1])
high0 = request.security(syminfo.tickerid, 'D', high[0])
low0 = request.security(syminfo.tickerid, 'D', low[0])

// Yesterday high and low
if (hour == 9 and minute > 30) or hour > 10
    previousdayhigh := high1
    previousdaylow := low1
else
    previousdayhigh := high0
    previousdaylow := low0

// Premarket high and low
t = time("1440", "0000-0930") // 1440 is the number of minutes in a whole day.
is_first = na(t[1]) and not na(t) or t[1] < t
ending_hour = 9
ending_minute = 30

var float pm_high = na
var float pm_low = na

if is_first and barstate.isnew and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_high := high
    pm_low := low
else 
    pm_high := pm_high[1]
    pm_low := pm_low[1]

if high > pm_high and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_high := high
    
if low < pm_low and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_low := low

// Plotting levels
plot(dailyhigh, style=plot.style_line, title="Daily high", color=color.white, linewidth=1, trackprice=true)
plot(dailylow, style=plot.style_line, title="Daily low", color=color.purple, linewidth=1, trackprice=true)
plot(previousdayhigh, style=plot.style_line, title="Previous Day high", color=color.orange, linewidth=1, trackprice=true)
plot(previousdaylow, style=plot.style_line, title="Previous Day low", color=color.blue, linewidth=1, trackprice=true)
plot(pm_high, style=plot.style_line, title="Premarket high", color=color.green, linewidth=1, trackprice=true)
plot(pm_low, style=plot.style_line, title="Premarket low", color=color.red, linewidth=1, trackprice=true)

// Strategy logic
// Long entry: Price crosses above PMH or PDH
if (ta.crossover(close, pm_high) or ta.crossover(close, previousdayhigh)) and strategy.opentrades == 0
    strategy.entry("Long", strategy.long)

// Short entry: Price crosses below PML or PDL
if (ta.crossunder(close, pm_low) or ta.crossunder(close, previousdaylow)) and strategy.opentrades == 0
    strategy.entry("Short", strategy.short)

// Exit long: Price reaches HOD
if strategy.position_size > 0 and ta.crossover(close, dailyhigh)
    strategy.close("Long")

// Exit short: Price reaches LOD
if strategy.position_size < 0 and ta.crossunder(close, dailylow)
    strategy.close("Short")