Estrategia de inicio de backtesting personalizado
Resumen
El propósito de esta estrategia es permitir al usuario personalizar la hora de inicio del backtesting, logrando así una simulación más flexible y adaptada a sus necesidades.
Principio de la estrategia
Esta estrategia utiliza las funciones time y timestamp de Pine Script para implementar una hora de inicio de backtesting personalizada.
En primer lugar, permite al usuario introducir en la configuración el año, mes, día, hora y minuto de inicio del backtesting personalizado. Luego, utiliza estas entradas para generar una marca de tiempo y la almacena en la variable startTime.
En las condiciones de la estrategia, se añade una nueva condición startTime. La estrategia solo se activará cuando el tiempo actual sea mayor o igual a startTime.
Por ejemplo:
pine
longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition and startTime)
strategy.entry("My Long Entry Id", strategy.long)
De esta manera se logra una hora de inicio de backtesting personalizada. El usuario puede configurar de forma flexible la hora de inicio del backtesting según sus necesidades, sin limitarse a un momento fijo.
Análisis de ventajas
Esta estrategia de hora de inicio de backtesting personalizada ofrece las siguientes ventajas:
-
Mayor flexibilidad: El usuario puede personalizar completamente la hora de inicio del backtesting, sin restricciones a un punto temporal fijo.
-
Mayor realismo: Se puede establecer la hora de inicio del backtesting como el momento en que la estrategia se ejecuta realmente, acercando la simulación a las condiciones reales del mercado.
-
Facilita el backtesting basado en eventos: Permite configurar la hora de inicio en función del momento en que ocurre un evento, para realizar backtesting específico sobre dicho evento.
-
Ajuste sencillo de condiciones: Es muy fácil modificar las condiciones de inicio del backtesting, permitiendo realizar simulaciones focalizadas en diferentes etapas.
-
Repetible y fiable: Al parametrizar la hora de inicio del backtesting, se pueden ejecutar simulaciones repetidamente obteniendo resultados fiables.
Análisis de riesgos
El uso de una hora de inicio personalizada también conlleva algunos riesgos:
-
Los resultados del backtesting dependen de la hora de inicio: Diferentes horas de inicio pueden provocar grandes variaciones en los resultados.
-
Es necesario elegir cuidadosamente la hora de inicio: Una hora de inicio inadecuada puede distorsionar la simulación y no reflejar la realidad.
-
Aumenta el riesgo de sobreajuste: Es fácil ajustar la hora de inicio para ajustarse a los datos históricos, generando riesgo de sobreajuste.
-
Reduce la comparabilidad de los resultados: Los resultados de esta estrategia no son fácilmente comparables con los de backtesting con hora de inicio fija.
Soluciones correspondientes:
-
Realizar múltiples backtesting para evaluar el impacto de los cambios en la hora de inicio sobre los resultados.
-
Elegir momentos de eventos importantes como hora de inicio para reducir la distorsión de la simulación.
-
Ajustar la hora de inicio con cuidado para evitar un sobreajuste excesivo a los datos históricos.
-
Guardar los resultados del backtesting con hora de inicio fija como referencia y compararlos con los del backtesting personalizado.
Direcciones de optimización
Esta estrategia de hora de inicio personalizada también se puede optimizar en los siguientes aspectos:
-
Soporte para personalizar hora de inicio y fin, logrando una configuración flexible de toda la ventana temporal del backtesting.
-
Soporte para múltiples modos de tiempo: fecha concreta, fecha relativa, basado en eventos, etc., para una configuración más inteligente y cómoda.
-
Soporte para interfaz gráfica de configuración, haciendo más intuitivo el ajuste de parámetros temporales.
-
Soporte para diferentes granularidades de tiempo: año, mes, día, hora, minuto, segundo, etc.
-
Registro de la configuración temporal del backtesting, para que los resultados sean reproducibles, trazables y comparables.
-
Añadir validación de configuraciones temporales incorrectas, evitando que una configuración inadecuada afecte la calidad del backtesting.
-
Proporcionar función de vinculación de hora de inicio, para sincronizar y copiar la hora de inicio a múltiples estrategias con un solo clic.
Resumen
Esta estrategia implementa una configuración personalizada y flexible de la hora de inicio del backtesting, lo que reduce las limitaciones de la simulación y la acerca más a las condiciones reales del mercado. Sin embargo, también hay que estar atentos a la dependencia de los resultados del backtesting respecto a la hora de inicio, y tomar medidas como múltiples simulaciones o backtesting basado en eventos para reducir la distorsión. Esta estrategia aún tiene muchas direcciones de optimización que en el futuro permitirán una configuración del tiempo de backtesting más inteligente y conveniente.
/*backtest
start: 2022-09-19 00:00:00
end: 2023-09-25 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("C320up Strategy Tester Start Time", overlay = true)
// Copy and paste below into your strategy
// Strategy Tester Start Time- 1
