Esta estrategia es un sistema de seguimiento de tendencias basado en múltiples promedios móviles e indicador RSI. Utiliza una combinación de promedios móviles de 20, 50 y 200 períodos para analizar las tendencias del mercado a través de sus posiciones relativas, combinadas con la confirmación de RSI para señales comerciales. La estrategia incorpora objetivos dinámicos de stop-loss y ganancias con paradas de seguimiento para proteger las ganancias.
El núcleo de la estrategia radica en el análisis de las posiciones relativas de tres promedios móviles (MA20, MA50, MA200) para determinar las tendencias del mercado. La estrategia define 18 escenarios diferentes de combinación de promedios móviles, centrándose en los cruces y las posiciones relativas. Las posiciones largas se prefieren cuando los MAs a corto plazo están por encima de los MAs a largo plazo, y viceversa. Para evitar el sobrecomercio, se introduce el RSI como un filtro, permitiendo entradas largas cuando el RSI está por debajo de 70 y entradas cortas por encima de 30.
Esta es una estrategia de seguimiento de tendencias bien estructurada con lógica clara. La combinación de múltiples sistemas de promedios móviles con filtro RSI crea un sistema de negociación relativamente confiable. El mecanismo de gestión de riesgos está bien diseñado, protegiendo las ganancias a través de paradas de seguimiento sin salidas prematuras. Si bien hay espacio para la optimización, el marco general está diseñado científicamente con valor de aplicación práctica.
/*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)