En la carga de los recursos... Cargando...

Estrategia optimizada de la relación riesgo-recompensa basada en el cruce de la media móvil

El autor:¿ Qué pasa?, Fecha: 2024-12-27 15:46:05
Las etiquetas:- ¿Qué es?La SMARRSLTP

img

Resumen general

Esta estrategia es un sistema de negociación automatizado basado en señales de cruce de promedio móvil, optimizado a través de una relación riesgo-recompensa fija.

Principio de la estrategia

La lógica central se basa en señales de cruce generadas por dos promedios móviles (10 períodos y 30 períodos). El sistema genera señales largas cuando el MA rápido cruza por encima del MA lento, y señales cortas cuando el MA rápido cruza por debajo. Después de cada entrada, el sistema calcula automáticamente los niveles de stop-loss basados en un porcentaje de pérdida preestablecido del 2% y establece objetivos de toma de ganancias de acuerdo con una relación riesgo-recompensación de 2.5. Este enfoque asegura que cada operación tenga características de riesgo-recompensación consistentes.

Ventajas estratégicas

  1. Gestión sistemática del riesgo: logra una gestión de capital estandarizada mediante porcentajes fijos de stop-loss y ratios riesgo-recompensación
  2. Mecanismo de negociación objetivo: sistema de señales basado en cruces de MA elimina el sesgo subjetivo de juicio
  3. Una gran adaptabilidad de parámetros: los parámetros clave como el porcentaje de pérdida de parada y la relación riesgo-recompensación se pueden ajustar de manera flexible.
  4. Alto nivel de automatización: los procesos automatizados desde la generación de señales hasta la gestión de la posición reducen el error humano

Riesgos estratégicos

  1. Riesgo de mercado alterado: las señales cruzadas de MA pueden generar frecuentes falsas rupturas en mercados variables
  2. Riesgo de deslizamiento: los precios de ejecución reales pueden desviarse significativamente de los precios de señal en mercados de rápido movimiento.
  3. El riesgo de pérdida fija: el porcentaje único de pérdida fija puede no ser adecuado para todas las condiciones de mercado.
  4. Costos de la Comisión: las operaciones frecuentes pueden resultar en altos costes de transacción

Direcciones para la optimización de la estrategia

  1. Implementar filtros de tendencia: agregar promedios móviles de período más largo u otros indicadores de tendencia para filtrar señales falsas
  2. Mecanismo dinámico de suspensión de pérdidas: ajustar los porcentajes de suspensión de pérdidas en función de la volatilidad del mercado para una mejor adaptabilidad
  3. Confirmación del volumen: Incorporar indicadores de volumen para verificar la validez de la ruptura
  4. Optimización del tiempo de entrada: espere los retrocesos después de los cruces de MA antes de ingresar a las posiciones

Resumen de las actividades

Esta estrategia combina métodos clásicos de análisis técnico con conceptos modernos de gestión de riesgos para construir un sistema de negociación completo. Aunque tiene ciertas limitaciones, la optimización y mejora continua permiten que la estrategia mantenga un rendimiento estable en diferentes condiciones de mercado. La clave radica en ajustar constantemente los parámetros basados en los resultados reales de negociación para encontrar la configuración más adecuada para el entorno actual del mercado.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SOL 15m 2.5 R:R Strategy", overlay=true, margin_long=100, margin_short=100, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1)

//---------------------------------------------------
// User Inputs
//---------------------------------------------------
// sym = input.symbol("swap", "Symbol")
timeframe = input.timeframe("15", "Timeframe")

fastLength  = input.int(10, "Fast MA Length")
slowLength  = input.int(30, "Slow MA Length")

stopLossPerc = input.float(2.0, "Stop Loss %", step=0.1) // This is an example; adjust to achieve ~45% win rate
RR           = input.float(2.5, "Risk to Reward Ratio", step=0.1)

//---------------------------------------------------
// Data Sources
//---------------------------------------------------
price = request.security("swap", timeframe, close)

// Compute moving averages
fastMA = ta.sma(price, fastLength)
slowMA = ta.sma(price, slowLength)

// Entry Conditions
longCondition  = ta.crossover(fastMA, slowMA)
shortCondition = ta.crossunder(fastMA, slowMA)

//---------------------------------------------------
// Stop Loss and Take Profit Calculation
//---------------------------------------------------
var entryPrice = 0.0

if (strategy.position_size == 0) // not in a position
    if longCondition
        // Long entry
        entryPrice := price
        strategy.entry("Long", strategy.long)

    if shortCondition
        // Short entry
        entryPrice := price
        strategy.entry("Short", strategy.short)

if strategy.position_size > 0
    // We are in a long position
    if strategy.position_avg_price > 0 and strategy.position_size > 0
        longStop  = strategy.position_avg_price * (1 - stopLossPerc/100)
        longTarget = strategy.position_avg_price * (1 + (stopLossPerc/100)*RR)
        strategy.exit("Long Exit", "Long", stop=longStop, limit=longTarget)

if strategy.position_size < 0
    // We are in a short position
    if strategy.position_avg_price > 0 and strategy.position_size < 0
        shortStop  = strategy.position_avg_price * (1 + stopLossPerc/100)
        shortTarget = strategy.position_avg_price * (1 - (stopLossPerc/100)*RR)
        strategy.exit("Short Exit", "Short", stop=shortStop, limit=shortTarget)

//---------------------------------------------------
// Plotting
//---------------------------------------------------
plot(fastMA, color=color.new(color.teal, 0), title="Fast MA")
plot(slowMA, color=color.new(color.orange, 0), title="Slow MA")


Relacionados

Más.