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

Estratégia de negociação de média móvel dinâmica de três períodos de Larry Williams

Autora:ChaoZhang, Data: 2024-05-11 17:35:22
Tags:EMA

img

Resumo

Este artigo apresenta uma estratégia de negociação baseada na média móvel dinâmica de três períodos de Larry Williams. A estratégia utiliza duas médias móveis exponenciais (EMA) para capturar as tendências de preços e gera sinais de negociação quando o preço de fechamento de três velas consecutivas quebra as EMAs. Os parâmetros da estratégia são ajustáveis e adequados para diferentes mercados e prazos.

Princípios de estratégia

  1. Calcular duas EMA: EMA de preço elevado e EMA de preço baixo dos preços de fechamento, com períodos ajustáveis.
  2. Determine se a hora atual está dentro do intervalo de negociação definido.
  3. Determine se as três últimas velas fecharam consecutivamente acima (bullish) ou abaixo (bearish) das EMAs.
  4. Se a condição 3 for cumprida e a posição for 0, abrir uma posição longa; se o oposto da condição 3 for cumprido e a posição longa for mantida, fechar a posição.
  5. Caso mantenha uma posição, fechar a posição no final de cada dia de negociação.

Vantagens da estratégia

  1. Parâmetros flexíveis: os períodos de EMA, os intervalos de tempo de negociação e outros parâmetros são ajustáveis para se adaptarem aos diferentes mercados.
  2. Rastreamento de tendências: Utiliza EMAs e a direção de velas consecutivas para identificar tendências, o que ajuda a capturar mercados de tendências.
  3. Stop-loss oportuno: fecha imediatamente a posição quando o preço atravessa as EMA contra a tendência, controlando os drawdowns.
  4. Fechamento de posições intradiárias: Fecha posições no final de cada dia de negociação, evitando riscos overnight.

Riscos estratégicos

  1. Risco de mercado turbulento: A troca frequente em mercados sem tendência pode levar a perdas.
  2. Risco de parâmetros: o desempenho varia muito com parâmetros diferentes em mercados diferentes, exigindo otimização direcionada.
  3. Risco de lacuna: a abertura de lacunas pode causar deslizamento no preço de entrada da estratégia, aumentando o risco.

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

  1. Filtros de tendência: Incorpore indicadores como ATR e RSI para ajudar a avaliar a força da tendência e evitar mercados agitados.
  2. Optimização dinâmica dos parâmetros: ajustar dinamicamente os parâmetros com base nas características recentes do mercado para melhorar a adaptabilidade.
  3. Gerenciamento de posições: ajustar posições com base na força da tendência e no capital, controlando os riscos.
  4. Incorporar stop-loss e profit-taking: fixar níveis razoáveis de stop-loss e metas de lucro para reduzir o risco de transação única.

Resumo

A estratégia de negociação de média móvel dinâmica de três períodos de Larry Williams é uma estratégia de seguimento de tendências baseada em EMAs duplas e na direção de velas consecutivas. Com otimização de parâmetros, ela pode se adaptar a diferentes mercados. No entanto, a própria estratégia é relativamente simples, tem um desempenho fraco em mercados agitados e não possui medidas de controle de risco, exigindo mais otimização e melhoria. Considerando os prós e contras da estratégia, é mais adequada para uso em mercados com tendências claras e deve ser combinada com medidas de gerenciamento de posição e controle de risco para melhorar o desempenho e a estabilidade gerais.


/*backtest
start: 2023-05-05 00:00:00
end: 2024-05-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Larry Williams 3 Periodos Editável de MarcosJr", overlay=true, process_orders_on_close=true)

// Parametrização do período do EMA
emaPeriodHighs = input.int(title="Highs Period", defval=3, minval=1, maxval=9999)
emaPeriodLows = input.int(title="Lows Period", defval=3, minval=1, maxval=9999)

// Parametrização da data de início e fim do período a ser coletado
startYear = input.int(title="Start Year", defval=2020)
startMonth = input.int(title="Start Month", defval=1, minval=1, maxval=12)
startDay = input.int(title="Start Day", defval=1, minval=1, maxval=31)

endYear = input.int(title="End Year", defval=2020)
endMonth = input.int(title="End Month", defval=12, minval=1, maxval=12)
endDay = input.int(title="End Day", defval=31, minval=1, maxval=31)

// Convertendo data de início e fim para timestamp
startDate = timestamp(startYear, startMonth, startDay, 00, 00)
endDate = timestamp(endYear, endMonth, endDay, 23, 59)

// EMA
emaH = ta.ema(high, emaPeriodHighs)
emaL = ta.ema(low, emaPeriodLows)

// PLOT:
// Desenha as linhas EMA no gráfico
plot(emaH, color=color.green, linewidth=2)
plot(emaL, color=color.red, linewidth=2)

// Condições
inDateRange = true

// Verifica se houve mais de três candles consecutivos do mesmo sentido
checkThreeConsecutiveCandles = (close[0] > close[1] and close[1] > close[2] and close[2] > close[3]) or (close[0] < close[1] and close[1] < close[2] and close[2] < close[3])

if(close < emaL and inDateRange and checkThreeConsecutiveCandles and barstate.isconfirmed)
    strategy.entry("Long", strategy.long, comment="Long", when=strategy.position_size == 0)
if(close > emaH and inDateRange and checkThreeConsecutiveCandles and barstate.isconfirmed)
    strategy.close("Long", comment="Close Long")

// Fechar a operação no fechamento do pregão
if(strategy.position_size > 0 and na(time_close[0]))
    strategy.close("Long", comment="Close Long")


Relacionados

Mais.