Respuesta

Actualmente estoy construyendo un flujo de trabajo para estrategias de Forex exitosas. ¡Únete a mí!

47 respuestas

AlgotradingDE

Cliente, bbp_participant, comunidad, sq-ultimate, 30 respuestas.

Visitar el perfil

hace 2 años #277576

Llevo más de una década utilizando StrategyQuant, pero aunque parezca mentira, hasta ahora no había aprovechado todas sus posibilidades.

Mi proceso consiste en crear miles de estrategias en el constructor y luego someterlas a una comprobación de robustez muy selectiva. Las (pocas) estrategias que sobreviven se activan en una cuenta demo MT4, donde deben ejecutar al menos 25 operaciones antes de que las considere para su uso en una cuenta real.

Hasta ahora, estoy muy contento con este proceso y me gustaría automatizar más la producción de sistemas de éxito. Por eso he estado buceando en las funciones de proyectos personalizados que se pueden utilizar para crear flujos de trabajo personalizados.

Mientras estoy construyendo algunos flujos de trabajo de muestra para estrategias de forex exitosas, estaría encantado si alguien en este foro está interesado en lo mismo y dispuesto a compartir sus experiencias.

Sobre todo, me interesaría saber si alguien ha iniciado alguna vez un proyecto de este tipo por su cuenta.

Gerhard Frischholz
https://Algotrading.de

1

AlgotradingDE

Cliente, bbp_participant, comunidad, sq-ultimate, 30 respuestas.

Visitar el perfil

hace 1 año #278123

Hola Kevin,

otra pieza importante a tener en cuenta, gracias por tu comentario. Creo que todos estamos de acuerdo en que el rendimiento en directo debe ser lo más parecido posible a las estadísticas de rendimiento simuladas de StrategyQuant. Aunque todos sabemos que nunca habrá una coincidencia perfecta. Pero tienen que coincidir "de alguna manera" (aunque todavía estoy pensando cómo cuantificar ese "de alguna manera").

¿Por qué no construir juntos un flujo de trabajo y optimizarlo conjuntamente? Puede que tengamos instrumentos diferentes, plazos diferentes en los que queramos centrarnos, pero los métodos para construir sistemas de pruebas robustos deberían ser algo que pudiéramos hacer conjuntamente.

¿Qué opina todo el mundo? Estaré encantado de compartir mis archivos de flujo de trabajo como punto de partida.

Saludos cordiales

AlgotradingDE

 

Gerhard Frischholz
https://Algotrading.de

2

FirestarZA

Cliente, bbp_participante, comunidad, sq-ultimate, 19 respuestas.

Visitar el perfil

hace 1 año #278126

En primer lugar, puede parecer que estoy "avanzado" en el uso de flujos de trabajo, pero es sólo una percepción. He reflexionado mucho sobre este tema y he creado y probado un gran número de flujos de trabajo, pero aún no tengo ninguno que me satisfaga lo más mínimo.

Entonces, una cosa en la que creo firmemente, es un período (digamos el último par de años) de holdout. Este es un período que nunca ha sido tocado por el proceso de desarrollo (por lo general voy a correr 2019/01/01 a la fecha actual para esto). Esto básicamente simula los últimos 3 años como una cuenta demo. Marco este periodo como OOS, mientras que IS es el resto de datos históricos disponibles. Este es mi último paso, antes de comprobar la correlación de la cartera. Entonces filtro sólo los OOS (puesto que el resto ya se ha comprobado a fondo de una forma u otra).

Ahora, para darte mi versión de las respuestas de las preguntas que has hecho:
- ¿qué pruebas de robustez utilizan los demás?
Me gustan las pruebas de robustez más avanzadas, pero intento hacer un poco de todo. Por lo tanto, voy a hacer un montón de pruebas de MC, pruebas hipotéticas, diferentes pruebas de plazos y mercados, y luego pasar a SPP y WFM específicamente, que soy un gran fan de (aunque no necesariamente eliminar estrategias que falla estas dos pruebas).

- qué pruebas de robustez ayudan a producir estrategias que funcionan en un entorno real
Creo que el WFM y el holdout son grandes pruebas para simular un ambiente vivo. Una vez más, puedo no ser necesariamente demasiado terminante con WFM específicamente, como su realmente una prueba del tacto, pero quiero algunos resultados decentes adentro allí, incluso si no me da absolutamente mi cuadrado 9×9 que pasó.

- ¿Qué ocurre con la optimización de las estrategias que se han superado con éxito: está bien / es necesario optimizarlas después o debemos dejarlas intactas?
Actualmente no optimizo. La razón es que tengo un miedo estúpido al sobreajuste. Evito todo lo que pueda contribuir al sobreajuste. No creo que lo evite siempre, pero por ahora no optimizo. Puede que lo haga más adelante, cuando mis estrategias empiecen a fallar y necesite darles algo de vida antes de descartarlas. En ese momento, comprobaré si es bueno o malo.

Por último, estoy 100% en, si desea construir un flujo de trabajo juntos. También voy a compartir con mucho gusto mi flujo de trabajo que he construido (la mayoría de mis otros flujos de trabajo... los que funciona, más o menos, son los flujos de trabajo de otras personas que he modificado).

Sólo debo pedir que lo hagamos en otra plataforma. El foro no es realmente propicio para una buena comunicación, en mi opinión. Pero estaré encantado de participar en lo que decidáis.

2

Kevin

Abonado, bbp_participant, cliente, comunidad, sq-ultimate, 4 respuestas.

Visitar el perfil

hace 1 año #278130

Hola Gerhard,

En respuesta a su sugerencia, me gustaría mucho trabajar conjuntamente en la creación y optimización de flujos de trabajo. Por favor, hágame saber cómo le gustaría avanzar. Algotrading.de me parece un proyecto muy interesante.

Siguiendo con el criterio de ir en directo, el criterio de clasificación me parece perfectamente válido, y en algún momento me gustaría analizar el criterio de selección de estrategia como algo que se puede optimizar como estrategia en sí misma.

Actualmente estoy en un proceso de prueba y perfeccionamiento de mis flujos de trabajo, pero básicamente lo que estoy utilizando es lo siguiente:

- Constructor: filtrado básico en la población inicial para la evolución genética, filtrado más estricto en la clasificación por factor de beneficio, estabilidad y rendimiento anual % / DD% sobre el capital inicial (cf. https://strategyquant.com/codebase/annual-return-max-drawdown-of-initial-capital/).

- Robustez: Ejecuto con precisión de 1 minuto, manipulación de operaciones MC (orden, omisión), ejecución en diferentes marcos temporales, si en un marco temporal inferior a H1, ejecuto en datos de tick, parámetros de estrategia MC, historial de datos MC, diferencial de deslizamiento MC.

- Optimización: optimización secuencial y matriz WF. Aplico los parámetros optimizados y vuelvo a realizar todas las pruebas de robustez con los nuevos parámetros

Normalmente tengo que ejecutar todo el flujo de trabajo varias veces hasta llegar a la optimización, para tener al menos unas cuantas estrategias con las que poder empezar la fase de optimización, porque suele ser la parte más "laboriosa", en el sentido de que es donde reviso cada estrategia una a una para ver qué parámetros son los más estables, etc.

Después de probar en demo, etc. Hago pruebas de correlación en QA, para eliminar de la cartera las correlacionadas y dejarlas en stand by. Ajusto el tamaño de las posiciones en función del DD MC 95% de cada estrategia y del tamaño de la cuenta.

De todas formas, esa es mi forma actual de trabajar y aún estoy en fase de consolidación, por lo que me interesaría trabajar conjuntamente.

Saludos

1

Conmariin

Abonado, bbp_participant, comunidad, cliente, 54 respuestas.

Visitar el perfil

hace 1 año #278166

Hola a todos! 🙂

Este es uno de mis flujos de trabajo para Eurusd H1

Saludos cordiales

Conmariin

Adjuntos:
Debes acceda a para ver los archivos adjuntos.

Operaciones automáticas con Asesor Experto
https://www.rabenesche.de

2

AlgotradingDE

Cliente, bbp_participant, comunidad, sq-ultimate, 30 respuestas.

Visitar el perfil

hace 1 año #278237

Hola Conmariin,

Muchas gracias por compartir tu flujo de trabajo. Este es el espíritu correcto que nos ayuda a todos a mejorar.

Hoy he empezado a analizar su flujo de trabajo y será una magnífica oportunidad para debatir los pros y los contras de realizar distintas tareas.

También voy a compartir un flujo de trabajo que he finalizado recientemente. Me da muy buenos resultados en el marco temporal EURUSD 1H. Puede descargar y analizar a través del siguiente enlace.

Dediquemos algo de tiempo a repasar los componentes de los flujos de trabajo que hemos compartido y luego trabajemos conjuntamente sobre posibles mejoras o simplemente aprendizajes de cada uno de los ejemplos.

Agradezco mucho tu disposición a compartir tu trabajo e invito a todo el que esté interesado a unirse a nuestro debate. Construyamos un flujo de trabajo (y no solo uno) que nos haga ganar mucho dinero.

Saludos cordiales

Gerhard Frischholz

Adjuntos:
Debes acceda a para ver los archivos adjuntos.

Gerhard Frischholz
https://Algotrading.de

2

AlgotradingDE

Cliente, bbp_participant, comunidad, sq-ultimate, 30 respuestas.

Visitar el perfil

hace 1 año #278271

Estoy ejecutando su flujo de trabajo en un ordenador en la nube y me acabo de dar cuenta de que usted está requiriendo 3000 estrategias para ser construido antes de conseguir las pruebas en acción. Un cálculo aproximado me dice que el Constructor tendría que ejecutar aprox. 2 meses para producir que muchas estrategias iniciales.

Mi pregunta sería: ¿se basa esto en su experiencia con las próximas pruebas de robustez o también funcionará un número menor de sistemas iniciales?

Gerhard Frischholz
https://Algotrading.de

0

Conmariin

Abonado, bbp_participant, comunidad, cliente, 54 respuestas.

Visitar el perfil

hace 1 año #278273

Hola Gerhard,

Llevo 3000 estrategias construidas porque las pruebas de robustez solucionan mucho después y no suelen dejar mucho. También lo llamo el "campo de entrenamiento" 😉.

Pero como tengo un VPS con 8 núcleos y 32 GB de Ram en Linux, tardo una media de 3-4 semanas hasta que tengo las 3000 estrategias llenas. Depende de la pareja que he construido.

Personalmente, me parece muy importante establecer criterios duros a la hora de clasificar, ya que no voy a optimizar las estrategias. Luego se sustituyen por otras nuevas si funcionan mal.

—–

En su flujo de trabajo, he observado que realiza pasos adicionales para clasificar las estrategias. ¿Hace estos pasos adicionales porque luego clasifica las estrategias manualmente? Yo siempre las clasifico automáticamente al final de cada paso. Puede configurar esto en 'Ranking' -> 'Eliminar estrategias fallidas del banco de datos'. Esto agilizaría su flujo de trabajo y lo automatizaría más.

Operaciones automáticas con Asesor Experto
https://www.rabenesche.de

0

AlgotradingDE

Cliente, bbp_participant, comunidad, sq-ultimate, 30 respuestas.

Visitar el perfil

hace 1 año #278279

Hola Conmariin,

nuestros enfoques son muy similares y también para mí resultó que necesito un número significativo de estrategias construidas antes incluso de iniciar todas las pruebas de robustez. Porque realmente tienen que ser muy estrictos con el fin de obtener resultados realistas en vivo.

Con respecto a la optimización, llegué a la misma conclusión que tú, es decir, no optimizar las estrategias que sobrevivieron a las pruebas de robustez. Inicialmente pensé que deberían ser lo suficientemente robustas como para ser optimizadas para la última fase del mercado, pero creo que esto es completamente erróneo. Estoy totalmente de acuerdo contigo en que se trata de encontrar (constructor) y seleccionar (retester) estrategias fuertes. Y no poner las manos en el botón del optimizador 🙂 .

En cuanto a las 3000 estrategias que construyes antes de iniciar las pruebas de robustez. Yo uso una ligera modificación que ahorra algo de tiempo en el proceso de construcción:

Dejo que el constructor cree estrategias sólo en el marco temporal seleccionado (como 1H), lo que crea estrategias mucho más rápido. Entonces, como mi primera prueba, ejecuto esas estrategias en el marco de tiempo de 1min. Según mis estadísticas, alrededor de 80% de las estrategias sobreviven a esta prueba de 1min timeframe. La prueba en sí toma sólo unos minutos por lo que en la conclusión de que puedo crear estrategias mucho más en la misma cantidad de tiempo simplemente dividiendo esto en dos pasos del proceso.

Para mayor claridad, lo que hago es:

1. Ejecute el Constructor con el marco temporal seleccionado para, digamos, 3000 estrategias

2. Ejecute la prueba Higher Backtest Precision con datos de 1 minuto en esas 3000 estrategias.

Me gusta mucho esta discusión, tiene todo lo necesario para aprender unos de otros. Gracias de nuevo por compartir su experiencia, estaré encantado de compartir la mía.

Seguiré evaluando tu flujo de trabajo y volveré si tengo más cosas que preguntar y discutir.

Gerhard Frischholz
https://Algotrading.de

0

Conmariin

Abonado, bbp_participant, comunidad, cliente, 54 respuestas.

Visitar el perfil

hace 1 año #278280

Hola Gerhard,

A primera vista su método parece más rápido. Pero hay un pequeño error de pensamiento. Mi método es:

Paso1: Construir estrategia con H1 timeframe con datos en H1 (más rápido) -> estrategia bien entonces directamente con cruz comprobar si la estrategia también está bien en timeframe H1 con datos en M1 (más lento) -> si la estrategia no está bien entonces inmediatamente eliminar automáticamente. Construir la siguiente estrategia.
Paso 2: Cuando se han construido 3000 estrategias, viene la repetición de la prueba.

Su método es:
Paso1: Construir estrategias con marco temporal H1 en H1 (el más rápido) hasta que se hayan construido 3000 estrategias.
Paso2: Comprobación cruzada si las estrategias están bien en timeframe H1 con datos en M1 (el más lento) -> 80% (en tu ejemplo) están bien = 2400 estrategias.
Paso3: Se inicia la repetición de la prueba con 2400 estrategias.

Por supuesto que serás más rápido con menos estrategias 😉

Operaciones automáticas con Asesor Experto
https://www.rabenesche.de

0

AlgotradingDE

Cliente, bbp_participant, comunidad, sq-ultimate, 30 respuestas.

Visitar el perfil

hace 1 año #278281

Hola Conmariin,

Tu comentario me hace replantearme mi afirmación. Yo era de la opinión de que la prueba Higher Backtest Precision en datos de 1 minuto se lleva a cabo para cada estrategia que se está generando, no sólo los que pasaron el conjunto de criterios Builder. si el último es el caso, entonces, por supuesto, usted no ahorrará nada con la separación de las dos tareas, en lugar de terminar con menos estrategias de lo que estaba apuntando.

No he encontrado ninguna declaración clara al respecto en la documentación de StrategyQuant. ¿Lo has probado?

Gerhard Frischholz
https://Algotrading.de

0

Conmariin

Abonado, bbp_participant, comunidad, cliente, 54 respuestas.

Visitar el perfil

hace 1 año #278284

Hola Gerhard,

No creo que sea algo que haya que documentar. Es más bien algo lógico.
Tal y como es tu método, ¡seguro que puedes hacerlo! Pero entonces no se parte de 3000 estrategias, sino de menos.

En realidad, no importa, porque ambos métodos tienen su justificación. Evito la intervención manual en el flujo de trabajo. Al menos en la medida de lo posible. Es lo mismo que operar con robots: eliminar la fuente humana de error en la medida de lo posible. A menudo me he encontrado queriendo aceptar una estrategia "Fallida" por "Aprobada". "¡Pero si tenía un drawdown tan bonito...!" 😉 .

Por cierto, tengo que decir que los Asesores Expertos creados con StrategyquantX son los más rentables. Empecé una cartera SQX completamente nueva en una cuenta demo el año pasado. Y el beneficio, aunque fue un año duro, fue de unos 60%.
Basándome en este resultado, empecé este año con una cuenta real. Sí, lo sé, ¡realmente no es un buen año para empezar! 😀 Pero como utilizo la regla 1%, las pérdidas son asumibles y los robots no hacen más que remontar.
La diferencia entre demo y live es también muy pequeña. Por supuesto, los robots no siempre hacen 1:1 cada comercio como en la demo, pero son aceptablemente muy cerca.

Operaciones automáticas con Asesor Experto
https://www.rabenesche.de

0

AlgotradingDE

Cliente, bbp_participant, comunidad, sq-ultimate, 30 respuestas.

Visitar el perfil

hace 1 año #278285

Hola Conmariin,

tienes toda la razón. Y lo que pasé por alto fue el hecho de que usted puso requisitos muy estrictos en su prueba de 1min de Alta Precisión de Backtest. Así que incluso con "mi" método, la mayoría de las estrategias iniciales no pasaría la prueba de 1min.

Me gusta que menciones que no quieres interferir manualmente en la prueba de robustez. Eso es muy cierto. A menudo tenemos la tentación de curvarlo porque nos gustan ciertas estrategias y no queremos que la "cruel" prueba de robustez las deje de lado.

Y parece que esta forma de manejar las cosas te funciona. Eso es bueno. También para mí la prueba en una cuenta real es la prueba definitiva.

Gerhard Frischholz
https://Algotrading.de

0

Kevin

Abonado, bbp_participant, cliente, comunidad, sq-ultimate, 4 respuestas.

Visitar el perfil

hace 1 año #278301

Hola Gerhard y Conmariin,

Gracias por compartir esos flujos de trabajo. He adjuntado uno de los míos. Como he señalado anteriormente, utilizo una métrica personalizada (Ret % anual / DD% sobre capital inicial), que he publicado para todos en la base de código. Sin embargo, si usted no quiere molestarse con eso, la incorporada Anual % ret / DD% sería similar, pero no tan estricta.

Tenga en cuenta que algunas tareas después de las construcciones iniciales están desactivadas. Están ahí porque he intentado trabajar con una fase de construcción completa donde haría varias iteraciones de construcción, con dos ordenadores (uno con mi licencia pro y otro con mi licencia starters). La última vez, esperé hasta que tuve como 8000 construidos, antes de seguir adelante. Por otra parte, me he dado cuenta de que si empiezo a hacer pruebas de robustez con sólo, digamos 1000 estrategias, y ninguna pasa las pruebas, me siento tentado a relajar mis criterios, con el fin de dejar pasar más a través de los filtros. He separado la alta precisión (resolución de pruebas M1) de la fase de construcción, básicamente porque la licencia starter no permite hacer retests. La otra opción sería hacer la construcción directamente con resolución M1. Pero por ahora, prefiero utilizar el mismo proceso para ambos, a pesar de que significa tener que lidiar con muchas más estrategias que sé que serán filtradas en la siguiente fase.

Ten en cuenta que he personalizado las opciones de evolución genética y he incluido filtros en la población inicial. De esta forma se tarda más en generar la población inicial, pero he comprobado que las estrategias producidas por esa población inicial son de mejor calidad. Al final de cada tarea filtro en la clasificación o filtro en la tarea de comprobación cruzada. Copio sólo las estrategias que han tenido éxito en un banco de datos para cada fase. De este modo, puedo examinar qué estrategias han sobrevivido a qué fase de reevaluación, en caso de que quiera ajustar el flujo de trabajo de algún modo o simplemente examinar los resultados de una fase concreta con más detalle, y sin tener que ejecutar las tareas una por una para ello.

Como estoy usando Darwinex como broker, verás que tengo un paso en el que pruebo con datos de tick de Darwinex en los datos de tick disponibles (normalmente solo desde 2018 más o menos).

Estoy replanteándome mi flujo de trabajo con algunas de las ideas que habéis compartido en este foro. Así que ahora estoy queriendo tener un proceso en el que no tengo que aplicar los parámetros optimizados, y así tener que volver a probar, etc con esos nuevos parámetros, ya que creo que esto hace las cosas mucho más engorroso. Aun así, creo que la optimización secuencial y los pasos de optimización "walk forward" son importantes, pero más como pruebas de robustez, aunque no aplique los parámetros "optimizados". La optimización secuencial asegura que los parámetros están en un rango estable de valores y, bueno, para resumir, leer a Roberto Pardo me ha convencido de que WF también es útil para la robustez.

Me gusta la idea de seleccionar las estrategias que se incluirán en una cartera de cuenta real en función del rendimiento en una cuenta demo o en una cuenta real con un tamaño de posición mínimo. Sin embargo, una parte de la clasificación, creo que sería bueno tener un requisito mínimo de corte, así, digamos factor de beneficio> 1,5 o algo así. ¿Qué te parece?

¡Salud!

Adjuntos:
Debes acceda a para ver los archivos adjuntos.

1

AlgotradingDE

Cliente, bbp_participant, comunidad, sq-ultimate, 30 respuestas.

Visitar el perfil

hace 1 año #278305

Hola Kevin, hola Conmariin,

Desgraciadamente, mi (larga) respuesta a tus mensajes está aún pendiente de moderación, aunque no sé por qué. Así que espero que se publique pronto, porque es muy importante. Quería sugerir un proyecto de colaboración muy concreto.

Yo diría que si no sale hasta mañana, haré el esfuerzo y escribiré el post entero una vez más.

Esperemos lo mejor.

Gerhard Frischholz
https://Algotrading.de

0

Conmariin

Abonado, bbp_participant, comunidad, cliente, 54 respuestas.

Visitar el perfil

hace 1 año #278310

Hola Kevin,

gracias por tu flujo de trabajo 🙂 .

He adaptado el útil ProfitFactor(IS) >= 1 en las Opciones Genéticas a mi flujo de trabajo. Sí, se necesita más tiempo para obtener en su cantidad de estrategias, pero creo que tienes razón.

Estoy haciendo el Walk-Forward-Matrix con el ganador del "concurso" también, pero es sólo para mí un elemento estadístico. Voy a reconocer los resultados, pero no son criterios para mí para clasificar los EA.

 

Operaciones automáticas con Asesor Experto
https://www.rabenesche.de

0

Viendo 15 respuestas - de la 16 a la 30 (de un total de 48)

1 2 3 4