Estratégia de negociação de dia de nuvem de Ichimoku

Autora:ChaoZhang, Data: 2023-10-16 16:10:55
Tags:

img

Resumo

Esta estratégia implementa a negociação de ações intradiárias usando linhas de Ichimoku Cloud. Ela pertence a estratégias de negociação de curto prazo. Utiliza a linha de conversão, a linha de base e as linhas principais da Ichimoku Cloud para gerar sinais de negociação e usa o SAR Parabólico para trail de stop loss, alcançando uma proteção dupla.

Princípios

A nuvem de Ichimoku é composta pela linha de conversão, linha de base, linha principal 1 e linha principal 2. A linha de conversão é a média do preço de fechamento e dos preços mais altos e mais baixos nos últimos 9 dias, refletindo o estado de equilíbrio recente do preço da ação. A linha de base é a média dos preços mais altos e mais baixos nos últimos 26 dias, representando o estado de equilíbrio de médio a longo prazo. A linha principal 1 é a média da linha base e da linha de conversão, refletindo a tendência futura. A linha principal 2 é a média dos preços mais altos e mais baixos nos últimos 52 dias. Estas linhas de equilíbrio se combinam para formar os sinais de negociação.

Quando o preço de fechamento atravessa a linha de base para cima e está acima da linha líder 2, um sinal de compra é gerado. Quando o preço de fechamento quebra a linha de base para baixo e está abaixo da linha líder 1, um sinal de venda é gerado.

Esta estratégia utiliza a combinação de linhas de equilíbrio para determinar as tendências de preços futuras e a sustentabilidade da tendência atual.

Vantagens

  1. Usar linhas de equilíbrio para determinar tendências futuras melhora a precisão

As linhas de equilíbrio contêm informações de preços de diferentes períodos, refletindo mudanças nas tendências com antecedência.

  1. A parada de tracção SAR proporciona uma dupla protecção

O SAR pode rastrear flexivelmente o preço da ação para o stop loss. Combinando-se com linhas de equilíbrio, ele permite o stop loss oportuno após a tomada de lucro, evitando perdas ampliadas.

  1. Parâmetros simples, fáceis de implementar

Esta estratégia tem parâmetros mínimos sem indicadores técnicos complexos como a adaptação da curva, simples e prática de implementar.

  1. Adequado para negociação intradiária e de curto prazo

Identifica sinais de negociação a partir de mudanças de preços intradiários, adequados para negociação a curto prazo.

Riscos

  1. Risco de utilização

A tendência após a negociação leva a maiores drawdowns. Níveis razoáveis de stop loss devem ser definidos para limitar por perda de negociação.

  1. Risco de serradura

Os parâmetros podem ser ajustados para filtrar alguns sinais.

  1. Risco de otimização excessiva

Os parâmetros simples são suscetíveis a otimização excessiva. O desempenho comercial real pode não ser ideal. Testes de robustez devem ser realizados para evitar a adaptação excessiva.

  1. Os resultados variam entre os diferentes instrumentos

O desempenho depende dos instrumentos de negociação.

Oportunidades de melhoria

  1. Adicionar filtros com outros indicadores

Outros indicadores como médias móveis podem ser adicionados para filtrar sinais incertos e evitar negócios falsos.

  1. Ajuste dinâmico do stop loss

Os parâmetros SAR podem ser ajustados de forma dinâmica com base na volatilidade do mercado, para obter um stop loss mais flexível.

  1. Optimização de parâmetros

Uma otimização mais sistemática e testes combinatórios podem encontrar melhores conjuntos de parâmetros para melhorar o desempenho.

  1. Ajustar o dimensionamento das posições em função do regime de mercado

O tamanho da posição e a alavancagem podem ser ajustados dinamicamente com base nas condições do mercado, como as tendências dos índices, para controlar os riscos.

Conclusão

Esta estratégia utiliza os sinais de negociação da Ichimoku Cloud e o Parabolic SAR para rastreamento de stop loss. É uma estratégia de negociação de curto prazo simples e prática. Capitaliza a capacidade de previsão de tendência da Ichimoku Cloud para a negociação de ruptura. O mecanismo de stop loss evita a ampliação de perdas. É necessário um controle de retirada adequado, seleção de ações e ajuste de parâmetros para a implementação. Com isso, é fácil implementar uma estratégia com desempenho respeitável para a negociação intradiária.


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

//@version=3
//
//  Based on the trading strategy described at
//    http://stockcharts.com/school/doku.php?id=chart_school:trading_strategies:ichimoku_cloud
//
//  See Also:
//    - Backtesting and forwardtesting (of TradingView Strategies) <https://www.tradingview.com/wiki/Strategies#Backtesting_and_forwardtesting>
//    - 9 Mistakes Quants Make that Cause Backtests to Lie <https://blog.quantopian.com/9-mistakes-quants-make-that-cause-backtests-to-lie-by-tucker-balch-ph-d/>
//    - When Backtests Meet Reality <http://financial-hacker.com/Backtest.pdf>
//    - Why MT4 backtesting does not work <http://www.stevehopwoodforex.com/phpBB3/viewtopic.php?f=28&t=4020>
//
// 
// -----------------------------------------------------------------------------
// Copyright 2018 sherwind
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// The GNU General Public License can be found here
// <http://www.gnu.org/licenses/>.
//
// -----------------------------------------------------------------------------
//

strategy(title="Ichimoku Cloud Strategy", shorttitle="Ichimoku Strategy", overlay=true, pyramiding=3)

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=1, title="Displacement")

usePSARTrailStop    = input(true, title="Use Parabolic SAR for Trailing Stop")
psarStart           = input(0.02, title="Parabolic SAR Start")
psarIncrement       = input(0.02, title="Parabolic SAR Increment")
psarMaximum         = input(0.2,  title="Parabolic SAR Maximum")


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

conversionLine = donchian(conversionPeriods)
baseLine  = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
leadLineDisp1 = leadLine1[displacement]
leadLineDisp2 = leadLine2[displacement]

psar = sar(psarStart, psarIncrement, psarMaximum)

// BUY Signal:
// close > leading span b and
// leading span a > leading span b and 
// close crosses over base line and
// close > parabolic sar
buySignal = close > leadLineDisp2 and
  leadLineDisp1 > leadLineDisp2 and
  crossover(close, baseLine) and
  (usePSARTrailStop ? close > psar : not usePSARTrailStop)

// Sell Signal:
// close < leading span a and 
// leading span a < leading span b and 
// close crosses under base line and
// close < psar
sellSignal = close < leadLineDisp1 and
  leadLineDisp1 < leadLineDisp2 and
  crossunder(close, baseLine) and
  (usePSARTrailStop ? close < psar : not usePSARTrailStop)

hasLong  = strategy.position_size > 0
hasShort = strategy.position_size < 0


strategy.entry("ichimoku-long", strategy.long, when = buySignal)
strategy.entry("ichimoku-short", strategy.short, when = sellSignal)

strategy.exit("trailstop-long", "ichimoku-long", stop = psar, when = hasLong and usePSARTrailStop)
strategy.exit("trailstop-short", "ichimoku-short", stop = psar, when = hasShort and usePSARTrailStop)


Mais.