Sistema de swing trading adaptativo basado en indicadores RSI duales

RSI SL TP MM ATR RR
Fecha de creación: 2024-12-13 11:57:17 Última modificación: 2024-12-13 11:57:17
Copiar: 4 Número de Visitas: 191
1
Seguir
1228
Seguidores

Sistema de swing trading adaptativo basado en indicadores RSI duales

Descripción general

La estrategia es un sistema de negociación auto-adaptativo basado en el doble RSI (indicador de la fuerza relativa). Combina los indicadores RSI de diferentes períodos de tiempo para identificar tendencias de mercado y oportunidades de negociación, y optimiza el rendimiento de las transacciones a través de mecanismos de gestión de fondos y control de riesgos. El núcleo de la estrategia consiste en mejorar la rentabilidad a través de la sincronización de los RSI de varios períodos, al tiempo que garantiza la seguridad de las transacciones.

Principio de estrategia

La estrategia utiliza el indicador RSI de 7 ciclos como su principal señal de negociación, combinado con el RSI diurno como un filtro de tendencia. Cuando el RSI de corto período se rompe por debajo de 40 y el RSI diurno es mayor que 55, el sistema emite más señales. Si el precio cae por debajo del precio de la primera posición durante la tenencia de la posición, el sistema aumenta automáticamente la posición para reducir el costo promedio.

Ventajas estratégicas

  1. La combinación del RSI de varios períodos mejora la fiabilidad de la señal
  2. Dispone de un mecanismo de acumulación de depósitos adaptativo, que puede reducir de manera efectiva el costo de mantenimiento de las posiciones
  3. Un sistema de gestión de fondos que ajusta automáticamente las posiciones según las preferencias de riesgo
  4. Protección contra pérdidas fijas y control estricto del riesgo en cada transacción
  5. Se toma en cuenta el costo de la transacción y se ajusta mejor al entorno real de la transacción.

Riesgo estratégico

  1. El RSI puede generar falsas señales en mercados con fuertes fluctuaciones
  2. El mecanismo de acondicionamiento puede causar grandes pérdidas en una situación de caída continua.
  3. El porcentaje fijo de pérdidas puede ser demasiado conservador en períodos de alta volatilidad
  4. Los costos de las transacciones pueden afectar significativamente a los ingresos cuando se negocian con frecuencia
  5. La implementación de una estrategia de apoyo a la liquidez adecuada

Dirección de optimización de la estrategia

  1. Introducir un indicador de volatilidad (como ATR) para ajustar dinámicamente la posición de parada
  2. Aumentar los filtros de intensidad de tendencia para reducir las falsas señales en los mercados de oscilación
  3. Optimización de la lógica de la hipoteca y ajuste dinámico para la volatilidad del mercado
  4. Añadir señales de confirmación de RSI para más períodos de tiempo
  5. Desarrollo de un sistema de gestión de posiciones adaptativo

Resumir

Se trata de un sistema de negociación completo que combina análisis técnico y gestión de riesgos. La estrategia es adecuada para operar en mercados con tendencias evidentes, pero requiere la optimización de los parámetros en función de las condiciones reales del mercado.

Código Fuente de la Estrategia
/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Dual RSI with Rebuy Logic + Capital, Commission, and Stop Loss", overlay=true)

// Parameter
rsi_length = input.int(7, title="RSI Length")
daily_rsi_length = input.int(7, title="Daily RSI Length")
capital = input.float(10000, title="Initial Capital", minval=0)  // Kapital
risk_per_trade = input.float(0.01, title="Risk per Trade (%)", minval=0.01, maxval=1.0)  // Risikogröße in Prozent
commission = input.float(0.1, title="Commission (%)", minval=0, maxval=100)  // Kommission in Prozent
stop_loss_pct = input.float(5, title="Stop Loss (%)", minval=0.1, maxval=100)  // Stop-Loss in Prozent

// Ordergröße berechnen
risk_amount = capital * risk_per_trade
order_size = risk_amount / close  // Größe der Order basierend auf Risikogröße und Preis

// Daily RSI
day_rsi = request.security(syminfo.tickerid, "D", ta.rsi(close, daily_rsi_length), lookahead=barmerge.lookahead_on)

// RSI auf aktuellem Timeframe
rsi = ta.rsi(close, rsi_length)

// Kauf- und Verkaufsbedingungen
buy_condition = rsi[1] < 40 and rsi > rsi[1] and day_rsi > 55
sell_condition = rsi[1] > 60 and rsi < rsi[1]

// Variablen, um den Preis des ersten Kaufs zu speichern
var float first_buy_price = na
var bool is_position_open = false

// Kauf-Logik
if buy_condition
    if not is_position_open
        // Initiales Kaufsignal
        strategy.entry("Buy", strategy.long, qty=1)
        first_buy_price := close
        is_position_open := true
    else if close < first_buy_price
        // Rebuy-Signal, nur wenn Preis niedriger als erster Kaufpreis
        strategy.entry("Rebuy", strategy.long, qty=1)

// Verkaufs-Logik
if sell_condition and is_position_open
    strategy.close("Buy")
    strategy.close("Rebuy")
    first_buy_price := na  // Zurücksetzen des Kaufpreises
    is_position_open := false

// Stop-Loss-Bedingung
if is_position_open
    // Stop-Loss-Preis berechnen (5% unter dem Einstiegspreis)
    stop_loss_price = first_buy_price * (1 - stop_loss_pct / 100)
    
    // Stop-Loss für "Buy" und "Rebuy" festlegen
    strategy.exit("Stop Loss Buy", from_entry="Buy", stop=stop_loss_price)
    strategy.exit("Stop Loss Rebuy", from_entry="Rebuy", stop=stop_loss_price)

// Performance-Metriken berechnen (mit Kommission)
gross_profit = strategy.netprofit / capital * 100
commission_cost = commission / 100 * strategy.closedtrades
net_profit = gross_profit - commission_cost

// Debug-Plots
plot(first_buy_price, title="First Buy Price", color=color.blue, linewidth=1)
plotchar(buy_condition, title="Buy Condition", char='B', location=location.abovebar, color=color.green)
plotchar(sell_condition, title="Sell Condition", char='S', location=location.belowbar, color=color.red)

// Debugging für Performance