Estratégia de reversão de impulso de oito dias

Autora:ChaoZhang, Data: 2023-12-05 10:56:37
Tags:

img

Resumo

Esta estratégia utiliza principalmente a característica de reversão dos preços depois de fechar continuamente acima ou abaixo da média móvel simples de 5 dias por 8 dias para capturar o efeito de impulso no médio e curto prazo.

Estratégia lógica

  1. Calcule a média móvel simples de 5 dias.
  2. Definir a tendência ascendente TrendUp como próxima maior ou igual à SMA, tendência descendente TrendDown como próxima menor ou igual à SMA.
  3. Confirmar a condição de reversão da tendência: desencadear o sinal de compra quando o preço de fechamento fecha abaixo da SMA durante 8 dias consecutivos e passa a tendência de alta (cruza acima da SMA) no dia seguinte; desencadear o sinal de venda quando o preço de fechamento fecha acima da SMA durante 8 dias consecutivos e passa a tendência de queda (cruza abaixo da SMA) no dia seguinte.
  4. Entrada: longa quando a condição de compra é acionada ontem e a tendência atual é de baixa; curta quando a condição de venda é acionada ontem e a tendência atual é de alta.
  5. Exit: fechar posição longa quando o preço de fechamento cruza abaixo da SMA; fechar posição curta quando o preço de fechamento cruza acima da SMA.

Análise das vantagens

  1. Captura a dinâmica utilizando características de inversão de preços, adequadas para negociações de médio e curto prazo.
  2. Ocorrem frequentemente oportunidades de negociação elevadas, uma vez que a ruptura da SMA contínua durante 8 dias ocorre com frequência.
  3. O parâmetro SMA de 5 dias funciona bem, evita muitas falhas.
  4. Risco controlado com um ponto de stop loss claro.

Análise de riscos

  1. O stop loss pode ser desencadeado frequentemente durante a consolidação do mercado.
  2. Pode perder o melhor ponto de entrada se os dias de fuga forem muito longos.
  3. Difícil lucrar se houver uma tendência prolongada.

Pode otimizar os parâmetros da SMA, melhorar os critérios de entrada para evitar falhas, combinar com indicadores de tendência para fortalecer a estratégia.

Orientações de otimização

  1. Optimização de parâmetros: teste diferentes períodos de SMA para encontrar melhores parâmetros.
  2. Otimização de entrada: adicione indicadores de volume para evitar falhas; ou julgue velas touro / urso para evitar whipssaws.
  3. Optimização de saída: teste de perda de parada de percentual fixo para dar mais espaço.
  4. Controle de riscos: definir tempos máximos diários de stop loss para limitar as perdas.
  5. Combinar indicadores: adicionar RSI, MACD para determinar a tendência para identificar as condições do mercado.

Conclusão

A estratégia capta o movimento do preço da ruptura ao recuo julgando o momento, implementa a lógica de negociação de evitar whipssaws e seguir a tendência. As chaves são configurações de parâmetros rigorosas e critérios de entrada robustos para evitar ruído; stop loss razoável para limitar perdas. Combinando com indicadores de tendência pode alcançar melhores resultados. A lógica da estratégia é simples e limpa. Vale a pena explorar uma otimização adicional.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Marcuscor

//@version=5

// Inpsired by Linda Bradford Raschke: a strategy for trading momentum in futures markets

strategy("8D Run", initial_capital = 50000, commission_value = 0.0004) 


SMA = ta.sma(close,5)

TrendUp = close >= SMA

TrendDown = close <= SMA


//logic to long

TriggerBuy = ta.barssince(close < SMA) >= 8

Buy = TriggerBuy[1] and TrendDown 

strategy.entry("EL", strategy.long, when = Buy)
strategy.close(id = "EL", when = close > SMA)

// 1) color background when "run" begins and 2) change color when buy signal occurs
bgcolor(TriggerBuy? color.green : na, transp = 90)
bgcolor(Buy ? color.green : na, transp = 70)


// logic to short 

TriggerSell = ta.barssince(close > SMA) >= 8

Sell = TriggerSell[1] and TrendUp

strategy.entry("ES", strategy.short, when = Sell)
strategy.close(id = "ES", when = close < SMA)

// 1) color background when "run" begins and 2) change color when sell signal occurs
bgcolor(TriggerSell ? color.red : na, transp = 90)
bgcolor(Sell ? color.red : na, transp = 70) 







Mais.