Documentación
Aplicaciones
Última actualización el 29. 4. 2019 por Mark Fric
Backtesting fiable en MetaTrader
Page contents
Fiabilidad del backtesting en general
En primer lugar, tenemos que darnos cuenta de que backtesting significa probar la estrategia en datos históricos. El flujo exacto de ticks nunca se repetirá en el futuro, por lo que incluso si está utilizando datos reales de ticks no significa que su estrategia se comportará igual en el futuro como se comportó en el pasado.
En segundo lugar, debemos darnos cuenta de que el backtest no puede ser 100% exacto. En el mejor de los casos, el backtesting ofrece una aproximación de cómo se ejecutarían las operaciones en tiempo real. Hay cosas como spreads ampliados, recotizaciones, deslizamientos, retrasos, desconexiones de red, fallos de VPS, etc. que afectan a las operaciones en tiempo real.
La propiedad más importante de nuestra estrategia debería ser su solidez.
Tenemos que asegurarnos de que no hemos ajustado la curva de nuestra estrategia a los datos existentes para que funcione bien en nuestras pruebas retrospectivas; que siga siendo rentable a pesar de los cambios en los datos, en los parámetros, cuando se pierden algunas operaciones, etc.
StrategyQuant ofrece muchas herramientas (Cross checks) para probar la robustez de la estrategia. Usted puede probar t en diferentes mercados, con la variación de los parámetros, o con la variación de los cambios aleatorios en los datos históricos utilizando pruebas de Monte Carlo.
Backtesting fiable entre SQ y MT4/5
Backtesting fiable en este sentido significa que la estrategia tendrá el mismo o muy similar backtest resultados en StrategyQuant y MetaTrader.
Si su estrategia tiene resultados totalmente diferentes en SQ y en MT, entonces hay algo mal con su configuración y tiene que resolverlo antes de seguir adelante.
El motor de Backtesting en SQ fue hecho para coincidir con el motor de trading de MetaTrader, por lo que si usted ve las diferencias es muy probable que sea en diferentes datos o configuración entre ambos programas.
A continuación enumeramos algunos puntos a los que debe prestar atención.
1. Asegúrese de que ha importado todos los indicadores personalizados
Este es uno de los pasos posteriores a la instalación: https://strategyquant.com/doc/strategyquant/installation/#steps-after-installation
SQ utiliza algunos indicadores personalizados y tienes que importarlos a MetaTrader para que funcione.
2. Importe los datos desde su MetaTrader, o asegúrese de que los datos de Dukascopy descargados son similares a los de su broker
SQ ofrece una cómoda descarga de datos de tick y M1 de alta calidad proporcionados gratuitamente por Dukascopy.
Los datos en sí son fiables, pero asegúrese de que utiliza la misma zona horaria que su broker, especialmente si planea utilizar funciones como Salir al final del día / viernes.
La forma más fácil de verificar que su configuración es correcta es utilizar los mismos datos en SQ y MT, lo que significa exportar sus datos de MT e importarlos a SQ. A continuación, compruebe si la estrategia de backtest coincide con estos datos - debería. Si no es así, compruebe el punto 3.
Además, cuente con el hecho de que su broker tendrá datos ligeramente diferentes a los de Dukascopy y asegúrese de que su estrategia es robusta y puede soportarlo. Probar su estrategia en SQ y luego en datos diferentes en su MetaTrader es otra forma de prueba de robustez.
Sólo asegúrate de que si hay grandes diferencias en los datos no se deben a tu configuración, sino a un fallo real de la estrategia.
3. Asegúrese de utilizar el motor correcto y el tipo de barra correcto en los datos importados
La elección del motor es obvia - vuelva a comprobar que realmente utiliza MetaTrader 4 o 5 motor en SQ, ya que ofrece una selección de motores.
Cuando importe datos de un fichero, asegúrese de utilizar "La hora es la hora de inicio del bar"Tipo de datos de la barra. Este es el tipo de datos utilizado por MetaTrader, e influye en cómo se calculan los plazos superiores.
4. Configure correctamente su MetaTrader StrategyTester
Asegúrese de utilizar el la misma configuración de márgenes, el mismo intervalo de fechas, etc.. La cuestión es tener la misma configuración entre SQ y MT.
También debe considerar la posibilidad de desconectar MetaTrader de la red, porque de lo contrario será (por defecto) utilizar la actual propagación en vivo en el backtest, lo que significa que su backtest podría ser un poco diferente cada vez que lo ejecute.
Cómo desconectar MetaTrader4
En primer lugar, MetaTrader debe estar en línea y conectado al menos por un tiempo, para que cargue los spreads reales. A continuación, puede desconectarlo mediante el establecimiento de proxy a algún valor ficticio.
Vaya a Herramientas → Opciones, pestaña Servidor y marque la casilla Activar servidor proxy.
A continuación, haga clic en el botón Proxy ... para configurar el proxy.
Ponga localhost como Servidor, y algún texto ficticio en Login y Password. Cierre el diálogo pulsando OK y cierre el diálogo Opciones pulsando OK de nuevo, esto guardará su configuración.
Ahora tienes que reiniciar MetaTrader de nuevo y la próxima vez que lo inicies estarás desconectado del broker.
Debería ver el estado Sin conexión en la esquina inferior derecha de MetaTrader.
A partir de ahora, todas sus pruebas se ejecutarán con los mismos diferenciales, y los resultados serán los mismos cada vez que ejecute la prueba.
5. Reinicie SQ y borre los archivos temporales cuando tenga problemas
SQ almacena en caché los datos de backtest tanto en memoria como en archivos en disco, y a veces puede ocurrir que los datos en caché sean versiones anteriores (erróneas) y no se actualicen al importar nuevos o modificar algo.
Si experimenta diferencias en el backtest intente primero salir de SQ, borre todos los archivos de la carpeta /internal/testfiles e inicie SQ de nuevo.
¿Le ha resultado útil este artículo? El artículo era útil El artículo no era útil
Muy importante también puede ser el timestamping y DST ajustes de los datos descargados en relación con el corredor que está planeando utilizar en Demo o Real de comercio, especialmente en los plazos más altos, como H4.
Hello, how do you manage the broker properties in sq? Like, stop out level, higher or lower leverage. I use 1:1000 leverage in fx and i’m getting struggled on that issue…