
A estratégia de filtragem dupla RSI e EMA é uma estratégia de negociação quantitativa baseada em indicadores relativamente fracos (RSI) e médias móveis indexadas (EMA). A estratégia usa o indicador RSI para avaliar os excessos de compra e venda do mercado, combinando a tendência de entrada e saída das duas linhas EMA. A filtragem dupla RSI e EMA pode reduzir os falsos sinais e melhorar a estabilidade e a lucratividade da estratégia.
Os princípios centrais da estratégia podem ser divididos nas seguintes partes:
O cálculo e a aplicação do indicador RSI: a estratégia primeiro calcula um indicador RSI de um ciclo personalizado (default 2). Quando o RSI é inferior ao limiar de oversold (default 10), indica que o mercado está em um estado de oversold e pode ser considerado overbought; Quando o RSI é superior ao limiar de oversold (default 90), indica que o mercado está em um estado de oversold e pode ser considerado short.
A estratégia calcula duas linhas de EMA, uma é a linha lenta (de 200) e outra é a linha rápida (de 50). Quando a linha rápida está acima da linha lenta e o preço está acima da linha lenta, o mercado é considerado em alta tendência; ao contrário, quando a linha rápida está abaixo da linha lenta e o preço está abaixo da linha lenta, o mercado é considerado em baixa tendência.
Filtragem de tendências: a estratégia oferece uma opção de filtragem de tendências. Se essa opção for ativada, as posições excedentárias serão abertas somente quando o RSI for sobrevendido, e as posições vazias serão abertas quando o RSI for sobrecomprado. Isso reduz ainda mais o risco de negociação contrária.
Confirmação de sinais de negociação: a estratégia analisa os resultados do RSI e do julgamento da tendência EMA para produzir um sinal de negociação final. Em uma tendência de alta, abra uma posição quando o RSI estiver abaixo da barreira de venda; em uma tendência de baixa, abra uma posição quando o RSI estiver acima da barreira de compra.
Gerenciamento de posição: a estratégia usa o mínimo intervalo de negociação (default 5 minutos) para controlar a frequência de negociação e evitar o excesso de negociação. Ao mesmo tempo, a estratégia usa a combinação de tracking stop loss e stop loss fixo para gerenciar o risco, permitindo que os lucros sejam continuados e os perdas sejam controladas efetivamente.
A estratégia de dupla filtragem RSI e EMA tem as seguintes vantagens:
Forte capacidade de acompanhamento de tendências: através de um rápido e lento de EMA linha de tendências de julgamento, a estratégia pode efetivamente capturar as principais tendências do mercado, evitando a frequência de negociação em mercados de turbulência.
Filtração eficaz de falsos sinais: O indicador RSI é propenso a produzir mais falsos sinais, especialmente em mercados onde a tendência não é clara. E o filtro de tendência EMA pode identificar efetivamente as principais tendências e reduzir os falsos sinais gerados pelo RSI.
Gerenciamento de risco perfeito: a estratégia usa uma combinação de tracking stop loss e stop loss fixo, permitindo a plena continuidade dos lucros e o controle efetivo das perdas. Esta forma de gerenciamento de risco pode melhorar a estabilidade da estratégia e a capacidade de controle de retirada.
Flexibilidade de parâmetros: A estratégia oferece vários parâmetros para o usuário ajustar, como o ciclo RSI, o limiar de sobrevenda, o ciclo EMA, a taxa de parada, etc. Isso permite que a estratégia se adapte flexivelmente a diferentes ambientes de mercado e hábitos de negociação.
Embora o RSI e a estratégia de dupla filtragem da EMA tenham boas vantagens, existem alguns riscos potenciais:
Risco de reversão de tendência: A linha EMA pode ficar para trás quando a tendência do mercado se reverte, fazendo com que a estratégia perca o melhor momento de entrada ou atrase a saída.
Risco de otimização de parâmetros: o desempenho da estratégia é sensível à configuração de parâmetros, e diferentes combinações de parâmetros podem levar a resultados completamente diferentes. Se os parâmetros forem otimizados em excesso, isso pode levar à estratégia a não ter um bom desempenho no mercado futuro.
Risco de evento de cisne negro: a estratégia é retrospectiva e otimizada com base em dados históricos, mas os dados históricos não refletem completamente os eventos extremos que podem ocorrer no futuro. Uma vez que um evento de cisne negro ocorre, a estratégia pode sofrer grandes perdas.
Para combater esses riscos, as seguintes soluções podem ser consideradas:
Em combinação com outros indicadores técnicos ou padrões de comportamento de preços para auxiliar na determinação de uma mudança de tendência e fazer ajustes antecipados.
Optimização de parâmetros com moderação, evitando o excesso de ajuste de dados históricos. Ao mesmo tempo, revisão e ajuste de parâmetros regularmente, adaptando-se às últimas características do mercado.
Estabelecer um limite razoável de stop loss e controlar o máximo de perdas de uma única transação. Ao mesmo tempo, controlar o risco no nível do portfólio, como investimentos diversificados, controle de posição, etc.
Introdução de mais indicadores técnicos: Com base nos indicadores RSI e EMA existentes, pode-se introduzir mais indicadores técnicos eficazes, como MACD, Brinks, etc., para melhorar a precisão e a estabilidade do sinal da estratégia.
Otimização de métodos de determinação de tendências: além de usar a linha EMA para determinar as tendências, também é possível explorar outros métodos de determinação de tendências, como o método de ponto alto e baixo, o sistema de linha uniforme, etc. A combinação de vários métodos de determinação de tendências pode melhorar a adequação da estratégia.
Melhorar os métodos de gestão de risco: Com base nos métodos de gestão de risco mais avançados, como o tracking stop e o stop fixo, os métodos de gestão de risco mais avançados podem ser introduzidos, como o stop flutuante, o stop dinâmico, etc. Estes métodos podem se adaptar melhor às mudanças na volatilidade do mercado, o que permite um melhor controle do risco.
Adição de módulo de gerenciamento de posição: a estratégia atual adota a forma de posições fixas. Pode considerar a introdução de módulos de gerenciamento de posição dinâmicos, ajustando dinamicamente as posições de acordo com a volatilidade do mercado, os interesses das contas e outros fatores, aumentando a eficiência do uso de fundos.
Adaptação a vários mercados e variedades: estende a estratégia para mais mercados e variedades de negociação, reduzindo o risco global por meio da diversificação dos investimentos. Ao mesmo tempo, é possível estudar as correlações entre diferentes mercados e variedades, utilizando essa informação para otimizar a distribuição de ativos da estratégia.
A estratégia de dupla filtragem RSI e EMA capta as tendências do mercado com uma combinação orgânica de indicadores relativamente fortes e médias móveis do índice, reduzindo ao mesmo tempo o problema de que os indicadores RSI são propensos a falsos sinais. A lógica da estratégia é clara e inclui medidas de gerenciamento de risco completas, com boa estabilidade e potencial de lucro. No entanto, a estratégia também apresenta alguns riscos potenciais, como risco de reversão de tendência, risco de otimização de parâmetros e risco de eventos de cisne negro.
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("RSI2", overlay=true)
// RSILength input
len = input(2, minval=1, title="RSILength")
// Threshold RSI up input
RSIthreshUP = input(90, title="Threshold RSI up")
// Threshold RSI down input
RSIthreshDWN = input(10, title="Threshold RSI down")
// Slow MA length input
mmlen = input(200, title="Slow MA len")
// Fast MA length input
mmflen = input(50, title="Fast MA len")
// Moving Average type input
machoice = input("EMA", defval="EMA", options=["SMA", "EMA"])
// Ticker size input
tick=input(0.5,title="Ticker size",type=input.float)
// Trend Filter input
filter=input(true,title="Trend Filter",type=input.bool)
// Trailing Stop percentage input
ts_percent = input(1, title="TrailingStop%")
// Stop Loss percentage input
sl_percent = input(0.3, title="Stop Loss %")
// Calculate RSI
src = close
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
// Calculate moving averages
mmslow = machoice == "SMA" ? sma(close, mmlen) : ema(close, mmlen)
mmfast = machoice == "SMA" ? sma(close, mmflen) : ema(close, mmflen)
// Plot moving averages
plot(mmslow, color=color.white)
plot(mmfast, color=color.yellow)
// Conditions for entry and exit
var lastLongEntryTime = 0
var lastShortEntryTime = 0
ConditionEntryL = if filter == true
mmfast > mmslow and close > mmslow and rsi < RSIthreshDWN
else
mmfast > mmslow and rsi < RSIthreshDWN
ConditionEntryS = if filter == true
mmfast < mmslow and close < mmslow and rsi > RSIthreshUP
else
mmfast < mmslow and rsi > RSIthreshUP
// Calculate trailing stop and stop loss
ts_calc = close * (1/tick) * ts_percent * 0.01
sl_price = close * (1 - sl_percent / 100)
// Entry and exit management
if ConditionEntryL and time - lastLongEntryTime > 1000 * 60 * 5 // 5 minutes
strategy.entry("RSILong", strategy.long)
lastLongEntryTime := time
if ConditionEntryS and time - lastShortEntryTime > 1000 * 60 * 5 // 5 minutes
strategy.entry("RSIShort", strategy.short)
lastShortEntryTime := time
lastLongEntryTimeExpired = time - lastLongEntryTime >= 1000 * 60 * 5
lastShortEntryTimeExpired = time - lastShortEntryTime >= 1000 * 60 * 5
strategy.exit("ExitLong", "RSILong", when=lastLongEntryTimeExpired, trail_points=0, trail_offset=ts_calc, stop=sl_price)
strategy.exit("ExitShort", "RSIShort", when=lastShortEntryTimeExpired, trail_points=0, trail_offset=ts_calc, stop=sl_price)