Estratégia de Identificação de Tendências Locais da Nuvem Ichimoku

Autora:ChaoZhang, Data: 2024-03-19 15:10:59
Tags:

img

Resumo

Esta estratégia é uma estratégia de identificação de tendências e negociação baseada no indicador Ichimoku Cloud combinado com os rácios de Fibonacci. Ele usa a linha de conversão, a linha de base, a nuvem Kumo e o intervalo de atraso do indicador Ichimoku Cloud para determinar a tendência atual do mercado, e incorpora os rácios 1.618 e 0.618 de Fibonacci para definir níveis de stop-loss e identificar mercados laterais. Além disso, a estratégia introduz duas linhas médias adicionais para filtrar falsos sinais.

Princípio da estratégia

O indicador da Nuvem Ichimoku consiste em quatro componentes: a Linha de Conversão, a Linha de Base, a Nuvem Kumo e o Lagging Span. A Linha de Conversão e a Linha de Base são calculadas usando a média da maior alta e menor baixa em diferentes períodos de tempo.

As condições de entrada a longo prazo para esta estratégia são as seguintes:

  1. O Lagging Span está acima da nuvem
  2. A linha de conversão é maior que a linha de base
  3. O preço de fechamento está acima do nível de stop-loss de 1,618
  4. A linha de 0,618 está acima do nível de stop-loss de 1,618
  5. O preço de fechamento está acima da nuvem

As condições de entrada curtas são o oposto das condições de entrada longas.

Os níveis de stop-loss são definidos usando os rácios 1.618 e 0.618 de Fibonacci. Para posições longas, o stop-loss é a borda superior da nuvem menos 1.618 vezes a distância entre as bordas superior e inferior. Para posições curtas, é o oposto. A linha 0.618 é usada para identificar mercados laterais. Quando a nuvem é verde e a linha 0.618 está abaixo do nível de stop-loss de 1.618, o mercado é considerado estar em um estado lateral.

Além do indicador Ichimoku Cloud, a estratégia introduz duas linhas médias para filtrar ainda mais os sinais falsos.

Análise das vantagens

  1. A estratégia pode identificar melhor a tendência actual do mercado através da utilização de indicadores de preços e de tendências.
  2. A introdução de índices de Fibonacci para definir dinamicamente os níveis de stop-loss torna o risco controlado.
  3. A linha 0,618 pode identificar de forma eficaz os mercados laterais e evitar entradas frequentes em mercados variáveis.
  4. As duas linhas médias adicionais podem filtrar ainda mais os sinais falsos e melhorar a qualidade do sinal.
  5. Os parâmetros são ajustáveis, tornando a estratégia adequada para diferentes mercados e prazos.

Análise de riscos

  1. Em condições de mercado extremas, tais como fortes tendências ascendentes ou descendentes, os indicadores de tendência podem falhar, levando a sinais distorcidos.
  2. O nível de stop-loss é baseado na distância da nuvem. Quando a nuvem é muito fina, pode resultar no stop-loss estar muito perto do preço de entrada.
  3. O método de utilização dos rácios de Fibonacci para o stop-loss e a linha 0,618 para julgar os mercados laterais não possui suporte teórico e pode não ser aplicável a todos os mercados.
  4. A otimização dos parâmetros pode conduzir a um sobreajuste e a um desempenho fraco nos mercados reais.

Orientações de otimização

  1. Considerar a introdução de mais indicadores de confirmação de tendência, tais como médias móveis, MACD, etc., para melhorar ainda mais a qualidade do sinal.
  2. A definição dos níveis de stop-loss pode ter em conta mais fatores, como o ATR e a volatilidade, para torná-los mais dinâmicos e personalizados.
  3. Para a identificação de mercados laterais, podem ser utilizados outros métodos, como o indicador de força da tendência ADX.
  4. Métodos de aprendizagem de máquina, como algoritmos genéticos, podem ser usados para otimização de parâmetros, e testes fora da amostra devem ser realizados para evitar a sobreajuste.
  5. Podem ser adicionados módulos de dimensionamento de posições e controlo de riscos, como o critério Kelly e o risco fixo, para melhorar a solidez e a fiabilidade da estratégia.

Conclusão

Esta estratégia combina inovadoramente o indicador Ichimoku Cloud com os rácios de Fibonacci para formar um sistema completo de identificação e negociação de tendências. A introdução de linhas médias extras para filtragem pode melhorar a qualidade do sinal até certo ponto. A vantagem da estratégia reside em sua capacidade de se adaptar bem às condições de mercado de tendência e variável, e controlar o risco através de stop-losses dinâmicos. No entanto, a estratégia também tem algumas deficiências, como falta de suporte teórico e potencial de superação na otimização de parâmetros. No futuro, a estratégia pode ser melhorada através da introdução de mais indicadores, otimização de stop-losses e posicionamento de tamanho e uso de aprendizado de máquina para otimização de parâmetros.


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © manoharbauskar

//@version=5
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © manoharbauskar

//@version=5
strategy("Advanced_Ichimoku_Cloud_Strategy", overlay=true, margin_long=100, margin_short=100)
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpanPeriods = input.int(52, minval=1, title="Leading Span B Length")
pivotPeriods1 = input.int(17,minval = 1,title = "PPL1")
pivotPeriods2 = input.int(39,minval = 1,title = "PPL2")
displacement = input.int(26, minval=1, title="Lagging Span")
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
midLine1 = donchian(pivotPeriods1)
midLine2 = donchian(pivotPeriods2)
midLine3 = donchian(laggingSpanPeriods)
leadLine1 = math.avg(conversionLine, baseLine, midLine1)
leadLine2 = math.avg(midLine2 , midLine3)


plot(conversionLine, color=#2962FF, title="Conversion Line")
plot(baseLine, color=#B71C1C, title="Base Line")

plot(close, offset = -displacement + 1, color=color.yellow, title="Lagging Span")
p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
	 title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
	 title="Leading Span B")
   
plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Upper Line", display = display.none) 
plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Lower Line", display = display.none) 
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))

//stoploss calculating
mult1 = input.float(1.618, "Mult1")
mult2 = input.float(0.618, "Mult2")
stoploss1 = leadLine1 - (leadLine1 - leadLine2)*mult1
stoploss2 = leadLine1 - (leadLine1 - leadLine2)*mult2
plot(stoploss1,"Sl", color = color.fuchsia, linewidth = 2, style = plot.style_line, offset = displacement - 1)
plot(stoploss2,"S2", color = color.lime, linewidth = 2, style = plot.style_line, offset = displacement - 1)

longCondition = leadLine1 > leadLine2 
if (longCondition)
    strategy.entry("Buy", strategy.long)

shortCondition = leadLine1 < leadLine2
if (shortCondition)
    strategy.entry("Sell", strategy.short)


Mais.