Estratégia do Alligador de Williams

Autora:ChaoZhang, Data: 2023-11-13 10:58:22
Tags:

img

Resumo

Williams Alligator Strategy é uma estratégia de seguimento de tendência que usa três linhas médias móveis de diferentes períodos para formar macas de alligador para determinar a direção da tendência. Quando a linha rápida está acima da linha média e a linha média está acima da linha lenta, uma boca de alligador de tendência ascendente é formada para ir longo. Quando a linha rápida está abaixo da linha média e a linha média está abaixo da linha lenta, uma boca de alligador de tendência descendente é formada para ir curta. Foi inventada por Bill Williams e combina a capacidade de julgamento de tendências das médias móveis para capturar efetivamente as tendências do mercado.

Como funciona

A estratégia utiliza três SMAs de diferentes comprimentos de período - linha rápida sma1, linha média sma2 e linha lenta sma3, onde sma1 tem o período mais curto e sma3 tem o mais longo.

Quando o sma1 cruza acima do sma2 e o sma2 cruza acima do sma3, isso indica que o mercado está em uma tendência ascendente e forma uma boca de jacaré ascendente.

Por outro lado, quando o sma1 cruza abaixo do sma2 e o sma2 cruza abaixo do sma3, indica que o mercado está numa tendência descendente e forma uma boca de jacaré descendente.

A condição de saída é quando as três linhas se realinham, com a linha rápida abaixo da linha média ou a linha média abaixo da linha lenta.

A estratégia também desenha cores de fundo para identificar a direção da tendência - verde para tendência ascendente e vermelho para tendência descendente.

Em resumo, a estratégia utiliza os pontos fortes das médias móveis e padrões de boca de jacaré para determinar a direção da tendência e negociar em conformidade.

Análise das vantagens

  • A boca do jacaré identifica eficazmente a direção da tendência.
  • A combinação de diferentes linhas de período melhora a precisão do padrão.
  • A negociação com a tendência alinha-se com a teoria da negociação de tendência.
  • As cores de fundo ajudam no julgamento visual.
  • Lógica simples e clara, fácil de implementar.

Análise de riscos

  • Riscos múltiplos em mercados variados.
  • Risco elevado quando as linhas se realinham para fechar posições.
  • Incapaz de determinar a força da tendência, pode inserir tendências incorretamente.
  • Sem stop loss, alto risco de retirada.
  • Os períodos fixos não se adaptam às alterações do mercado.

Para fazer face aos riscos, podem ser feitas as seguintes melhorias:

  1. Adicione um filtro de tendência para evitar falhas nos mercados variáveis.

  2. Otimizar as condições de saída utilizando indicadores de tendência.

  3. Adicionar estratégia de stop loss para controlar a perda de uma única negociação.

  4. Utilize médias móveis adaptativas para que os períodos se ajustem dinamicamente.

Orientações para melhorias

A estratégia pode ser ainda melhorada nos seguintes aspectos:

  1. Adicione o filtro de força da tendência para evitar uma entrada prematura em tendências fracas.

  2. Otimizar os períodos de média móvel para encontrar as melhores combinações através de backtesting.

  3. Usar médias móveis adaptativas para que os períodos se adaptem com base no momento do mercado.

  4. Adicione estratégias de stop loss como trailing stop loss, saldo da conta stop loss para controlar os riscos.

  5. Melhorar as condições de entrada usando volume, Bandas de Bollinger, etc. para aumentar a precisão.

  6. Melhorar as condições de saída julgando a probabilidade de reversão da tendência com indicadores quando as linhas se cruzam.

Conclusão

A estratégia Williams Alligator é uma estratégia típica de seguir tendências. Ela usa a boca do jacaré formada por três médias móveis para determinar a tendência e o comércio em conformidade. As vantagens são sua lógica simples e clara. As desvantagens são a precisão da tendência mais fraca e o controle de riscos. Melhorias futuras podem ser feitas incorporando indicadores adicionais, otimizando parâmetros, adicionando stop loss para torná-lo mais robusto para condições complexas de mercado.


/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=3
strategy(title = "Noro's Alligator Strategy by Bill Williams", shorttitle = "Alligator", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len1 = input(50, defval = 50, minval = 1, title = "MA 1 Length")
len2 = input(100, defval = 100, minval = 1, title = "MA 2 Length")
len3 = input(200, defval = 200, minval = 1, title = "MA 3 Length")
src = input(close, title = "Source")
showbg = input(false, title = "Show Background")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//MAs
sma1 = sma(src, len1)
sma2 = sma(src, len2)
sma3 = sma(src, len3)
plot(sma1, color = lime, linewidth = 2)
plot(sma2, color = blue, linewidth = 2)
plot(sma3, color = red, linewidth = 2)

//Signals
up = sma1 > sma2 and sma2 > sma3
dn = sma1 < sma2 and sma2 < sma3

//Background
trend = 0
trend := up ? 1 : dn ? -1 : trend[1]
col = showbg == false ? na : trend == 1 ? lime : red
bgcolor(col)

//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if up
    strategy.entry("Long", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if dn
    strategy.entry("Short", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()

Mais.