Estratégia de acompanhamento de tendências baseada em Ichimoku Kinko Hyo


Data de criação: 2023-10-12 17:29:46 última modificação: 2023-10-12 17:29:46
cópia: 0 Cliques: 665
1
focar em
1617
Seguidores

Visão geral

A estratégia usa a linha de conversão, a linha de base e a linha de frente e de trás da nuvem de linhas do indicador Ichimoku Kinko Hyo para identificar a direção da tendência dos preços e realizar transações de acompanhamento de tendência. Faça mais quando o preço ultrapassa o topo da nuvem, faça menos quando ultrapassa o fundo da nuvem, atinja o ponto de parada do percentual de ganho predefinido e atinja o ponto de parada do percentual de perda predefinido.

Princípio da estratégia

A estratégia usa principalmente as seguintes linhas de indicadores Ichimoku:

  • Linha de conversão (Tenkan-sen): Linha de conversão, representando a tendência de curto prazo, a média dos preços mais altos e mais baixos de 9 períodos
  • Base Line (Kijun-sen): Linha de referência, representando a tendência do intervalo, a média dos preços mais altos e mais baixos de 26 períodos
  • Leading Span A (Senkou Span A): Leading Span A, média entre a linha de conversão e a linha de referência
  • Leading Span B (Senkou Span B): Leading Span B, a média dos preços mais altos e mais baixos em 52 ciclos

Quando o preço sobe através da nuvem frontal, faça mais; Quando o preço desce através da nuvem frontal, faça um vazio. ConfigEntry e ExitReason abrem posições ao quebrar o topo e o fundo da nuvem, respectivamente, e fecham as posições ao atingir a proporção de ganhos e perdas.

Análise de vantagens

  • Usar o indicador Ichimoku para identificar a direção da tendência e evitar ser enganado por turbulências de mercado
  • Identificar pontos de inflexão de tendências e melhorar a eficiência das transações através de uma abordagem top/bottom da nuvem
  • Estabelecer um ponto de parada para ajudar a aproveitar as oportunidades de lucro e controlar os riscos

Análise de Riscos

  • O indicador Ichimoku está atrasado e pode ter perdido o melhor ponto para uma mudança de tendência
  • É necessário um ciclo de configuração razoável para os parâmetros, como a linha de conversão, linha de referência e outros períodos de configuração incorreta pode levar a falsos sinais
  • Ponto de paragem é muito pequeno e pode parar prematuramente; o risco de expansão de perdas é muito grande.

Direção de otimização

  • Considerar a melhoria da precisão em combinação com outras tendências de identificação de indicadores
  • Ciclo de parâmetros de otimização dinâmica, adaptando-se a diferentes ciclos e ambientes de mercado
  • Configurar um stop-loss de rastreamento para permitir que o ponto de parada seja ajustado de acordo com as flutuações de preço, evitando um stop-loss prematuro
  • Considerar o desenvolvimento de uma estratégia de stop loss automática, ajustando o stop loss de acordo com a volatilidade do mercado

Resumir

A estratégia utiliza a direção da tendência de identificação da nuvem Ichimoku para realizar operações de acompanhamento de tendências de forma simples e eficiente. Embora haja algum risco de atraso e falso sinal, ela pode ser melhorada por meio de otimização de parâmetros, melhorias na tecnologia de stop loss e combinação com outros indicadores. A estratégia é fácil de entender e implementar, é adequada para o aprendizado de iniciantes e também pode ser usada como referência para outras estratégias.

Código-fonte da estratégia
/*backtest
start: 2023-10-04 00:00:00
end: 2023-10-08 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Estratégia com Ichimoku" , pyramiding=0, calc_on_every_tick = true, initial_capital = 20000, commission_type = strategy.commission.cash_per_order, commission_value = 10.00)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////Ichimoku Clouds////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////(VERSÃO 40.0)//////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

periodoLinhaDeConversao = input(defval=9, title="Tenkan-sen (Linha de Conversão)",  minval=1)
periodoLinhaBase = input(defval=26, title="Kijun-sen (Linha Base)",  minval=1)
periodoNivelAdiantadoB = input(defval=52, title="Senkou Span B (Nível adiantado B)",  minval=1)
deslocamento = input(defval=26, title="Deslocamento",  minval=1)

linhaDeConversao = (highest(high,periodoLinhaDeConversao)+lowest(low,periodoLinhaDeConversao))/2
linhaBase = (highest(high,periodoLinhaBase)+lowest(low,periodoLinhaBase))/2
nivelAdiantadoA = (linhaDeConversao + linhaBase)/2
nivelAdiantadoB = (highest(high,periodoNivelAdiantadoB)+lowest(low,periodoNivelAdiantadoB))/2

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
strategy.initial_capital = 50000
//Hardcoded quantity - strategy.entry(qty=)
capitalInicial = strategy.initial_capital
lotes = (strategy.initial_capital - (strategy.initial_capital % (open*100)))/open

//Percentage input goal - strategy.exit(profit=)
percentGoal = input (defval = 5.0, title = "Goal (%)", type = float, minval=0.0, step=0.1)
longGoal = (strategy.position_avg_price * (percentGoal/100)) * 100
shortGoal = (strategy.position_avg_price - (strategy.position_avg_price / (1+(percentGoal/100)))) * 100

//Percentage input stop - strategy.exit(loss=)
percentStop = input (defval = 0.5, title = "Stop (%)", type = float, minval=0.0, step=0.1)
longStop = (strategy.position_avg_price * (percentStop/100)) * 100
shortStop = (strategy.position_avg_price * (percentStop/100)) * 100

strategy.entry('entryLong', strategy.long, lotes, when = strategy.position_size == 0 and crossover(close,max(nivelAdiantadoA[deslocamento], nivelAdiantadoB[deslocamento])))
strategy.entry('entryShort', strategy.short, lotes, when = strategy.position_size == 0 and crossunder(close,min(nivelAdiantadoA[deslocamento], nivelAdiantadoB[deslocamento])))
strategy.exit('exitLong', 'entryLong', profit = longGoal, loss = longStop)
strategy.exit('exitShort', 'entryShort', profit = shortGoal, loss = shortStop)

plot(strategy.equity, title="Variação de capital", color=white)
//plot(strategy.position_size, color=red)