Estrategia de suspensión de pérdidas de media móvil doble

El autor:¿ Qué pasa?, fecha: 2023-11-15 15:44:48
Las etiquetas:

img

Resumen general

Esta estrategia es una estrategia de stop loss basada en promedios móviles duales. Utiliza dos promedios móviles, uno como promedio móvil principal y otro como línea de stop loss. Cuando el precio está por encima del promedio móvil principal, vaya largo. Cuando el precio está por debajo de la línea de stop loss, cierre la posición larga. Cuando el precio está por debajo del promedio móvil principal, vaya corto. Cuando el precio está por encima de la línea de stop loss, cierre la posición corta. Logra stop loss y obtener ganancias ajustando dinámicamente los precios largo y corto.

Estrategia lógica

Esta estrategia utiliza la función sma para calcular el promedio móvil simple de longitud len como la línea principal de promedio móvil ma. Luego, según el porcentaje de pérdida de parada larga elpercent y el porcentaje de pérdida de parada corta espercent de entrada del usuario, calcula la línea de pérdida de parada larga el y la línea de pérdida de parada corta es. Las fórmulas específicas son:

el = ma + (ma * elpercento / 100) es = ma + (ma * espercento / 100)

Donde elpercent y espercent representan el porcentaje desplazado de la línea media móvil principal.

Esto nos da tres líneas: la media móvil principal ma, larga línea de stop loss el, y corta línea de stop loss es.

La lógica de negociación de la estrategia es:

Si el precio de cierre está por encima de la línea de stop-loss largo el, abrir una posición larga.

Si el precio de cierre está por debajo de la línea de stop-loss corta es, abra una posición corta.

Ventajas de la estrategia

  1. El uso de medias móviles duales para establecer puntos de stop loss y take profit puede controlar los riesgos de manera efectiva.

  2. La longitud de la media móvil principal len y los porcentajes de desplazamiento elpercent y espercent son personalizables, que pueden ajustarse para diferentes mercados y adaptarse bien.

  3. El mecanismo de stop loss puede reducir las pérdidas en el tiempo y evitar nuevas pérdidas.

  4. La lógica de la estrategia es simple y clara, fácil de entender e implementar, adecuada para principiantes.

  5. Se puede ir tanto largo como corto para aprovechar los mercados de dos vías.

Riesgos y soluciones

  1. El riesgo de sobreajuste de pruebas de retroceso. Las estrategias de promedio móvil tienden a sobreajustar los datos de pruebas de retroceso. El rendimiento real puede diferir. La solución es verificar en mercados en vivo complejos y ajustar los parámetros en consecuencia.

  2. Si el stop loss está demasiado cerca de la media móvil principal, puede desencadenarse por fluctuaciones de precios a corto plazo.

  3. La presión de capital de la negociación bidireccional. Ir largo y corto requiere suficiente margen. Reducir el tamaño de la posición para controlar la presión de capital.

  4. El riesgo de optimización de parámetros. Los parámetros óptimos varían mucho en diferentes condiciones del mercado. Se necesita tiempo para optimizar los parámetros. Puede utilizar el aprendizaje automático para ayudar a la optimización de parámetros.

Direcciones de optimización

  1. Considere la posibilidad de añadir más indicadores para determinar la tendencia del mercado y mejorar las decisiones, por ejemplo, el indicador de precios por volumen, el indicador de volatilidad.

  2. Investigación de la optimización automática de la longitud media móvil y los parámetros de stop loss basados en los cambios del mercado.

  3. Añadir filtrado en los instrumentos de negociación, sólo las tendencias obvias.

  4. Considere la posibilidad de realizar un stop loss trasero en lugar de un stop loss fijo, ajustando los stop basándose en los precios en tiempo real.

  5. Construir un sistema de evaluación para la optimización de parámetros para encontrar automáticamente conjuntos de parámetros óptimos a través de los resultados de las pruebas de retroceso.

Conclusión

La lógica general de esta estrategia es clara y fácil de entender. Utiliza promedios móviles duales para el stop loss y puede controlar los riesgos de manera efectiva. La estrategia tiene ventajas como parámetros personalizables y adaptabilidad, pero también tiene riesgos como el sobreajuste de la prueba de retroceso y el ajuste de la distancia de stop loss que necesitan atención. Con una optimización adicional, esta estrategia puede convertirse en una estrategia de stop loss efectiva viable para el comercio en vivo. Es adecuada como punto de partida para los principiantes en el comercio algorítmico, y puede mejorarse continuamente a través de la práctica para eventualmente formar un sistema comercial único.


/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Robot WhiteBox StopMA", shorttitle = "Robot WhiteBox StopMA", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
len = input(50)
src = input(ohlc4)
elpercent = input(5.0, minval = 0, maxval = 100, title = "Shift long, %")
espercent = input(-5.0, minval = -100, maxval = 0, title = "Shift short, %")
showlines = input(true, defval = true, title = "Show lines")
showbg = input(true, defval = true, title = "Show background")

//Levels
ma = sma(src, len)
el = ma + ((ma / 100) * elpercent)
es = ma + ((ma / 100) * espercent)

//Lines
colel = showlines ? color.lime : na
colma = showlines ? color.blue : na
coles = showlines ? color.red : na
plot(el, color = colel, offset = 1)
plot(ma, color = colma, offset = 1)
plot(es, color = coles, offset = 1)

//Background
trend = 0
trend := high > el[1] ? 1 : low < es[1] ? -1 : trend[1]
colbg = showbg == false ? na : trend == 1 ? color.lime : trend == -1 ? color.red : na
bgcolor(colbg, transp = 80)

//Trading
if ma > 0
    strategy.entry("Long", strategy.long, needlong ? na : 0, stop = el)
    strategy.entry("Short", strategy.short, needshort ? na : 0, stop = es)

Más.