Estrategia de Larry Williams para cruzar medias móviles


Fecha de creación: 2023-12-26 15:03:16 Última modificación: 2023-12-26 15:03:16
Copiar: 1 Número de Visitas: 1523
1
Seguir
1623
Seguidores

Estrategia de Larry Williams para cruzar medias móviles

Descripción general

La estrategia es una sencilla y clásica estrategia de cruce de promedios móviles, creada por el famoso trader Larry Williams. La estrategia usa el promedio móvil simple del día 9 como línea rápida y el promedio móvil del día 21 como línea lenta.

Principio de estrategia

La estrategia se basa en el cruce de oro y el cruce de la muerte en el promedio móvil para determinar las oportunidades de hacer más y de hacer menos. Cuando la línea rápida cruza por el oro cuando cruza la línea lenta desde abajo, indica que el mercado se vuelve alcista, y hace más; cuando la línea rápida cruza por la muerte cuando cruza por la línea larga desde arriba hasta abajo, indica que el mercado se vuelve bajista, y hace más.

Para evitar que las falsas rupturas causen pérdidas virtuales, la estrategia también introduce la línea de 21 días para juzgar la tendencia general. La acción de negociación solo se toma cuando el precio rompe la línea de 21 días al mismo tiempo que la línea rápida. Esto puede filtrar eficazmente muchas falsas rupturas.

Concretamente, la señal de hacer más es: la línea rápida se eleva sobre el punto más alto de ayer, mientras que la línea rápida se eleva sobre la línea de 21 días, para establecer el punto más alto; la señal de hacer vacío es: la línea rápida desciende sobre el punto más bajo de ayer, mientras que la línea rápida se eleva sobre la línea de 21 días, para establecer el punto vacío.

Análisis de las ventajas

Las ventajas de esta estrategia se manifiestan principalmente en:

  1. La estrategia es simple, fácil de entender y de implementar.
  2. La tecnología de las medias móviles está madura y se usa ampliamente.
  3. Introducción de la línea de 21 días para filtrar efectivamente las brechas falsas.
  4. El punto máximo de entrada de ayer fue utilizado para evitar que los jugadores fueran suspendidos.
  5. Los parámetros de la estrategia son robustos y no se ajustan demasiado fácilmente.

Análisis de riesgos

El principal riesgo de esta estrategia es:

  1. Cuando las cosas fluctúan fuertemente, las medias móviles se quedan atrás y pueden perder el mejor punto de entrada.
  2. En el caso de las operaciones en paralelo, las pequeñas pérdidas pueden ser frecuentes.
  3. La incapacidad para responder eficazmente a los cambios significativos en la situación provocados por un evento inesperado.

Los riesgos mencionados pueden ser optimizados y controlados mediante:

  1. Introducir el indicador MACD para obtener más señales en tiempo real.
  2. Aumentar el promedio móvil de los parámetros de ciclo y reducir la frecuencia de las transacciones.
  3. Aumentar las estrategias de stop loss y controlar las pérdidas individuales.

Dirección de optimización

La estrategia se puede optimizar principalmente en las siguientes direcciones:

  1. Optimización de parámetros. Se puede probar la combinación de parámetros del ciclo MA con un método más sistemático para encontrar un parámetro más óptimo.

  2. Aumentar el stop. Establecer un método razonable de stop móvil, stop de reducción, etc., para controlar eficazmente las pérdidas individuales.

  3. En combinación con otros indicadores. Introducción de señales de otros indicadores como MACD, ATR, KD, para obtener una confirmación de más dimensiones y mejorar la estabilidad de la estrategia.

  4. Optimización de los mecanismos de salida. Estudio de los diferentes tipos de estrategias de salida, como la salida de la señal de reversión, la salida de la parada móvil, etc.

Resumir

La estrategia de cruzar la media móvil es una estrategia de seguimiento de tendencias muy típica y práctica en general. Tiene ventajas de ser fácil de entender y implementar, pero también hay espacio para mejorar. La estrategia se puede mejorar continuamente para que sea un sistema de negociación más estable y práctico a través de métodos como la optimización de parámetros, la optimización de stop loss y la combinación de múltiples indicadores.

Código Fuente de la Estrategia
// @_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)  )