Estrategia de trading con seguimiento de tendencias RSI de redes neuronales dinámicas

SMA RSI
Fecha de creación: 2025-01-17 14:19:08 Última modificación: 2025-01-17 14:19:08
Copiar: 3 Número de Visitas: 462
1
Seguir
1617
Seguidores

Estrategia de trading con seguimiento de tendencias RSI de redes neuronales dinámicas

Descripción general

Esta estrategia es un sistema de trading cuantitativo basado en media móvil, indicador RSI y trailing stop loss. Combina el seguimiento de tendencias e indicadores de impulso en el análisis técnico para lograr transacciones con control de riesgo mediante el establecimiento de condiciones estrictas de entrada y salida. La lógica central de la estrategia es buscar oportunidades de sobreventa para ingresar al mercado en una tendencia alcista y utilizar trailing stop loss para proteger las ganancias.

Principio de estrategia

La estrategia utiliza el promedio móvil simple (SMA) de 200 días como base para juzgar la tendencia y lo combina con el índice de fuerza relativa (RSI) para generar señales comerciales. Específicamente:

  1. Utilice el promedio móvil de 200 días para determinar la tendencia general y solo considere comprar cuando el precio esté por encima del promedio móvil.
  2. Cuando el RSI cae por debajo del umbral preestablecido (predeterminado 40), se considera una señal de sobreventa.
  3. Cuando se cumplen ambas condiciones anteriores y ha transcurrido el período de espera (predeterminado 10 días) desde que se cerró la última posición, se activa una señal larga.
  4. Proteger dinámicamente las ganancias durante la posición manteniendo el stop loss (valor predeterminado: 5 %)
  5. Cuando el precio cae por debajo del precio del stop loss dinámico o cae por debajo del promedio móvil de 200 días, cierre la posición.

Ventajas estratégicas

  1. Combine el filtrado doble de tendencias y de impulso para mejorar la precisión de las operaciones
  2. El uso del mecanismo de seguimiento de stop loss puede bloquear las ganancias de manera efectiva
  3. Establezca intervalos de transacción para evitar transacciones frecuentes
  4. Los parámetros son altamente ajustables para adaptarse a diferentes entornos de mercado.
  5. La lógica de la transacción es clara, fácil de entender y ejecutar.
  6. Cálculo sencillo y alta eficiencia operativa.

Riesgo estratégico

  1. Los rezagos en las medias móviles pueden provocar retrasos en las señales de entrada y salida
  2. El indicador RSI puede generar señales falsas en un mercado volátil
  3. Los trailing stops de porcentaje fijo pueden no ser adecuados para todas las condiciones del mercado
  4. La optimización de parámetros puede provocar sobreajuste
  5. Puede sufrir grandes caídas en mercados volátiles

Dirección de optimización de la estrategia

  1. Presentamos el porcentaje de trailing stop adaptable a la volatilidad
  2. Añadir indicador de volumen como confirmación auxiliar
  3. Utilice un promedio móvil exponencial en lugar de un promedio móvil simple para mejorar la sensibilidad
  4. Agregue indicadores de sentimiento del mercado para optimizar las oportunidades comerciales
  5. Desarrollar un mecanismo de optimización de parámetros dinámicos
  6. Se agregó un mecanismo de confirmación de estrategia de múltiples períodos

Resumir

Se trata de una estrategia de trading cuantitativa con una estructura completa y una lógica clara. Combina múltiples indicadores técnicos para conseguir rendimientos estables controlando los riesgos. Si bien hay margen para la optimización, el marco básico tiene buena practicidad y escalabilidad. La estrategia es adecuada para inversores a medio y largo plazo y tiene buena adaptabilidad a diferentes entornos de mercado.

Código Fuente de la Estrategia
/*backtest
start: 2025-01-09 00:00:00
end: 2025-01-16 00:00:00
period: 15m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy("200 SMA Crossover Strategy", overlay=false)

// Define inputs
smaLength = input.int(200, title="SMA Length")
rsiLength = input.int(14, title="RSI Length")
rsiThreshold = input.float(40, title="RSI Threshold")
trailStopPercent = input.float(5.0, title="Trailing Stop Loss (%)")
waitingPeriod = input.int(10, title="Waiting Period (Days)")

// Calculate 200 SMA
sma200 = ta.sma(close, smaLength)

// Calculate RSI
rsi = ta.rsi(close, rsiLength)

// Plot the 200 SMA and RSI
plot(sma200, color=color.blue, linewidth=2, title="200 SMA")
plot(rsi, color=color.purple, title="RSI", display=display.none)

// Define buy and sell conditions
var isLong = false
var float lastExitTime = na
var float trailStopPrice = na

// Explicitly declare timeSinceExit as float
float timeSinceExit = na(lastExitTime) ? na : (time - lastExitTime) / (24 * 60 * 60 * 1000)
canEnter = na(lastExitTime) or timeSinceExit > waitingPeriod

buyCondition = close > sma200 and rsi < rsiThreshold and canEnter

if (buyCondition and not isLong)
    strategy.entry("Buy", strategy.long)
    trailStopPrice := na
    isLong := true

// Update trailing stop loss if long
if (isLong)
    trailStopPrice := na(trailStopPrice) ? close * (1 - trailStopPercent / 100) : math.max(trailStopPrice, close * (1 - trailStopPercent / 100))

// Check for trailing stop loss or sell condition
if (isLong and (close < trailStopPrice or close < sma200))
    strategy.close("Buy")
    lastExitTime := time
    isLong := false

// Plot buy and sell signals
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=(isLong and close < trailStopPrice) or close < sma200, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")