Estrategia de backtesting de ruptura de estructura
Resumen
Esta estrategia adopta un enfoque de ruptura de niveles, tomando posiciones largas o cortas bajo ciertas condiciones de ruptura, y cuenta con una función de backtest automatizado para encontrar la mejor combinación de parámetros.
Principio
-
Los parámetros de entrada incluyen el número de días de retrospectiva, el porcentaje de take profit, el porcentaje de stop loss, y parámetros de backtest automático como el rango de días de retrospectiva y el rango de take profit/stop loss.
-
Durante el backtest, se recorren varias combinaciones de días de retrospectiva, porcentajes de take profit y stop loss, registrando las ganancias o pérdidas de cada combinación.
-
Señal de ruptura: si el precio de cierre cruza por encima de la banda superior y no es la vela de entrada, se toma una posición larga; si el precio de cierre cruza por debajo de la banda inferior y no es la vela de entrada, se toma una posición corta.
-
Condición de stop loss: si el take profit no se ha activado y se alcanza el nivel de stop loss, se sale con stop loss.
-
Condición de take profit: si el stop loss no se ha activado y se alcanza el nivel de take profit, se sale con take profit.
-
Se muestra una tabla detallada de resultados de backtest, que se puede ordenar según la tasa de ganancia, el beneficio neto o el número de operaciones, según la configuración del usuario.
Ventajas
-
La función de backtest automático permite encontrar rápidamente la mejor combinación de parámetros sin necesidad de pruebas manuales.
-
Los resultados del backtest se pueden ordenar por tasa de ganancia, beneficio neto o número de operaciones, lo que permite seleccionar de manera flexible los parámetros óptimos según las necesidades.
-
Visualización de las ganancias o pérdidas de cada operación.
-
Los parámetros de backtest se pueden personalizar, lo que permite probar un espacio de parámetros más amplio y encontrar el óptimo global.
-
Las reglas de la estrategia son simples y claras, fáciles de entender e implementar.
Riesgos y soluciones
-
Un período de backtest corto puede generar resultados inestables. Solución: establecer un período de backtest más largo.
-
La alta frecuencia de operaciones puede provocar deslizamientos que afecten las ganancias. Solución: ajustar adecuadamente los márgenes de take profit y stop loss.
-
Los resultados de backtest en un solo producto pueden no ser representativos. Solución: realizar backtests en diferentes productos para encontrar una combinación estable de parámetros.
-
La sobreoptimización de parámetros puede llevar a un sobreajuste. Solución: verificar la estabilidad de los parámetros en diferentes productos y marcos temporales.
-
Ignorar los costos de transacción puede generar sesgos en los resultados del backtest. Solución: establecer parámetros razonables de comisiones.
Direcciones de optimización
-
Aumentar las dimensiones de optimización de parámetros, como agregar stop loss dinámico o límites en el número de operaciones.
-
Optimizar las condiciones de entrada combinándolas con filtros de indicadores de tendencia.
-
Optimizar las estrategias de take profit y stop loss, como take profit dinámico o stop loss trail.
-
Incorporar algoritmos de aprendizaje automático para ayudar en la optimización de parámetros.
-
Optimizar la estructura del código para mejorar la velocidad del backtest.
-
Verificar la estabilidad de los parámetros en múltiples productos y marcos temporales.
-
Considerar la integración de funciones de trading automatizado.
Resumen
La idea general de esta estrategia es clara y fácil de entender. La función de backtest automático permite optimizar rápidamente los parámetros, y la visualización de ganancias y pérdidas facilita la mejora de la estrategia. Existen ciertos riesgos que requieren atención, pero se pueden mitigar mediante diversas optimizaciones continuas, lo que le otorga un gran valor práctico. En general, esta estrategia, basada en un enfoque simple de ruptura y equipada con una herramienta de backtest automático, puede ayudar a los traders a construir rápidamente un sistema de trading estable.
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// © -_-
//@version=5
// strategy("[-_-] LBAB", process_orders_on_close=true, overlay=true, max_labels_count=500, max_lines_count=500, max_boxes_count=500, default_qty_type=strategy.cash, default_qty_value=100, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.075)
- 1

