
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.
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.
Os principais benefícios desta estratégia são:
A estratégia tem os seguintes riscos:
Os riscos acima mencionados podem ser otimizados e controlados através dos seguintes métodos:
A estratégia pode ser melhorada principalmente nas seguintes direções:
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.
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.
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.
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.
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.
// @_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) )