Momentum RSI multiperíodo e tendência de EMA triplo seguindo estratégia composta

RSI EMA
Data de criação: 2024-11-12 15:07:54 última modificação: 2024-11-12 15:07:54
cópia: 0 Cliques: 521
1
focar em
1617
Seguidores

Momentum RSI multiperíodo e tendência de EMA triplo seguindo estratégia composta

Visão geral

A estratégia é um sistema de negociação composto por uma combinação de indicadores de dinâmica RSI e tendência EMA. Funciona em dois períodos de tempo de 1 minuto e 5 minutos e toma decisões de negociação através de um sinal de sobrevenda e sobrevenda do RSI e um julgamento de tendência do EMA triplo. A estratégia inclui tanto o acompanhamento de tendências como a característica de um retorno de valor médio, capaz de capturar oportunidades de negociação em diferentes ambientes de mercado.

Princípio da estratégia

A estratégia usa o triplo EMA de 21/50/200 como referência para determinar a tendência e, em combinação com a versão modificada do RSI (calculado com o método Chebyshev), identifica o estado de sobrevenda e sobrevenda no mercado. No ciclo de 1 minuto, quando o RSI ultrapassa 94, abre a baixa, cai para a posição de equilíbrio de 4 horas e define um stop loss de garantia quando o RSI retorna a 50. No ciclo de 5 minutos, quando o preço se aproxima de 200 dias EMA e rebota, abre a alta, quando o RSI ultrapassa ou desce o valor de equilíbrio.

Vantagens estratégicas

  1. Análise de múltiplos períodos de tempo aumenta a confiabilidade do sinal
  2. Combinação de tendências e indicadores de dinâmica, vantagens complementares
  3. Dispõe de um mecanismo de suspensão de prejuízos e controlo de riscos
  4. O RSI é calculado com uma versão melhorada, o que torna o sinal mais preciso
  5. Evitar transações duplicadas através da gestão de posições
  6. Adaptação a diferentes cenários de mercado

Risco estratégico

  1. As transações frequentes podem acarretar taxas mais elevadas
  2. Pode ser frequente a ação de stop loss em mercados com forte volatilidade
  3. O RSI pode produzir falsos sinais em certas condições de mercado
  4. A estratégia de múltiplos ciclos pode ter atrasos na confirmação do sinal
  5. Sinais de cruzamento da EMA podem ser enganosos em mercados em turbulência

Direção de otimização da estratégia

  1. Introdução de filtros de taxa de flutuação para ajustar os parâmetros durante os altos flutuações
  2. Mecanismos de confirmação de volume de transações
  3. Optimizar os limites do RSI e considerar ajustes dinâmicos
  4. Adição de mais indicadores técnicos para verificação cruzada
  5. Introdução ao mecanismo de parâmetros adaptativos
  6. Desenvolvimento de mecanismos de prevenção de perdas mais sofisticados

Resumir

A estratégia melhora a estabilidade e a confiabilidade das negociações através da combinação de vários indicadores técnicos e análise de múltiplos ciclos de tempo. Embora haja um certo risco, o controle efetivo do risco pode ser alcançado através de um racional gerenciamento de posição e mecanismo de parada. O espaço para otimização da estratégia é grande e o desempenho da estratégia pode ser ainda melhorado pela introdução de mais indicadores técnicos e parâmetros de otimização.

Código-fonte da estratégia
/*backtest
start: 2023-11-12 00:00:00
end: 2024-07-10 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Combined RSI Primed and 3 EMA Strategy", overlay=true)

// Input for EMA lengths
emaLength1 = input(21, title="EMA Length 1")
emaLength2 = input(50, title="EMA Length 2")
emaLength3 = input(200, title="EMA Length 3")

// Input for RSI settings
rsiLength = input(14, title="RSI Length")
rsiOverbought = input(94, title="RSI Overbought Level")
rsiNeutral = input(50, title="RSI Neutral Level")
rsiOversold = input(4, title="RSI Oversold Level")

// Calculate EMAs
ema1 = ta.ema(close, emaLength1)
ema2 = ta.ema(close, emaLength2)
ema3 = ta.ema(close, emaLength3)

// Calculate RSI using Chebyshev method from RSI Primed
rsi(source) =>
    up = math.max(ta.change(source), 0)
    down = -math.min(ta.change(source), 0)
    rs = up / down
    rsiValue = down == 0 ? 100 : 100 - (100 / (1 + rs))
    rsiValue

rsiValue = rsi(close)

// Plot EMAs
plot(ema1, color=color.red, title="EMA 21")
plot(ema2, color=color.white, title="EMA 50")
plot(ema3, color=color.blue, title="EMA 200")

// Plot RSI for visual reference
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiNeutral, "Neutral", color=color.gray)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsiValue, color=color.blue, title="RSI")

// Trading logic with position management
var bool inPositionShort = false
var bool inPositionLong = false

// Trading logic for 1-minute timeframe
if (rsiValue > rsiOverbought and not inPositionShort)
    strategy.entry("Sell", strategy.short)
    inPositionShort := true

if (rsiValue < rsiOversold and inPositionShort)
    strategy.close("Sell")
    inPositionShort := false

if (ta.crossover(rsiValue, rsiNeutral) and inPositionShort)
    strategy.exit("Break Even", "Sell", stop=close)

// Trading logic for 5-minute timeframe
var float lastBearishClose = na

if (close < ema3 and close[1] >= ema3) // Check if the current close is below EMA200
    lastBearishClose := close

if (not na(lastBearishClose) and close > lastBearishClose and not inPositionLong)
    strategy.entry("Buy", strategy.long)
    inPositionLong := true

if (rsiValue > rsiOverbought and inPositionLong)
    strategy.close("Buy")
    inPositionLong := false

if (ta.crossunder(rsiValue, rsiNeutral) and inPositionLong)
    strategy.exit("Break Even", "Buy", stop=close)

lastBearishClose := na // Reset after trade execution