A estratégia de rastreamento de nuvens do octógono

Autora:ChaoZhang, Data: 2023-12-20 15:08:22
Tags:

img

Resumo

Trata-se de uma estratégia quantitativa de acompanhamento de tendências baseada no indicador Ichimoku, que consiste principalmente na construção de posições longas e curtas em condições específicas para acompanhar as tendências do mercado, combinada com certos mecanismos de stop loss para controlar os riscos.

Princípio da estratégia

O núcleo desta estratégia é a construção de sinais de negociação baseados no indicador Ichimoku com certas configurações de parâmetros. O indicador Ichimoku consiste em quatro linhas: a linha de conversão, a linha de base, o intervalo principal A e o intervalo atrasado B. A linha de conversão é comumente conhecida como Tenkan-sen e a linha de base é chamada de Kijun-sen. Esta estratégia define diferentes parâmetros para Tenkan-sen e Kijun-sen para gerar sinais de negociação de cruz de ouro e cruz morta. Além disso, também incorpora breakouts de nuvem como uma condição auxiliar para desencadear entradas.

Especificamente, a estratégia segue principalmente as seguintes regras de negociação:

  1. Vai longo quando o preço quebra acima do Tenkan-sen e deixa a nuvem;

  2. Fechar posições longas quando o preço cair abaixo do Tenkan-sen;

  3. Vai curto quando o preço quebra abaixo do Kijun-sen e entra na nuvem;

  4. Fechar posições curtas quando o preço subir acima do Tenkan-sen.

Através desses princípios de negociação longa e curta, a estratégia pode efetivamente capturar os movimentos de tendência no mercado.

Análise das vantagens

Em comparação com outras estratégias comuns de negociação de médias móveis, esta estratégia tem as seguintes vantagens:

  1. Um julgamento de tendência mais preciso baseado no Ichimoku. Ichimoku consiste em múltiplas médias móveis, tornando-o mais confiável para o reconhecimento de tendências e filtrando o ruído de MAs individuais.

  2. Melhor efeito de filtragem com linhas múltiplas.

  3. Riscos controláveis: a definição da linha de stop loss permite o controle de stop loss e risco em tempo hábil.

  4. Menores saques: operações menos desfavoráveis em comparação com outras estratégias de tendência reduzem a perda de saques.

  5. Ajuste flexível dos parâmetros, que podem ser ajustados para se adaptarem às diferentes condições do mercado.

Riscos e otimização

Ainda existem alguns riscos a considerar para esta estratégia:

  1. Performance fraca em mercados de gama, podendo ocorrer desacelerações que levem a perdas de flutuação.

  2. Inadequado reconhecimento de reversões de tendência: fraco em identificar reversões de tendência de curto prazo, pode perder oportunidades ou encontrar reversões súbitas.

  3. Confiança no ajuste de parâmetros empíricos. Parâmetros diferentes podem afetar significativamente o desempenho, o que requer uma experiência histórica abundante.

Os seguintes aspectos podem ser otimizados para enfrentar os riscos acima referidos:

  1. Adicionar indicadores de volatilidade para detectar mercados não em tendência e pausar a estratégia.

  2. Incorporar sinais adicionais de reversão, como cruzamento da média móvel.

  3. Utilize o aprendizado de máquina para otimização automática de parâmetros em vez de ajuste manual.

  4. Estabelecer linhas de stop loss dinâmicas baseadas na volatilidade do mercado.

Conclusão

Em geral, esta estratégia aproveita a força do Ichimoku em capturar movimentos de tendência.


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="RENKO ICHIMOKU STRATEGY", shorttitle="RENKO ICHIMOKU STRATEGY", overlay=true)
ro = open
rc = close

tenkanSenPeriods = input(10, minval=1, title="Tenkan-sen"),
kijunSenPeriods = input(30, minval=1, title="Kijun-sen")
SenkouSpanBPeriods = input(60, minval=1, title="Senkou Span B"),
displacement = input(30, minval=1, title="Chikou Span (Displacement)")

donchian(len) => avg(lowest(len), highest(len))

tenkanSen = donchian(tenkanSenPeriods)
kijunSen = donchian(kijunSenPeriods)
SenkouSpanA = avg(tenkanSen, kijunSen)
SenkouSpanB = donchian(SenkouSpanBPeriods)

plot(tenkanSen, color=#0496ff, linewidth=2, title="Tenkan-sen")
// plot(kijunSen, color=#991515, title="Kijun-sen")
// plot(close, offset = -displacement, color=#459915, title="Chikou Span")

p1 = plot(SenkouSpanA, offset = displacement, color=green, title="Senkou Span A")
p2 = plot(SenkouSpanB, offset = displacement, color=red, title="Senkou Span B")
fill(p1, p2, color = SenkouSpanA > SenkouSpanB ? green : red)

// Entry/Exit Signals
tk_cross_bull = tenkanSen > kijunSen
tk_cross_bear = tenkanSen < kijunSen

price_below_tenkan = open < tenkanSen and close < tenkanSen
price_above_tenkan = open > tenkanSen and close > tenkanSen

price_below_kinjun = close < kijunSen
price_above_kinjun = close > kijunSen

tekan_above_kinjun = tenkanSen > kijunSen
tekan_below_kinjun = tenkanSen < kijunSen

ss_high = max(SenkouSpanA[displacement-1], SenkouSpanB[displacement-1])
ss_low = min(SenkouSpanA[displacement-1], SenkouSpanB[displacement-1])
price_inside_kumo = close > ss_high and close < ss_low

price_below_kumo = rc[1] < ro[1] and rc[0] < ro[0] and rc[1] < ss_low 
price_above_kumo = rc[1] > ro[1] and rc[0] > ro[0] and rc[1] > ss_high 

cs_cross_bull = mom(close, displacement-1) > 0
cs_cross_bear = mom(close, displacement-1) < 0

bullish = cs_cross_bull and not price_inside_kumo
bearish = cs_cross_bear and not price_inside_kumo



strategy.entry("Long", strategy.long, when=price_above_kumo and price_above_tenkan )
strategy.close("Long", when=price_below_tenkan )

strategy.entry("Short", strategy.short, when=price_below_kumo and price_below_tenkan )
strategy.close("Short", when=price_above_tenkan )

// longCondition = crossover(sma(close, 14), sma(close, 28))
// if (longCondition)
//     strategy.entry("My Long Entry Id", strategy.long)

// shortCondition = crossunder(sma(close, 14), sma(close, 28))
// if (shortCondition)
//     strategy.entry("My Short Entry Id", strategy.short)

Mais.