Esta estratégia é um sistema de seguimento de tendências baseado em múltiplas médias móveis e indicador RSI. Utiliza uma combinação de médias móveis de 20, 50 e 200 períodos para analisar as tendências do mercado através de suas posições relativas, combinadas com confirmação RSI para sinais comerciais.
O núcleo da estratégia consiste em analisar as posições relativas de três médias móveis (MA20, MA50, MA200) para determinar as tendências do mercado. A estratégia define 18 cenários diferentes de combinação de médias móveis, com foco em crossovers e posições relativas. As posições longas são preferidas quando os MAs de curto prazo estão acima dos MAs de longo prazo e vice-versa. Para evitar o excesso de negociação, o RSI é introduzido como um filtro, permitindo entradas longas quando o RSI está abaixo de 70 e entradas curtas acima de 30. A estratégia emprega uma relação risco-recompensa de 1:10 com uma parada de 25 pontos para proteger os lucros.
A combinação de múltiplos sistemas de média móvel com filtragem de RSI cria um sistema de negociação relativamente confiável. O mecanismo de gerenciamento de risco é bem projetado, protegendo os lucros através de paradas de trailers sem saídas prematuras.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Refined MA Strategy with Trailing Stop for 30m", overlay=true) // Define the moving averages TR20 = ta.sma(close, 20) TR50 = ta.sma(close, 50) TR200 = ta.sma(close, 200) // Define the RSI for additional filtering rsi = ta.rsi(close, 14) // Define the scenarios scenario1 = TR20 > TR50 and TR50 > TR200 scenario2 = TR50 > TR20 and TR20 > TR200 scenario3 = TR200 > TR50 and TR50 > TR20 scenario4 = TR50 > TR200 and TR200 > TR20 scenario5 = TR20 > TR200 and TR200 > TR50 scenario6 = TR200 > TR20 and TR20 > TR50 scenario7 = TR20 == TR50 and TR50 > TR200 scenario8 = TR50 == TR20 and TR20 > TR200 scenario9 = TR200 == TR50 and TR50 > TR20 scenario10 = TR20 > TR50 and TR50 == TR200 scenario11 = TR50 > TR20 and TR20 == TR200 scenario12 = TR20 > TR50 and TR50 == TR200 scenario13 = TR20 == TR50 and TR50 == TR200 scenario14 = TR20 > TR50 and TR200 == TR50 scenario15 = TR50 > TR20 and TR200 == TR50 scenario16 = TR20 > TR50 and TR50 == TR200 scenario17 = TR20 > TR50 and TR50 == TR200 scenario18 = TR20 > TR50 and TR50 == TR200 // Entry conditions longCondition = (scenario1 or scenario2 or scenario5) and rsi < 70 shortCondition = (scenario3 or scenario4 or scenario6) and rsi > 30 // Execute trades based on scenarios with 50 points stop loss and 1:10 RR, using a trailing stop of 25 points if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Take Profit", from_entry="Long", limit=close + 250, trail_offset=25) if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Take Profit", from_entry="Short", limit=close - 250, trail_offset=25)