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

Sistema de negociação de tendências de ruptura de níveis de preços de vários períodos baseado em níveis de preços fundamentais

Autora:ChaoZhang, Data: 2025-01-06 16:06:30
Tags:HODLODPMHPMLPDHPDLMARSIATRADX

img

Resumo

Esta estratégia é um sistema de negociação de breakout baseado em vários níveis de preços-chave. Ele rastreia principalmente seis níveis de preços críticos: High of Day (HOD), Low of Day (LOD), Premarket High (PMH), Premarket Low (PML), Previous Day High (PDH) e Previous Day Low (PDL).

Princípios de estratégia

A lógica do núcleo inclui vários componentes-chave:

  1. Cálculo do nível de preços chave: utiliza a função request.security para obter dados de preços de diferentes períodos de tempo para calcular seis níveis de preços chave.
  2. Condições de entrada: abre posições longas quando o preço ultrapassa o PMH ou o PDH; abre posições curtas quando o preço ultrapassa o PML ou o PDL.
  3. Condições de saída: Fecha posições longas quando o preço atinge o HOD; fecha posições curtas quando o preço atinge o LOD.
  4. Representação visual: Marca os níveis de preços com linhas horizontais de cores diferentes - branco para HOD, roxo para LOD, laranja para PDH, azul para PDL, verde para PMH e vermelho para PML.

Vantagens da estratégia

  1. Referência de preços multidimensional: monitora os níveis principais de preços em vários períodos de tempo para uma análise abrangente do mercado.
  2. Lógica de ruptura clara: gera sinais de negociação baseados em rupturas de preço com regras de negociação explícitas.
  3. Alta automação: Calcula automaticamente os níveis de preços e executa transações, reduzindo a intervenção manual.
  4. Visualização forte: exibe níveis de preços através de linhas horizontais de diferentes cores para análise intuitiva.
  5. Alta adaptabilidade: aplicável a vários instrumentos de negociação e períodos de tempo.

Riscos estratégicos

  1. Risco de falha: o mercado pode gerar falhas que levem a sinais incorretos.
  2. Dependência da volatilidade: a estratégia pode ter um desempenho inferior em ambientes de baixa volatilidade.
  3. Controle de risco insuficiente: falta de mecanismos dinâmicos de stop-loss e de captação de lucros.
  4. Dependência do ambiente de mercado: Pode gerar trocas frequentes em mercados variados.
  5. Impacto do deslizamento: Pode haver deslizamentos significativos em mercados menos líquidos.

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

  1. Adicionar filtros de indicadores técnicos:
  • Incorporar RSI para filtragem de sobrecompra/supervenda
  • Utilizar o ATR para colocação dinâmica de stop-loss
  • Integrar o ADX para confirmação da força da tendência
  1. Melhorar a gestão dos riscos:
  • Implementar mecanismos dinâmicos de stop-loss
  • Adicionar função de trailing stop
  • Estabelecer um sistema de obtenção de lucros em escala
  1. Optimize a confirmação do sinal:
  • Adicionar confirmação de volume
  • Incluir confirmação de tendência de vários prazos
  • Configurar o mecanismo de confirmação do atraso do sinal

Resumo

Esta estratégia capta oportunidades de mercado através do monitoramento e utilização de vários níveis de preços-chave, com lógica clara e alta automação. No entanto, também carrega certos riscos que precisam ser abordados através de filtros de indicadores técnicos e mecanismos de gestão de risco aprimorados. A principal vantagem da estratégia reside em seu sistema de referência de preços multidimensional, permitindo uma melhor captura da tendência do mercado, mas a aplicação prática requer ajustes de parâmetros específicos com base em diferentes condições de mercado.


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

Relacionados

Mais.