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

EMA
Data de criação: 2024-05-11 17:35:22 última modificação: 2024-05-11 17:35:22
cópia: 6 Cliques: 1109
1
focar em
1617
Seguidores

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

Visão geral

Este artigo apresenta uma estratégia de negociação baseada na média dinâmica de três períodos de Larry Williams. A estratégia utiliza duas médias móveis de índices (EMA) para capturar a tendência de preços, gerando um sinal de negociação quando três linhas K consecutivas de fechamento de preços quebram a EMA. Os parâmetros da estratégia são ajustáveis para diferentes mercados e períodos.

Princípio da estratégia

  1. Calcule dois EMAs: o EMA de alta e o EMA de baixa no preço de fechamento, com um ciclo ajustável.
  2. Para determinar se o tempo atual está dentro do intervalo de negociação definido.
  3. Determine se as três linhas K mais recentes estão em uma sequência de fechamentos acima do EMA (acerto) ou abaixo dele (abaixo).
  4. Se o 3 for formado e a posição for zero, abriremos mais posições; se o contrário acontecer com o 3 e ele for formado e manter mais posições, então a posição será liquidada.
  5. O que significa que uma posição está em equilíbrio no final do dia?

Vantagens estratégicas

  1. Parâmetros flexíveis: EMA ciclo, intervalo de tempo de negociação e outros parâmetros podem ser ajustados para adaptar-se a diferentes mercados.
  2. Seguimento de tendências: Use EMAs e linhas K contínuas para determinar a direção das tendências, o que é útil para capturar a tendência.
  3. Stop loss em tempo: liquidação imediata quando a resistência ultrapassa a EMA, controle de retirada.
  4. A posição de equilíbrio no dia: equilibre-se no final do dia, evitando o risco do dia seguinte.

Risco estratégico

  1. Risco de mercado de turbulência: quando a tendência não é clara, a frequência de negociações pode levar a perdas.
  2. Risco de parâmetros: Diferentes parâmetros apresentam grandes diferenças de desempenho em diferentes mercados, necessitando de otimização específica.
  3. Risco de abertura de brecha: abertura de brecha pode levar à estratégia de abertura de posição com preço de diferença, aumentando o risco.

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

  1. Filtragem de tendências: Adicione indicadores como o ATR, RSI e outros para auxiliar na determinação da intensidade da tendência, evitando mercados de turbulência.
  2. Optimização de parâmetros dinâmicos: Ajuste os parâmetros de acordo com a dinâmica recente das características do mercado, aumentando a adaptabilidade.
  3. Gerenciamento de posições: ajustar posições de acordo com a força e fraqueza da tendência e a situação financeira, controlar o risco.
  4. Adicionar um Stop Loss: definir um Stop Loss razoável e um Stop Loss Target para reduzir o risco de uma única transação.

Resumir

A estratégia de negociação de equilíbrio dinâmico de três períodos de Larry Williams é uma estratégia de acompanhamento de tendências baseada em duplas EMAs e na direção de uma linha K contínua, que pode ser adaptada a diferentes mercados por meio de otimização de parâmetros. No entanto, a estratégia em si é relativamente simples, tem um fraco desempenho em mercados de turbulência e falta de medidas de controle de vento, e precisa de mais otimização e melhorias.

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