Estratégia de crossover de três EMA mais RSI estocástico


Data de criação: 2023-11-15 10:47:20 última modificação: 2023-11-15 10:47:20
cópia: 0 Cliques: 954
1
focar em
1617
Seguidores

Estratégia de crossover de três EMA mais RSI estocástico

Visão geral

É uma estratégia de acompanhamento de tendências que combina vários indicadores. Utiliza simultaneamente três diferentes períodos de EMA, RSI estocástico e ATR para identificar a direção da tendência e estabelecer posições.

Princípios

A estratégia usa três EMAs médias, respectivamente, EMAs de 8 ciclos, 14 ciclos e 50 ciclos. Eles representam tendências de preços em diferentes períodos de tempo. Quando o EMA de 8 ciclos atravessa o EMA de 14 ciclos e o EMA de 14 ciclos atravessa o EMA de 50 ciclos, indica que está no início da tendência.

O indicador Stochastic RSI combina o RSI e o método de cálculo estocástico para detectar o fenômeno de sobrevenda e sobrevenda. Quando a linha K do RSI estocástico atravessa a linha D de baixo para cima, indica que o mercado está passando de uma situação de sobrevenda para uma posição de otimização.

O ATR representa a mais recente faixa de flutuação. A estratégia usa 3 vezes o ATR como um intervalo de parada e 2 vezes como um intervalo de parada para bloquear o lucro e controlar o risco.

Vantagens

  • Usando a linha média do EMA, pode-se eliminar parte do ruído dos dados de preços e identificar a direção da tendência
  • Stochastic RSI Indicador pode encontrar oportunidades de reversão
  • O ATR traz um stop loss dinâmico, que permite definir uma margem de lucro razoável de acordo com a amplitude da volatilidade do mercado.

Riscos

  • Combinações de múltiplos indicadores podem gerar sinais errados
  • O multiplicador de stop loss fixo não se adapta às mudanças do mercado
  • Como os ciclos curtos são mais suscetíveis a reversões

Pode-se otimizar a sensibilidade do indicador ajustando os parâmetros do ciclo EMA. Também é possível ajustar o parâmetro de parada de perda do ATR para definir o parâmetro apropriado de acordo com a situação do mercado. Além disso, pode-se considerar a inclusão de outros indicadores auxiliares para evitar sinais errados.

Direção de otimização

  • Ajustar os parâmetros do ciclo EMA para otimizar a sensibilidade do indicador
  • Permite que o multiplicador de stop loss do ATR seja ajustável
  • Adicionar outros indicadores de julgamento para evitar sinais errados

Resumir

Esta estratégia compreensível considera a direção da tendência, o fenômeno de sobrecompra e sobrevenda e a amplitude de oscilação para identificar o momento de entrada. A utilização conjunta da linha média EMA e do indicador Stochastic RSI permite a identificação eficaz da tendência, e o ATR acompanha o stop loss stop para ajudar no controle do risco. Através do ajuste e otimização dos parâmetros, a estratégia pode se tornar um sistema de acompanhamento de tendência confiável.

Código-fonte da estratégia
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 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/
// © FreddieChopin
 
//@version=4
strategy("3 x EMA + Stochastic RSI + ATR", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
 
// 3x EMA
ema1Length = input(8, "EMA1 Length", minval = 1)
ema2Length = input(14, "EMA2 Length", minval = 1)
ema3Length = input(50, "EMA3 Length", minval = 1)
ema1 = ema(close, ema1Length)
ema2 = ema(close, ema2Length)
ema3 = ema(close, ema3Length)
 
plot(ema1, color = color.green)
plot(ema2, color = color.orange)
plot(ema3, color = color.red)
 
// Stochastic RSI
smoothK = input(3, "K", minval=1)
smoothD = input(3, "D", minval=1)
lengthRSI = input(14, "RSI Length", minval=1)
lengthStoch = input(14, "Stochastic Length", minval=1)
src = input(close, title="RSI Source")
rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
 
// ATR
atrPeriod = input(14, "ATR Period")
takeProfitMultiplier= input(2.0, "Take-profit Multiplier")
stopLossMultiplier= input(3.0, "Stop-loss Multiplier")
atrSeries = atr(atrPeriod)[1]
 
longCondition = ema1 > ema2 and ema2 > ema3 and crossover(k, d)
strategy.entry("long", strategy.long, when = longCondition)
 
float stopLoss = na
float takeProfit = na
 
if (strategy.position_size > 0)
    if (na(stopLoss[1]))
        stopLoss := strategy.position_avg_price - atrSeries * stopLossMultiplier
    else
        stopLoss := stopLoss[1]
    if (na(takeProfit[1]))
        takeProfit := strategy.position_avg_price + atrSeries * takeProfitMultiplier
    else
        takeProfit := takeProfit[1]
 
    strategy.exit("take profit / stop loss", limit = takeProfit, stop = stopLoss)
 
plot(stopLoss, color = color.red, linewidth = 2, style = plot.style_linebr)
plot(takeProfit, color = color.green, linewidth = 2, style = plot.style_linebr)