Acompanhamento da estratégia de stop loss com base na média móvel dupla dinâmica


Data de criação: 2024-02-26 11:13:17 última modificação: 2024-02-26 11:13:17
cópia: 0 Cliques: 594
1
focar em
1617
Seguidores

Acompanhamento da estratégia de stop loss com base na média móvel dupla dinâmica

Visão geral

A estratégia é uma estratégia de rastreamento de stop loss dinâmico baseada na linha média de duas EMAs. Ela usa a linha de 9 dias e a linha de 20 dias para determinar a direção da tendência do mercado, em combinação com o indicador RSI para filtrar a falsa ruptura.

Princípio da estratégia

A estratégia usa a EMA de 9 dias como a média curta e a EMA de 20 dias como a média média média para determinar a tendência dos preços. Quando os preços atravessam a média curta e fecham acima do máximo do dia anterior e o RSI está acima de 30, faz mais; Quando os preços atravessam a média curta e fecham abaixo do mínimo do dia anterior e o RSI está abaixo de 70, faz mais.

O ponto de parada é definido como o valor de ATR menos 1,5 vezes o preço de fechamento, o ponto de parada é definido como o valor de ATR mais o preço de fechamento multiplicado pelo fator de parada. Ao mesmo tempo, o ponto de parada é definido como o stop tracking de tendência usando o dobro do ATR.

Vantagens estratégicas

  1. Usar duas EMAs para avaliar as principais tendências do mercado e evitar o ruído
  2. Combinado com o RSI, o filtro de brechas falsas aumenta a precisão de entrada
  3. Paradas de perda dinâmicas, que podem ser ajustadas de acordo com a volatilidade do mercado
  4. Seguir a tendência, parar a perda e maximizar o lucro

Análise de Riscos

  1. A EMA está atrasada e pode perder oportunidades de curto prazo
  2. A configuração incorreta dos parâmetros do RSI pode levar a oportunidades de entrada perdidas
  3. A proporção de suspensão de perda está mal definida e pode ser muito relaxada ou rígida
  4. A situação pode mudar rapidamente e o stop loss pode ser ultrapassado.

Direção de otimização

  1. Teste combinações de EMAs de diferentes parâmetros para encontrar o melhor parâmetro
  2. Optimizar os parâmetros do RSI, equilibrando a relação entre a precisão de entrada e a captação de oportunidades
  3. Teste diferentes proporções de stop loss para encontrar a configuração ideal
  4. Adição de mais condições de filtragem de indicadores para reduzir a probabilidade de quebra do stop loss

Resumir

A estratégia, em geral, é uma estratégia de posição de linha média e longa mais estável. Combina a principal tendência do mercado de julgamento de EMA dupla, evitando que as decisões sejam influenciadas pelo ruído do mercado de curto prazo. A inclusão do indicador RSI também filtra os falsos breakouts até certo ponto. Além disso, o mecanismo de stop loss stop also permite que a estratégia ajuste seu próprio nível de stop loss de acordo com a volatilidade do mercado.

Código-fonte da estratégia
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("CJTrade", overlay=true)

short = ema(close, 9)
medium = ema(close, 20)
long = ema(close, 50)
very_long = ema(close, 200)

plot(short, color=color.gray, linewidth=1)
plot(medium, color=color.red, linewidth=1)
plot(long, color=color.black, linewidth=1)
plot(very_long, color=color.blue, linewidth=1)

rsiValue = rsi(close, 14)

near20EMA = close > medium - atr(14)

longCond = crossover(close[1], short) and close >= high[1] and rsiValue < 70 and near20EMA
shortCond = crossunder(close[1], short) and close <= low[1] and rsiValue > 30 and near20EMA

strategy.entry("Long", strategy.long, when=longCond)
strategy.entry("Short", strategy.short, when=shortCond)

atrValue = atr(14)
stopLossLevel = close - atrValue * 1.5

// Dynamic take profit level based on ATR
takeProfitMultiplier = input(2, title="Take Profit Multiplier", minval=0.1, maxval=10, step=0.1)
takeProfitLevel = close + atrValue * takeProfitMultiplier

// Trailing stop loss for long positions
longTrailingStop = close - atrValue * 2
strategy.exit("LongTrailingStop", from_entry="Long", loss=longTrailingStop)

// Trailing stop loss for short positions
shortTrailingStop = close + atrValue * 2
strategy.exit("ShortTrailingStop", from_entry="Short", loss=shortTrailingStop)

strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=stopLossLevel, profit=takeProfitLevel)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=stopLossLevel, profit=takeProfitLevel)