Estrategia de apoyo a la resistencia de la ruptura de impulso

El autor:¿ Qué pasa?, Fecha: 2024-02-22 16:07:14
Las etiquetas:

img

Resumen general

Esta estrategia utiliza principalmente los precios altos, bajos y cerrados del día de negociación anterior como los niveles de soporte y resistencia para el día actual.

Principio de la estrategia

En primer lugar, el código define una función calculaSupportResistance para calcular los niveles de soporte y resistencia, que extrae los precios altos, bajos y cerrados del día de negociación anterior como los niveles de soporte y resistencia del día actual.

Entonces en la lógica principal, esta función se llama para obtener estos tres niveles de precios y trazarlos.

En la lógica de backtesting, si el precio de cierre es menor que el mínimo del día anterior mientras que el precio actual es mayor que ese mínimo formando una ruptura, va largo.

A través de este modelo de ruptura, se implementa el juicio de la tendencia y la generación de señales comerciales.

Ventajas

  1. Utilice los datos de los días de negociación anteriores para construir los niveles de soporte y resistencia del día actual, evitando el problema de optimización de parámetros

  2. Los niveles de soporte y resistencia provienen de datos reales de las operaciones de mercado, con cierto valor de referencia

  3. Modelo de backtesting simple y directo, fácil de entender e implementar

  4. La visualización de los niveles de soporte y resistencia forma la percepción de los precios

  5. Monitoreo en tiempo real de las rupturas, captura oportuna de oportunidades de negociación

Los riesgos

  1. Los niveles de soporte y resistencia cambian con el tiempo, difícil de determinar la validez

  2. Incapacidad para predecir la dirección de la tendencia, riesgo de reversiones perdidas

  3. Se ve afectado fácilmente por falsas fugas, riesgo de entrada prematura

  4. No se puede determinar la persistencia de las rupturas, es probable que se detenga la pérdida temprana

  5. Es más probable que el soporte y la resistencia individuales no funcionen bajo una gran fluctuación del mercado

Contramedidas:

  1. Combinar más factores para juzgar la validez de las rupturas

  2. Ampliar adecuadamente el rango de stop loss para detectar las tendencias

  3. Posiciones abiertas en lotes, reducir el impacto de las fluctuaciones individuales

Optimizaciones

  1. Añadir más datos históricos como líneas de 5 días, 10 días para determinar los niveles

  2. Incorporar otros indicadores como el volumen para juzgar la validez de la ruptura

  3. Se trata de los valores de los valores de los instrumentos de inversión de los que se trata en el artículo 67, apartado 2, del RRC.

  4. Optimización de la gestión de capital, control de pérdidas individuales

Resumen de las actividades

En general, esta es una estrategia de ruptura típica, simple e intuitiva. Al construir el soporte y la resistencia del día actual con los datos del día anterior y hacer pruebas de retroceso de las rupturas de esos niveles para largo / corto. Los pros son fáciles de entender y visualizar directamente los niveles; los contras son riesgos de ruptura falsos e incertidumbre de persistencia. Los próximos pasos son mejorar la validez de la ruptura, controlar los riesgos, optimizar la gestión de capital, etc.


/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Support and Resistance with Backtesting", overlay=true)

// Function to calculate support and resistance levels
calculateSupportResistance() =>
    highPrevDay = request.security(syminfo.tickerid, "D", high[1], lookahead=barmerge.lookahead_on)
    lowPrevDay = request.security(syminfo.tickerid, "D", low[1], lookahead=barmerge.lookahead_on)
    closePrevDay = request.security(syminfo.tickerid, "D", close[1], lookahead=barmerge.lookahead_on)
    [highPrevDay, lowPrevDay, closePrevDay]

// Call the function to get support and resistance levels
[supResHigh, supResLow, supResClose] = calculateSupportResistance()

// Plotting support and resistance levels
plot(supResHigh, color=color.red, linewidth=2, title="Previous Day High")
plot(supResLow, color=color.green, linewidth=2, title="Previous Day Low")
plot(supResClose, color=color.blue, linewidth=2, title="Previous Day Close")

// Backtesting logic
backtestCondition = close[1] < supResLow and close > supResLow
strategy.entry("Long", strategy.long, when=backtestCondition)

// Plotting buy/sell arrows for backtesting
plotarrow(backtestCondition ? 1 : na, colorup=color.green, offset=-1, transp=0)


Más.