Estratégia de Larry Williams para cruzar médias móveis


Data de criação: 2023-12-26 15:03:16 última modificação: 2023-12-26 15:03:16
cópia: 1 Cliques: 1523
1
focar em
1623
Seguidores

Estratégia de Larry Williams para cruzar médias móveis

Visão geral

A estratégia é uma simples e clássica estratégia de travessia de média móvel, criada pelo renomado trader Larry Williams. A estratégia usa a média móvel simples de 9 dias como linha rápida e a média móvel de 21 dias como linha lenta.

Princípio da estratégia

A estratégia baseia-se em um cruzamento de ouro e um cruzamento de morte na média móvel para determinar as oportunidades de fazer mais e de fazer menos. Quando a linha rápida cruza a linha lenta de baixo para o ouro, indicando que o mercado está em alta, faz mais; quando a linha rápida cruza a linha curta de cima para baixo para a morte, indicando que o mercado está em baixa.

A estratégia também introduziu a linha de 21 dias para julgar a tendência maior, a fim de evitar que uma falsa ruptura cause perdas virtuais. A ação de negociação só é executada quando o preço atravessa a linha de 21 dias ao mesmo tempo que a linha rápida. Isso pode filtrar efetivamente muitas falsas rupturas.

Concretamente, o sinal de fazer mais é: a linha rápida sobe e quebra o ponto alto de ontem, enquanto a linha rápida quebra a linha de 21 dias, para que o pluriverso seja estabelecido; o sinal de fazer vazio é: a linha rápida desce e quebra o ponto baixo de ontem, enquanto a linha rápida quebra a linha de 21 dias, para que o vazio seja estabelecido.

Análise de vantagens

Os principais benefícios desta estratégia são:

  1. A estratégia é simples, fácil de entender e de implementar.
  2. A tecnologia da média móvel está madura e é amplamente utilizada.
  3. Introdução de filtros de falhas de segurança efetivos na linha de 21 dias.
  4. A entrada foi feita com o ponto máximo de ontem, para evitar que o jogador fosse apanhado.
  5. Os parâmetros da estratégia são robustos e não são facilmente ajustados.

Análise de Riscos

A estratégia tem os seguintes riscos:

  1. Quando as coisas estão muito flutuantes, a média móvel gera atraso e pode perder o melhor ponto de entrada.
  2. A situação é muito complicada, com pequenas perdas frequentes em situações de incerteza.
  3. A falta de capacidade para responder eficazmente a mudanças significativas na situação provocadas por um evento inesperado.

Os riscos acima mencionados podem ser otimizados e controlados através dos seguintes métodos:

  1. Introdução de indicadores auxiliares do MACD para obter mais sinais em tempo real.
  2. Aumentar os parâmetros de média móvel e reduzir a frequência de negociação.
  3. Aumentar as estratégias de stop loss e controlar as perdas individuais.

Direção de otimização

A estratégia pode ser melhorada principalmente nas seguintes direções:

  1. Optimização de parâmetros. A combinação de parâmetros do ciclo MA pode ser testada de forma mais sistemática para encontrar parâmetros mais favoráveis.

  2. Aumentar o stop loss. Definir métodos razoáveis de stop loss móvel, stop loss de escala, etc., para controlar efetivamente os perdas individuais.

  3. Combinação com outros indicadores. Introdução de sinais de outros indicadores, como MACD, ATR, KD, para obter confirmação de mais dimensões e aumentar a estabilidade da estratégia.

  4. Otimização do mecanismo de saída. Estudo de diferentes tipos de estratégias de saída, como saída de sinal de reversão, saída de paragem móvel e outros métodos.

Resumir

A estratégia de travessia da média móvel é, em geral, uma estratégia de acompanhamento de tendências muito típica e prática. Tem vantagens em ser fácil de entender e implementar, mas também há espaço para melhorias. A estratégia pode ser continuamente melhorada, tornando-se um sistema de negociação mais estável e prático, por meio de métodos como otimização de parâmetros, otimização de parada e combinação de vários indicadores.

Código-fonte da estratégia
// @_benac
//@version=5
strategy('Larry', overlay=true , initial_capital=1000 )


////////////////////////////////////////////////////////
//                                                    //
//                                                    //
//                 Codigo Operacional                 //
//                                                    //
//                                                    //
////////////////////////////////////////////////////////

// Usage for Stocks , or Criptos with value bigger then 1, cuz of 0.01 ´pip.
// Daily timeframe
//Observation Point
start     = timestamp(2020, 00, 00, 00, 00)         // backtest start window
finish    = timestamp(2022, 01, 07, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"  

if time < start 
    strategy.close_all("Closing All")

// Take infos from inputs. 
inp_mmshort = input.int(defval = 9, title = "Media Curta"  )
inp_mminter = input.int(defval = 21, title = "Media Curta"  )

// Risk Manager, here define max and min 
inp_max = input.int(defval = 15, title = "Percentual Ganho"  )
inp_min = input.int(defval = 5, title = "Percental  Perda"  )

// Converting the input to % 
pmax = (inp_max / 100 )
pmin =  (inp_min / 100)

// Infos From Moving Average
mm_short = ta.sma(close , inp_mmshort)
mm_inter = ta.ema(close , inp_mminter)


// Trend Logic
//Long Condition 

//Setup do Larry Willians Bem Simples , media virou para cima e rompeu a maxima de referencia, compra. 
tendencia_alta = mm_short[2] > mm_short[1] and mm_short > mm_short[1] and close > high[1] and close > mm_short and mm_short > mm_inter
tendencia_baixa = mm_short[2] < mm_short[1] and mm_short < mm_short[1] and close > low[1] and close < mm_short and mm_short < mm_inter

// Creating the entry
if tendencia_alta 
    strategy.entry("Compra" , strategy.long , stop = low - 0.01  )
    stop_inst = low - 0.01 
if tendencia_baixa 
    strategy.entry("Venda" , strategy.short , stop= high + 0.01  )
    stop_inst = high + 0.01


// TrailingStop Creation

// Sell Position
if strategy.position_size < 0 
    gain_p = strategy.opentrades.entry_price(0) - (strategy.opentrades.entry_price(0) * pmax) 
    stop_p = strategy.opentrades.entry_price(0) + (strategy.opentrades.entry_price(0) * pmin) 
    // Managing the position
    if close < gain_p 
        strategy.close_all(comment = " 1 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
    if close > stop_p 
        strategy.close_all(comment = " 2 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
    
    if  high > mm_short[1]
        strategy.close_all(comment = " 3 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
      

// Buy Position    
if strategy.position_size > 0
    gain_p = strategy.opentrades.entry_price(0) + (strategy.opentrades.entry_price(0) * pmax) 
    stop_p = strategy.opentrades.entry_price(0) - (strategy.opentrades.entry_price(0) * pmin) 
    // Managing the position
    if close > gain_p 
        strategy.close_all(comment = " 1- Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
    if close < stop_p 
        strategy.close_all(comment = " 2 -Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
    if low < mm_short[1]
        strategy.close_all(comment = " 3 -Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )