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.
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.
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.
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.
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.
Identifica sinais de negociação a partir de mudanças de preços intradiários, adequados para negociação a curto prazo.
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.
Os parâmetros podem ser ajustados para filtrar alguns sinais.
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.
O desempenho depende dos instrumentos de negociação.
Outros indicadores como médias móveis podem ser adicionados para filtrar sinais incertos e evitar negócios falsos.
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.
Uma otimização mais sistemática e testes combinatórios podem encontrar melhores conjuntos de parâmetros para melhorar o desempenho.
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.
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)