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

Tendencia cruzada de la media móvil dinámica siguiendo una estrategia con gestión adaptativa del riesgo

El autor:¿ Qué pasa?, fecha: 2024-12-27 15:08:40
Las etiquetas:La SMA- ¿Qué es?TPSL

img

Resumen general

Esta estrategia es un sistema de seguimiento de tendencias basado en señales cruzadas de promedio móvil dual, que incorpora un mecanismo dinámico de toma de ganancias y stop-loss. Utiliza promedios móviles simples (SMA) de 5 períodos y 12 períodos para generar señales comerciales, optimizando la relación riesgo-recompensación a través del ajuste dinámico de los niveles de toma de ganancias y stop-loss.

Principios de estrategia

La lógica central se basa en la relación de cruce entre los promedios móviles rápidos (5 períodos) y lentos (12-períodos). Una señal de compra se genera cuando el MA rápido cruza por encima del MA lento, mientras que las posiciones se cierran cuando el MA rápido cruza por debajo del MA lento. La singularidad de la estrategia radica en su mecanismo dinámico de gestión de riesgos: después de la entrada de la posición, el sistema monitorea continuamente el movimiento de los precios y ajusta dinámicamente los niveles de take-profit y stop-loss para maximizar las ganancias mientras controla el riesgo.

Ventajas estratégicas

  1. Utiliza una estrategia clásica de cruce de dos MA con señales claras, fáciles de entender y ejecutar
  2. Mecanismo dinámico de obtención de beneficios/detención de pérdidas que protege eficazmente los beneficios obtenidos y previene los retiros
  3. Los parámetros de la estrategia pueden ajustarse de forma flexible a las diferentes características del mercado
  4. El mecanismo integral de gestión de riesgos controla eficazmente el riesgo del comercio único
  5. Una estructura de código clara facilita el mantenimiento y la optimización

Riesgos estratégicos

  1. Puede generar señales falsas en mercados variados, lo que conduce a operaciones frecuentes
  2. Posibilidad de extracciones significativas en escenarios de reversión rápida
  3. La configuración incorrecta de los parámetros puede afectar el rendimiento de la estrategia
  4. Las emisiones de liquidez de mercado pueden afectar a la ejecución de las operaciones de stop loss Recomendaciones para la gestión de riesgos:
  • Añadir filtros de tendencia
  • Optimiza la selección de parámetros
  • Seguimiento de la liquidez del mercado en tiempo real
  • Establecer un sistema integral de gestión del dinero

Direcciones de optimización

  1. Introducción de indicadores de fuerza de tendencia para filtrar las señales de mercado de rango
  2. Considere la posibilidad de incorporar factores de volumen para mejorar la fiabilidad de la señal
  3. Optimizar los parámetros de toma de ganancias/detención de pérdidas para mejorar la relación riesgo-beneficio
  4. Mecanismo de adaptación a la volatilidad del mercado
  5. Mejorar el sistema de dimensionamiento de la posición

Resumen de las actividades

Esta estrategia captura de manera efectiva las tendencias y controla el riesgo de manera dinámica mediante la combinación de señales de cruce de promedios móviles clásicos con la gestión de riesgos dinámicos innovadores.


/*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=6
strategy("My Moving Average Crossover Strategy with Take Profit and Stop Loss", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
//risk_free_rate = float(request.security("IRUS", "D", close)/request.security("IRUS", "D", close[1]) - 1  ))




// MA periods
fastLength = input.int(5, title="Fast MA Length")
slowLength = input.int(12, title="Slow MA Length")




// Take Profit and Stop Loss
takeProfitLevel = input(10, title="Take Profit (пункты)") // Take profit % from the last price
stopLossLevel = input(5, title="Stop Loss (пункты)") // Stop loss  % from the last price
takeProfitLevel_dyn = input(20, title="Dynamic Take Profit (пункты)") // Move TP if current_price higher buy_px
stopLossLevel_dyn =  input(2.5, title="Dynamic Stop Loss (пункты)") // S Move SL if current_price higher buy_px


// Вычисление скользящих средних
fastMA = ta.sma(close, fastLength)
slowMA= ta.sma(close, slowLength)


// Conditions for Sell and Buy
longCondition = ta.crossover (fastMA, slowMA) // покупаем, если короткая MA персекает длинную снизу-вверх
shortCondition = ta.crossunder(fastMA, slowMA) // продаем, если короткая MA персекает длинную сверху-вниз




// Buy position condition
if (longCondition)
    strategy.entry("Buy", strategy.long)






// Dynamic TP SL leveles
takeProfitPrice = strategy.position_avg_price * (1+ takeProfitLevel / 100)
stopLossPrice = strategy.position_avg_price * (1-stopLossLevel / 100)


entryPrice = strategy.position_avg_price




if (strategy.position_size > 0) // если есть открытая позиция




    // takeProfitPrice := entryPrice * (1+ takeProfitLevel / 100)
    // stopLossPrice := entryPrice * (1-stopLossLevel / 100)


    // // Перемещение Stop Loss и Take Profit
    if (close > entryPrice)
   
        takeProfitPrice := close * (1+ takeProfitLevel_dyn / 100)
        stopLossPrice := close * (1- stopLossLevel_dyn/ 100)






if (shortCondition)
    strategy.close("Buy")




strategy.exit("Take Profit/Stop loss", "Buy", limit=takeProfitPrice, stop=stopLossPrice)


// Drawing MA lines
plot(fastMA, color=color.blue, title="Fast Moving Average")
plot(slowMA, color=color.orange, title="Slow Moving Average")




// Визуализация
plot(longCondition ? na : takeProfitPrice, title="Take Profit Level", color=color.green, linewidth=1, style=plot.style_line)
plot(longCondition ? na: stopLossPrice, title="Stop Loss Level", color=color.red, linewidth=1, style=plot.style_line)







Relacionados

Más.