- Quadrado
- Estratégia de reversão de impulso de oito dias
Estratégia de reversão de impulso de oito dias
Autora:
ChaoZhang, Data: 2023-12-05 10:56:37
Tags:
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
- Calcule a média móvel simples de 5 dias.
- Definir a tendência ascendente TrendUp como próxima maior ou igual à SMA, tendência descendente TrendDown como próxima menor ou igual à SMA.
- 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.
- 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.
- 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
- Captura a dinâmica utilizando características de inversão de preços, adequadas para negociações de médio e curto prazo.
- Ocorrem frequentemente oportunidades de negociação elevadas, uma vez que a ruptura da SMA contínua durante 8 dias ocorre com frequência.
- O parâmetro SMA de 5 dias funciona bem, evita muitas falhas.
- Risco controlado com um ponto de stop loss claro.
Análise de riscos
- O stop loss pode ser desencadeado frequentemente durante a consolidação do mercado.
- Pode perder o melhor ponto de entrada se os dias de fuga forem muito longos.
- 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
- Optimização de parâmetros: teste diferentes períodos de SMA para encontrar melhores parâmetros.
- Otimização de entrada: adicione indicadores de volume para evitar falhas; ou julgue velas touro / urso para evitar whipssaws.
- Optimização de saída: teste de perda de parada de percentual fixo para dar mais espaço.
- Controle de riscos: definir tempos máximos diários de stop loss para limitar as perdas.
- 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.