Estratégia de acompanhamento de tendência EMA e RSI


Data de criação: 2023-09-26 15:39:48 última modificação: 2023-09-26 15:39:48
cópia: 0 Cliques: 978
1
focar em
1617
Seguidores

Visão geral

A estratégia aproveita as vantagens das médias móveis e dos indicadores relativamente fortes para identificar e acompanhar as tendências. Apenas dois indicadores são necessários para julgar as tendências e escolher o momento das entradas/saidas. A estratégia visa capturar as tendências de preços na linha média e longa e evitar ser enganado pelo ruído do mercado de curto prazo.

Princípio da estratégia

A estratégia usa a linha média do EMA de três períodos diferentes, EMA-A com o período mais curto, EMA-B seguido, EMA-C com o mais longo. Quando o período curto atravessa o EMA-A com o período mais longo, o preço está em uma tendência ascendente, então você pode fazer mais; ao contrário, quando o EMA-A atravessa o EMA-B, o preço se transforma em uma tendência descendente, então você pode fazer um vazio. Como um sinal de filtro de erro, ele também introduz o EMA-C com o período mais longo, só para considerar a entrada quando o preço quebra o EMA-C.

A estratégia também combina o indicador RSI para localizar o ponto de saída. Quando a posição é multi-cabeça, se o RSI cruzar a linha 70 será zero; Quando a posição é vazia, se o RSI cruzar a linha 30 será zero. Isso pode bloquear o lucro da tendência e evitar que os prejuízos se expandam ainda mais.

Análise de vantagens

  • Aproveite a EMA para identificar tendências
  • O RSI ajuda a determinar os pontos de entrada e saída
  • A estratégia é simples, basta dois indicadores.
  • Parâmetros de indicador configuráveis para ajustar livremente o estilo da política
  • Pode ser lucrativo no início, no meio e no final da tendência

Análise de Riscos

  • A reversão das grandes tendências pode produzir falsos sinais
  • Perda de velocidade em situações de tremor
  • Se os parâmetros do RSI não forem ajustados corretamente, pode ocorrer uma parada prematura.
  • A configuração do ciclo EMA requer cautela, muito curto é sensível ao ruído, muito longo perde a tendência

Pode-se reduzir esses riscos através da otimização dos parâmetros do RSI, ou adicionar condições de filtragem adicionais. Pode-se também combinar métodos de análise técnica, como tendências e resistência de suporte, para melhorar o desempenho da estratégia.

Direção de otimização

  • Optimizar os parâmetros do RSI para equilibrar o Stop Loss
  • Testar diferentes combinações de ciclos EMA
  • Confirmação de aumento de energia ou outros indicadores
  • Método de stop loss pode ser definido pela ATR
  • Pode tentar baixar posições durante a tendência
  • Otimizar o tempo de entrada, como o ponto alto/baixo anterior ou a absorção de energia
  • Consideração de um mecanismo de readmissão

Resumir

A estratégia integra o acompanhamento de tendências e os indicadores de sobrevenda e sobrevenda. Apenas dois indicadores simples são necessários para julgar e capturar a tendência. Através da otimização de parâmetros e otimização de regras, a eficácia pode ser aumentada significativamente, mantendo-se simples.

Código-fonte da estratégia
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 2h
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/
//@author Alorse

//@version=5
// strategy(title='Tendency EMA + RSI [Alorse]', shorttitle='Tendece EMA + RSI [Alorse]', overlay=true, pyramiding=0, currency=currency.USD, default_qty_type=strategy.percent_of_equity, initial_capital=1000, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.01)

// Bollinger Bands
len = input.int(14, minval=1, title='Length', group='RSI')
src = input.source(close, 'Source', group='RSI')
rsi = ta.rsi(src, len)

// Moving Averages
len_a = input.int(10, minval=1, title='EMA A Length', group='Moving Averages')
out_a = ta.ema(close, len_a)
plot(out_a, title='EMA A', color=color.purple)

len_b = input.int(20, minval=1, title='EMA B Length', group='Moving Averages')
out_b = ta.ema(close, len_b)
plot(out_b, title='EMA B', color=color.orange)

len_c = input.int(100, minval=1, title='EMA C Length', group='Moving Averages')
out_c = ta.ema(close, len_c)
plot(out_c, title='EMA B', color=color.green)

// Strategy Conditions
stratGroup = 'Strategy'
showLong = input.bool(true, title='Long entries', group=stratGroup)
showShort = input.bool(false, title='Short entries', group=stratGroup)
closeAfterXBars = input.bool(true, title='Close after X # bars', tooltip='If trade is in profit', group=stratGroup)
xBars = input.int(24, title='# bars')

entryLong = ta.crossover(out_a, out_b) and out_a > out_c and close > open
exitLong = rsi > 70

entryShort = ta.crossunder(out_a, out_b) and out_a < out_c and close < open
exitShort = rsi < 30


bought = strategy.opentrades[0] == 1 and strategy.position_size[0] > strategy.position_size[1]
entry_price = ta.valuewhen(bought, open, 0)
var int nPastBars = 0
if strategy.position_size > 0
    nPastBars := nPastBars + 1
    nPastBars
if strategy.position_size == 0
    nPastBars := 0
    nPastBars
if closeAfterXBars
    exitLong := nPastBars >= xBars and close > entry_price ? true : exitLong
    exitLong
    exitShort := nPastBars >= xBars and close < entry_price ? true : exitShort
    exitShort

// Long Entry
strategy.entry('Long', strategy.long, when=entryLong and showLong)
strategy.close('Long', when=exitLong)

// Short Entry
strategy.entry('Short', strategy.short, when=entryShort and showShort)
strategy.close('Short', when=exitShort)