Esta estratégia implementa uma negociação simples de tendência baseada no indicador de nuvem ichimoku em gráficos diários. Gerar sinais de compra e venda através do cálculo da linha de conversão, linha de base, lead span 1, lead span 2 e comparando a posição do preço de fechamento em relação à nuvem. Quando o preço de fechamento está acima da nuvem, ele é considerado uma tendência de alta e um sinal de compra é gerado. Quando o preço de fechamento está abaixo da nuvem, ele é considerado uma tendência de baixa e um sinal de venda é gerado.
A estratégia calcula principalmente as cinco linhas do indicador de nuvem ichimoku com base nas seguintes fórmulas:
Linha de conversão: média de 9 períodos da mais alta e da mais baixa
Linha de base: média de 26 períodos do máximo máximo e do mínimo mínimo
Duração máxima 1: média da linha de conversão e da linha de base
Leading Span 2: média de 52 períodos do mais alto e do mais baixo mínimo
Span de atraso: preço de fechamento gráfico com 26 períodos de atraso
Quando o preço de fechamento está acima da nuvem, é considerado uma tendência ascendente e um sinal de compra é gerado.
A estratégia aplica esta lógica através das seguintes etapas:
Calcular a linha de conversão, linha de base, span líder 1, e span líder 2
Traçar o intervalo de atraso do preço de fechamento 26 períodos atrás
Verifique se o preço de fechamento está acima da nuvem (leading span 1 e 2), gerar sinal de compra se verdadeiro
Verifique se o preço de fechamento está abaixo da nuvem, gerar sinal de venda se for verdade
Atividades de compra/venda baseadas em configurações de estratégia
As principais vantagens desta estratégia são:
O uso da nuvem ichimoku pode identificar efetivamente tendências e gerar sinais ao longo da direção da tendência, evitando negociações desnecessárias em mercados de faixa.
Os parâmetros de cálculo são otimizados para a negociação diária.
Usando tanto o span 1 como o 2 combina múltiplos sinais para filtrar sinais falsos.
O atraso do intervalo de atraso ajuda a reduzir o risco de retração imediata após a ruptura das nuvens.
Lógica simples e clara, fácil de entender e implementar.
Não são necessários outros indicadores, sistema completo de tendência.
Há alguns riscos a considerar:
A nuvem pode falhar em determinadas condições de mercado, gerando sinais incorretos.
Se os parâmetros não forem adaptados à evolução da dinâmica do mercado, o sistema enfraquece.
O atraso fixo no período de atraso pode perder algumas oportunidades.
Ainda não posso evitar completamente os whipssaws.
Há algum atraso de tempo, incapaz de captar reversões rápidas.
Não é possível diferenciar as tendências principais das correcções mais curtas, podendo causar perdas.
Algumas formas de melhorar a estratégia:
Otimizar parâmetros como linha de conversão para diferentes condições de mercado.
Adicionar indicadores de filtragem de tendência para confirmar a força e direção.
Implementar stop loss e take profit para controlar a perda por negociação.
Só aceita sinais de quebra de nuvens com alto volume.
Usar conjuntos de parâmetros diferentes com base no regime de mercado.
Adicione aprendizagem de máquina para otimizar automaticamente parâmetros.
Considere a extensão de atraso dinâmico em vez de atraso fixo.
Em geral, esta estratégia de nuvem ichimoku implementa a tendência básica seguindo regras, embora melhorias possam ser feitas. A lógica central é sólida, os parâmetros otimizados, boa estratégia de negociação de algo de linha de base. Com o aumento adicional dos parâmetros da nuvem, adicionando filtros e controles de risco, pode se tornar um sistema de negociação quantitativa muito prático.
/*backtest start: 2023-09-30 00:00:00 end: 2023-10-07 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Ichimoku Cloud", shorttitle="Ichimoku", overlay=true, commission_type=strategy.commission.percent,commission_value=0.075, initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) conversionPeriods = input(9, minval=1, title="Conversion Line Periods"), basePeriods = input(26, minval=1, title="Base Line Periods") laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"), displacement = input(26, minval=0, title="Displacement") donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) plot(conversionLine, color=#0496ff, title="Conversion Line") plot(baseLine, color=#991515, title="Base Line") plot(close, offset = -displacement, color=#459915, title="Lagging Span") p1 = plot(leadLine1, offset = displacement, color=color.green, title="Lead 1") p2 = plot(leadLine2, offset = displacement, color=color.red, title="Lead 2") fill(p1, p2, color = leadLine1 > leadLine2 ? color.green : color.red) buy = close > leadLine1[26] and close > leadLine2[26] sell = close < leadLine1[26] and close < leadLine2[26] strategy.entry("Buy", strategy.long, when = buy) strategy.entry("Sell", strategy.short, when = sell)