
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.
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.
Las ventajas de esta estrategia se manifiestan principalmente en:
El principal riesgo de esta estrategia es:
Los riesgos mencionados pueden ser optimizados y controlados mediante:
La estrategia se puede optimizar principalmente en las siguientes direcciones:
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.
Aumentar el stop. Establecer un método razonable de stop móvil, stop de reducción, etc., para controlar eficazmente las pérdidas individuales.
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.
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.
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.
// @_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) )