Monday, October 17, 2016

Estrategia Proceso De Construcción (E - Mini S & P 500 )

Estrategia Proceso de Construcción (E-mini S & P 500) La construcción de una estrategia de emini rentable para ES / TF / EMD por Mark Fric En este artículo voy a explicar el proceso de completar el paso a paso de la construcción de una sólida estrategia rentable para ES (E-mini S & P 500), que incluye varios pasos de diferentes pruebas de robustez. Esta es una variación de mi artículo más antiguo sobre el proceso de construcción de estrategia de divisas. Al utilizar la máquina técnicas de aprendizaje, tales como la programación genética es realtively fácil conseguir estrategias con buena curva de la equidad busca. El peligro está en ajuste de curvas, por lo que la parte más importante del proceso de construcción de la estrategia es la estrategia de pruebas de robustez para asegurar que no es curva ajustada a los datos históricos. En este artículo voy a explicar cómo uso de filtro OOS además de robustez pruebas dobles más prueba Walk-Forward Matrix. Este es el resultado Para la motivación puedo publicar los resultados de un bonito estrategias escénicas para ES / TF / EMD que he encontrado usando el proceso descrito a continuación. Estrategia 238.433 para ES / TF / EMD La estrategia anterior se publicó en nuestro foro (sólo para usuarios con licencia de StrategyQuant) aquí: disponible para descarga. Las únicas entradas que uso son mis expectativas de la estrategia - Quiero construir una estrategia para ES (E-mini S & P 500), el 15 período de tiempo mínimo que es rentable y tiene tan poco detracciones como sea posible. Quiero que la estrategia sea lo suficientemente robusta como para que funcione también en otros futuros (TF, EMD) y quiero que pase la prueba Walk-Forward Matrix para asegurarse de que reoptimization trabaja en esta estrategia. Proceso de construcción de Estrategia 1. Obtención de los datos Hay algunas diferencias entre los futuros y divisas. En primer lugar, la obtención de los datos para futuros es poco más difícil y costoso. No hay fuentes de datos libres y la mayoría de los corredores no te dan la historia de más de unos pocos meses. Usted puede obtener los datos del corredor que les ofrece (Tradestation, si usted es su cliente) o usted tiene que inscribirse en un servicio de datos en vivo, tales como Kinetick o IQFeed. También hay algunos servicios especiales que ofrecen dont't fuente de datos en vivo, pero que venden datos de futuros históricos. Para encontrarlos sólo la búsqueda de "datos furtures intradía históricos" en Google. Segunda diferencia es que los contratos de futuros tienen fecha de caducidad, los contratos suelen ser objeto de comercio por solo 3-4 meses y luego son reemplazados por la versión más reciente del mismo contrato futuro. Para poder utilizar los datos de futuros para el desarrollo de la estrategia que tenemos que tener al menos los pocos años de datos en forma de contratos continuos. La mayor parte de los servicios de datos ofrecen esta opción, por lo que es sólo cuestión de suscribirse al servicio de datos y la descarga de los datos a su plataforma de negociación. Exportación de los datos de NinjaTrader Cuando ya tiene los datos de tu NinjaTrader hay que copiarlos en StrategyQuant demasiado, por lo que puede texto las estrategias generadas. Para hacer eso, tenemos que exportar datos de NinjaTrader e importarlos a StrategyQuant. Para exportar datos que tenemos para abrir el gráfico para ES 15 Min. Asegúrese de configurar la sesión de negociación correcta. Utilizo sesión CME estadounidense RTH Índice de Futuros en este ejemplo. Cuando se abre el gráfico encontremos indicador SQDataExport y colocarlo en el gráfico. Se exportará los datos de la carta abierta actualmente a un archivo de texto. Repita el mismo proceso también para TF (Mini Russel 2000 Futuros) y EMD (E-mini S & P Midcap 400) también de 15 min plazo con sesión de negociación correcta. Vamos a utilizar estos datos más tarde para probar nuestras estrategias de otros símbolos como una forma de prueba de robustez. Entonces StrategyQuant abierto y crear nuevos símbolos para ES, TF y EMD e importar los archivos de datos respectivas. Importación de datos de NinjaTrader se describe con más detalle también en la guía de usuario. 2. Generación de un gran número de posibles candidatos En el primer paso de la generación Simplemente tengo que generar gran número de estrategias potencialmente "buenas" que voy a probar para la solidez después. Quiero que mis todas las estrategias iniciales sean rentables y robustos (hasta cierto punto), así que utilizo varios filtros también en esta primera fase. Mis configuraciones para este paso Puede descargar la configuración que utilizo en este paso utilizando el siguiente enlace. Haga clic en el enlace con el botón derecho del ratón y selecciona Guardar enlace como. Luego, en la configuración de uso de carga StrategyQuant para cargar este archivo de configuración para el programa. Tenga en cuenta que si usted nombró sus símbolos en StrategyQuant diferente que necesita para ajustar los datos de forma manual. Ajustes explicaron En primer lugar, genero todas mis estrategias en varios símbolos. Mi objetivo es encontrar una buena estrategia para ES, pero yo quiero que mi estrategia sea robusta - por lo que queremos que sea rentable también de EMD. Añado EMD a los datos adicionales, por lo que ahora la estrategia se pondrá a prueba en ambos símbolos. Imagen 1: Configuración de los datos Voy a usar los datos de 01/02/2003 a 12/31/2012, que es de 10 años. El resto de los datos se dejará para más pruebas OOS después. Voy a utilizar el modo de Genética Evolución. La idea es hacer una población de 200 estrategias, evolucionando durante 30 generaciones y luego empezar de nuevo desde cero. De esta manera voy a evitar toparse con un callejón sin salida durante la evolución y las mejores estrategias se almacenan continuamente Banco de datos. También puede ver que la única condición para la población inicial es que se debe hacer por lo menos 100 operaciones. No necesita ser rentable - la evolución genética debe ser capaz de mejorarlo. Imagen 2: Opciones genéticos Podríamos utilizar también la generación aleatoria y sin evolución, pero la evolución deberíamos encontrar las estrategias rentables más rápido. La última pieza importante de ajuste es opciones de Ranking. Me puse Banco de datos para almacenar 2000 mejores estrategias, porque quiero tener una buena base para su posterior proceso de selección. También me puse los criterios de selección para devolver relación / Disposición - este es mi favorito. Puede utilizar otros criterios de selección, tal vez usted obtendrá mejores resultados. Imagen 3: opciones de Clasificación Othe de las cosas más importantes es establecer los criterios iniciales de filtro para las estrategias en Banco de datos. Quiero considerar sólo las estrategias que son al menos $ 2000 en ganancias, tienen Volver relación / DD> 3, al menos 300 operaciones y la relación de Retorno / DD de una cartera que ser al menos 2,5. Porque yo estoy probando las estrategias en dos símbolos - ES y EMD, los resultados de la cartera de las estrategias serán también computan. El uso de esta condición, simplemente me especificó que el desempeño de la cartera no será mucho peor que el rendimiento en solamente ES, y el programa se desestime todas las estrategias con un rendimiento malo cartera. Ahora sólo tenemos que pulsar el botón de inicio y dejar que el programa haga el trabajo. Recuerde, nosotros queremos generar por lo menos 2000 las estrategias de "buenos" antes de que vamos a seguir con el proceso de filtro. Dependiendo de la configuración y la velocidad de su computadora podría tomar varias horas o incluso días, así que tenga paciencia. Si el programa no produce ninguna estrategia para un tiempo muy largo, tal vez deberíamos cambiar a un plazo mayor - 30 minutos, 1 hora, o hacer las limitaciones menos restrictivas. 3. En primer filtro - Fuera de la muestra (OOS) cheque Cuando tengo 2000 potencialmente buenas estrategias en el banco de datos, voy a detener la generación y comenzar el proceso de filtrado. Voy a aplicar el primer filtro - eliminando todo el sistema que tienen mal Fuera de rendimiento de la muestra. Puedo hacerlo rápidamente, con sólo ordenar las estrategias en banco de datos y eliminar los que tienen OOS beneficio menor que $ 3,000. Imagen 4 Banco de datos con piscina de estrategias ordenado por OOS Beneficio Neto Este primer paso por lo general elimina una gran parte de las estrategias, por lo que desde 2000 los candidatos iniciales estamos abajo a cerca de 1.700. 2. En segundo filtro - repetición de pruebas y segundo cheque OOS En este paso voy a volver a probar todas las estrategias sobre lo desconocido Fuera de período de la muestra, más voy a añadir la prueba en los datos TF. Volver a probar las estrategias es simple - sólo voy a seleccionar todas las estrategias en el Banco de datos y haga clic en el botón Volver a probar. Esto moverá todas las estrategias a una ficha Volver a probar. También voy a confirmar el diálogo preguntando si se debe utilizar la configuración de compilación para Retest Voy a continuación, extender el periodo de datos al final de los datos disponibles. Estrategias se generaron en los datos de 01/02/2003 a 31/12/2012, voy a volver a probar ahora las estrategias sobre datos hasta el 31.12.2013 (un año más no se utiliza durante la generación) y se dispuso de tiempo muestra de 31/12/2012 a 12/31/2012 . Tenga en cuenta que esto va a volver a probar las estrategias en los datos completos, y la parte OOS mostrará el rendimiento de la estrategia durante el último año de los datos previamente no utilizados. Imagen 5: Ajustes para retest Porque tengo también datos históricos para TF yo les voy a añadir a los datos adicionales para comparar el rendimiento en las tres eminis. La prueba podría tomar algún tiempo y después de que se hace una vez más voy a quitar todo el sistema que tienen mal Fuera de rendimiento de la muestra. Una vez más puedo ordenar las estrategias en Banco de Datos por Beneficio Neto (OOS) y eliminar los que tienen OOS benefician menor que $ 1,500. 3. En tercer filtro - EMD, Cheque TF En tercer filtro es visual - Voy a comprobar el rendimiento de las estrategias en Merck y TF símbolos. Iré a Resultados -> tabla de Equidad, cambiar la carta a la Cartera e ir a través de estrategias de uno en uno busca en las curvas de valores de EMD y TF. Imagen 6: Ejemplo del bien y del mal desempeño EMD / TF ¿Qué estamos buscando? Debido a que estos eminis están altamente correlacionados, quiero que la estrategia para ser rentable en los tres símbolos, al igual que en el primer ejemplo. Podemos ver en el segundo ejemplo que el rendimiento en TF es muy pobre en comparación con ES y EMD, su curva de la equidad no se grodwing, así que voy a descarto tales estrategias. También puede haber otro extremo - que el rendimiento en TF y / o EMD es mucho mejor que el rendimiento en ES. Esto está bien, a menudo sucede que las estrategias se desempeñan mejor en la TF que en ES. Deberíamos estar buscando no sólo en el rendimiento final, sino también a las curvas de renta variable. Debemos desestimar todas las curvas de patrimonio que tienen largos períodos de estancamiento, o grandes detracciones. De esta manera podemos hacer que el filtro muy embargo, debemos terminar con no más de 10 a 20 restantes principales estrategias para el siguiente paso. 4. Cuarto de filtro - pruebas de robustez Después de la eliminación de todas las estrategias con mal desempeño EMD / TF hay menos de 20 estrategias de la izquierda que tienen buena IS y el rendimiento OOS, así como el desempeño satisfactorio en EMD / TF. Ahora voy a volver a probar estrategias de nuevo con las pruebas de robustez y la administración del dinero para ver cómo cada una de las estrategias maneja pequeños cambios en los insumos y para poder comparar las estrategias de la otra. Voy a cambiar la administración del dinero de tamaño fijo de monto fijo, dejando que todos los riesgos startegy $ 500 por el comercio. Esto permite una mejor comparación de estrategias, ya que corren el riesgo de la misma cantidad por el comercio. Imagen 7: Configuración de la administración del dinero de cantidad fija En las pruebas de robustez que utilizo al menos 20 simulaciones y pruebo la estrategia para todo tipo de situaciones de estrés. Después de configurar la prueba de robustez que vuelva a probar las estrategias de nuevo. Esta vez va a ser rápido porque sólo hay algunas estrategias que quedan en el banco de datos. Imagen 8: Pruebas de robustez ¿Cómo evaluar las pruebas de robustez Pruebas de robustez nos muestran cómo la estrategia puede comportarse de la realidad, cuando hay comercios, diferentes datos de la historia etc. Estoy buscando estrategias que tienen valores aceptables para el Beneficio Neto y Disposición en el nivel de confianza del 95% se perdió. Imagen 9: pruebas de robustez resultados En el ejemplo anterior podemos ver los resultados de robustez para dos estrategias. Estrategia de la izquierda tiene beneficios en nivel aceptable, pero reducción en más del doble en comparación con el resultado original. Estrategia de la derecha tiene también beneficios en el nivel y la reducción aceptable era casi sin cambios. En este paso voy a elegir sólo 1-3 estrategias finales que serán sometidos a la próxima prueba de la robustez. Estas estrategias finales son seleccionados por los mejores resultados en las pruebas de robustez, rentabilidad global y también la simplicidad - Quiero que las reglas de estrategia para ser lo más simple posible, y reglas de comercio deben tener algún sentido. Prueba de Paso-Forward Matrix - 5. Quinto filtro Nos quedamos con algunas estrategias y podemos ejecutar la prueba definitiva para robustez - pruebas Walk-Forward Matrix. Matrix WF es simplemente una matriz de optimizaciones-pie hacia adelante con diferente número de carreras y periodos de ejecución. Si la estrategia pasa la prueba Walk-Forward Matrix significa que con la ayuda del parámetro reoptimization la estrategia se adapta a una gran variedad de condiciones de mercado y también que la estrategia no se curva ajustada a los datos en particular - ya que con reoptimization funciona en muchos diversos períodos de tiempo. Además de esta prueba Matrix WF también nos dice si la estrategia debe reoptimice permanente y lo que el periodo reoptimization más óptimo es. Prueba de Paso-Forward Matrix se tiene que hacer para todas las estrategias por separado. Voy a cargar mi estrategia para optimizador y seleccionar la opción Walk-Forward Matrix. También voy a seleccionar pasos para carreras y porcentajes OOS. StrategyQuant pasará a través de todas estas combinaciones, la realización de optimización-Walk Forward de la estrategia. Imagen 10: Configuración de Walk-Forward Matrix Ajuste de parámetros de optimización Para la optimización tenga sentido tiene que configurar los parámetros de la estrategia que va a ser optimizados. Cada estrategia utiliza lógica diferente y tiene diferentes parámetros, así que tienes que configurar la optimización de forma diferente. Imagen 11: Optimización de los parámetros Esta estrategia es relativamente simple, así que voy a optimizar única parada valor de Pérdidas y trailing stop coeficiente. No es necesario optimizar todos los parámetros, sólo estos que tienen el mayor impacto en el rendimiento de la estrategia. La evaluación de Walk-Forward Matrix Cuando optimización terminado, voy a hacer clic en el resultado de la matriz-Walk Forward en banco de datos para ver los detalles. Quiero optimizador para darme una respuesta clara si la estrategia pasó la prueba de optimización Walk-Forward, así que tengo que establecer criterios de puntuación. Estos son criterios simples que tienen que ser verdad para la estrategia para pasar la prueba. Imagen 13: Matriz de resultados Walk-Delantero El resultado final es que el startegy pasó Walk prueba matriz Forward de robustez. El gráfico puntaje 3D nos muestra que 19 de las 24 combinaciones pasan nuestros criterios (ajustes predeterminados utilizados). La estrategia no tiene que pasar por todas las combinaciones, estoy buscando 2x2 o área de 3x3 que tiene la mayoría de las combinaciones pasado - este será el grupo de mejores combinaciones reoptimization. En este caso, puedo ver que las 10 carreras con 30% Fuera de la muestra es una de las mejores combinaciones, ya que está rodeado de otras combinaciones que también pasaron. Cuando compruebo el gráfico optimización-Walk Forward puedo ver que la estrategia sigue siendo rentable también durante reoptimization. La disminución de la rentabilidad está en línea con las pruebas de que obtuvimos de análisis de robustez Monte Carlo, pero la estrategia sigue siendo rentable. Imagen 14: Tabla de optimización Walk-Forward Le describí mi proceso completo de trabajo con StrategyQuant, lo que llevó a algunas nuevas estrategias interesantes. Estos strateguies son sólo muestras de un dit me tomó menos de 2 días de SQ correr y alrededor de 1-2 horas de mi tiempo para encontrarlos con el uso de StrategyQuant. Puede hacerlo por uno mismo, inspirarse y posiblemente mejorar el proceso con sus propias ideas que usted puede compartir en nuestro foro. Posibles mejoras del proceso - se puede tratar de buscar estrategias por separado para largo y corto dirección. Cada dirección tiene su propia dinámica, y diferentes estrategias de largo y corto se volverá mejores resultados. No mencioné Mejorador - es una poderosa herramienta que le permite buscar mejor la variación de su estrategia existente, si todavía no está satisfecho con el rendimiento. Hemos de tener en cuenta - el punto no es encontrar la estrategia que es perfecto en datos históricos. Esta es una receta para el desastre, porque la estrategia excesivamente optimizado está garantizada a fallar en el comercio de bienes. Nuestro objetivo debe ser encontrar una estrategia que es robusto a través de diferentes datos y / o símbolos, porque esto significa que tiene ventaja real sobre el mercado.


No comments:

Post a Comment