Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 1174

 
Maxim Dmitrievsky:

Eso es lo que molesta, las eternas integraciones que llevan más tiempo que el desarrollo del TC. También me gustaría hacer algo de python, pero aún no tengo tiempo.

Por desgracia, no hay solución a este problema:

1. o bien escribir en un lenguaje(plataforma) de terceros para el ST, pero se obtienen problemas:

a) no hay datos históricos

b) no hay probador

c) no hay pruebas en una cuenta de demostración

-) puede haber algunos problemas con el soporte de la plataforma, por ejemplo, busqué en Google Alglib, hay muy poca información al respecto, todo sólo en el sitio web del desarrollador, no hay soporte

Todas estas cosas hay que arreglarlas con .dll, integraciones y otras muletillas.

2. O escribes todo en MQL y no tendrás ningún problema a.b.c.. Buscará soluciones ya hechas y aparatos matemáticos en la base de código o escribirá toda la lógica (del aparato matemático) desde cero con ayuda de las capacidades de MQL.

3. La variante universal es el .dll ya hecho, que puede ser utilizado en el código MQL. Si usted escribe el código por sí mismo, esta es la solución más práctica, no se puede utilizar el .dll para el Mercado.

Muchos sistemas de desarrollo y análisis permiten crear un .dll como ejemplo - Matlab


ZS: MQL me conviene en un 90%, lo único que tengo que hacer es visualizar los resultados casi desde cero. En Matlab, la salida está siempre a mano, una línea de código y tienes un gráfico listo, todas las variables son visibles, puedes cambiar las variables... en una palabra, Matlab es un entorno de desarrollo listo para una matriz.

 
Igor Makanu:

Me refiero a la investigación en términos de MO, es un proceso bastante específico donde el trabajo principal es con matrices, es una pesadilla trabajar con ellas en lenguajes de bajo nivel. El resto puede sobrevivir de alguna manera :)

 
Maxim Dmitrievsky:

todas las bibliotecas del Ministerio de Defensa se han desarrollado, ya que ésta sólo libra en los pros

no se sienten cómodos y durante mucho tiempo con el MO en lenguajes de bajo nivel, especialmente la investigación

No tengo el problema de la elección. Y, en general, todo es aplicado: mi énfasis está en los predictores y un poco en la orientación, y se dedica más tiempo a desarrollar nuevos predictores desde el papel hasta el código. Así que la primera pregunta que me hago es si ha sido una buena idea añadir nuevos predictores o no. Y si hay una respuesta más clara a esta pregunta, entonces eventualmente podemos buscar otras implementaciones/enfoques de integración en el código final, pero ahora estoy muy lejos de ello.

 
Igor Makanu:

Por desgracia, no hay solución a este problema:

1. o escribir en un lenguaje(plataforma) de terceros TC, pero se obtienen problemas:

a) no hay datos históricos

b) no hay probador

c) no hay pruebas en una cuenta de demostración

Lo que vale en una lengua ajena:

1. cargar el historial en CSV,

2. Haz un probador (esto es sólo y no más que un bucle),

3. en una cuenta de demostración, puede probar, por ejemplo, mediante el intercambio de archivos con el terminal. Si lo haces a través de la RAM-Disco, el rendimiento es como el intercambio a través de la memoria: Gigabytes por segundo.

Si el sistema tiene éxito, que no lo tendrá la primera vez, ahorrará mucho tiempo de modelado. Y más tarde, cómo meterlo en el terminal es un asunto manejable.

 
Maxim Dmitrievsky:

Me refiero a la investigación en términos de MO, es un proceso bastante específico donde el trabajo principal es con matrices, es una pesadilla trabajar con ellas en lenguajes de bajo nivel. El resto sigue siendo, de alguna manera, sobrevivible :)

Lo entiendo - yo también estoy en la misma situación, por eso después de estudiar la literatura o la herramienta matemática primero saco todo en Matlab, luego empiezo a experimentar y a portarlo parcialmente a MQL. Las mismas matrices y vectores en Matlab están inicialmente ligados a todas las variables, no tienes que describir o analizar nada, simplemente trabajas, multiplicas un vector por una matriz o lo transpones, es difícil imaginar lo que Matlab no puede hacer en términos de operaciones matemáticas

SZY: Con MO, todavía es mucho tiempo para resolver en MQL, MATlAB parece ser capaz de ayudar, pero recuerdo que cuando lo instalé todo estaba claramente allí y la red se dibujó y el estado de cada elemento de la red podría ser visto paso a paso, como NeuroSolutions , tal vez más tarde voy a llegar a ella

 
Aleksey Vyazmikin:

No tengo el problema de la elección. Y, en general, todo es aplicado: mi énfasis está en los predictores y un poco en la orientación, y se dedica más tiempo a desarrollar nuevos predictores desde el papel hasta el código. Así que la primera pregunta que me hago es si ha sido una buena idea añadir nuevos predictores o no. Y habrá una respuesta más clara a esa pregunta, entonces eventualmente podremos buscar otras implementaciones/enfoques para integrar en el código final, y ahora mismo estoy muy lejos de eso.

Sinceramente, no sé cuál es tu filosofía de producción del grial, ya que sólo utilizas el aprendizaje automático para seleccionar los predictores... ¿y luego qué hacer con ellos? )

 
Yuriy Asaulenko:

Lo que vale en una lengua ajena:

1. cargar el historial en CSV,

2. Haz un probador (esto es sólo y no más que un bucle),

3. en una cuenta de demostración, puede probar, por ejemplo, mediante el intercambio de archivos con el terminal. Si lo haces a través de la RAM-Disco, el rendimiento es como el intercambio a través de la memoria: Gigabytes por segundo.

Si el sistema tiene éxito, que no lo tendrá la primera vez, ahorrará mucho tiempo de modelado. Y después, cómo introducirlo en el terminal es un asunto manejable.

1. Eso es lo que hago en Matlab.

Hace tiempo intenté hacerlo en Delphi, pero por suerte no lo conseguí. Me pasé a MQL, puedo ver el drawdown y visualizar cómo operaba el EA, puedo añadir indicadores ya hechos como filtros adicionales, añadir trailing bars, promediar... Puedo ver todo en el tester, simularlo todo en un software de terceros.¿Por qué? Es más fácil estudiar MQL desde cero en 3-4 meses y aprender a escribir EAs a partir de una plantilla. Ahora puedo comprobar cualquier indicador gráfico en el probador en 15 minutos - escribo mi EA usando una plantilla ya hecha en forma de programación de procedimientos, es decir, sólo conecto funciones ya hechas

3. puede, pero tengo todo en MQL, lo que falta voy a añadir o conectar. dll


Pero de nuevo a la cuestión de la modelización - vivimos en tiempos felices, las soluciones ya hechas son una moneda de diez centavos por docena en la web, el entorno de modelización y la plataforma de negociación deben estar separados, por lo que resulta que una persona tiene que ser un desarrollador y un programador y un matemático, y ... y todo.

O eso o como el 90% de los "comerciantes" de la runa comercian por la primitiva TS))

 
Maxim Dmitrievsky:

Sinceramente, no sé cuál es tu metodología de producción del grial, ya que sólo utilizas el aprendizaje automático para seleccionar los predictores... ¿y luego qué haces con ellos? )

Selecciono los predictores con el fin de deshacerme de los erróneos que son ruidosos y contribuyen al sobreaprendizaje...

Al mismo tiempo estoy minando hojas de árbol para R, que también resultan ser muy buenos predictores y catbust se los come con gusto.

Ahora tengo un experimento prolongado en la división de la raíz del árbol de R, es decir, después de la construcción de un nuevo árbol (utilizando la genética - No sé los detalles, parael Dr. Trader script), quito predictor de la raíz y construir el árbol de nuevo - este proceso no es rápido - en promedio se tarda 3-4 días, así que ya estoy en 29 división, y lo que es interesante, incluso ahora las hojas de los árboles nuevos e interesantes aparecen, que trabajan en los beneficios positivos en 2014-2018 (cada año los beneficios), y la formación es en 2015-2017. De esto se deduce que los algoritmos de construcción de árboles todavía no son tan buenos en cuanto a resultados, ya que pasan por alto las cosas obvias cuando tienen un exceso de buenos predictores, pero cuando empiezan a pasar hambre, surgen nuevas soluciones. En general, a partir de esta experiencia quiero probar a alimentar a los predictores en grupos y ver dónde está la mayor sensibilidad. Entonces quiero construir diferentes árboles con diferentes grupos, hacer un órgano de decisión colectivo de ellos y enviar al comercio...

 
Aleksey Vyazmikin:

Selecciono los predictores para deshacerme de los erróneos, que son ruidosos y contribuyen al sobreaprendizaje...

Al mismo tiempo, extraigo hojas de árbol para R, que también resultan ser buenos predictores y catbust se los come con avidez.

Ahora tengo un experimento prolongado en la división de la raíz del árbol de R, es decir, después de la construcción de un nuevo árbol (utilizando la genética - No sé los detalles, para la secuencia de comandos delDr. Trader), quito predictor de la raíz y construir el árbol de nuevo - este proceso no es rápido - en promedio 3-4 días, así que ya estoy en 29 división, y lo que es interesante, las hojas de los árboles nuevos e interesantes, que trabajan en los beneficios positivos en 2014-2018 (cada año los beneficios), y el aprendizaje es en 2015-2017, aparecen incluso ahora. De esto se deduce que los algoritmos de construcción de árboles todavía no son tan buenos en cuanto a resultados, ya que pasan por alto las cosas obvias cuando tienen un exceso de buenos predictores, pero cuando empiezan a pasar hambre, surgen nuevas soluciones. En general, a partir de esta experiencia quiero probar a alimentar a los predictores en grupos y ver dónde está la mayor sensibilidad. Luego, con diferentes grupos, construye diferentes árboles, haz un órgano de decisión entre pares y envíalos a comerciar...

no entiendo muy bien la división de la raíz del árbol... aunque sólo sea por el esquema :) y cómo pueden funcionar las hojas por separado, la estructura de trabajo es el árbol en su conjunto...

lo pensaré mañana, tengo sueño :)

Por cierto, mql5 tiene las clases estándar ctree y cnode para construir árboles binarios. Si sabes cómo usarlos para el datamining ... pero no sé, pero parece que tienes algo así

 
Maxim Dmitrievsky:

No entiendo muy bien lo de la división de la raíz del árbol... estaría bien un esquema :) y cómo las hojas pueden funcionar por separado, la estructura de trabajo es el árbol en su conjunto...

Lo pensaré mañana, tengo sueño :)

Por cierto, mql5 tiene las clases estándar ctree y cnode para construir árboles binarios. Si sabes cómo usarlos para el datamining... pero no sé, pero parece que tienes algo así

La "raíz del árbol", en mi lenguaje, es el primer predictor que divide el árbol en otras ramas, normalmente en dos partes (pero también hay otras variantes).

"Dividir el árbol" es la exclusión del predictor raíz de la muestra antes de volver a procesar los datos.

Las hojas son sólo un conjunto de reglas, que se aplican con poca frecuencia, pero que pueden dar resultados estables a diferencia de todo el árbol. Es decir, estoy a favor de la negociación sin prisas: si el algoritmo no entiende la situación del mercado, es mejor dejar que espere hasta que el mapa esté tumbado y pueda tomar una decisión.

He manejado más de 20000 hojas hasta ahora y he observado la genética, pero las buenas hojas para las decisiones de trading son unas 200 - las que tienen beneficios cada año y una rentabilidad aceptable (1,4 como mínimo), pero hay buenos filtros con señal de "espera" - no los conté - ahora estoy desarrollando mi método para seleccionarlos con más precisión.

Tengo 3 clases, es decir, el árbol tiene señal de compra, venta y espera, es ahora que estoy experimentando con catbust y simplifiqué los objetivos para que se compriman en una sola clase...

No sé nada sobre las clases ctree y cnode, así como sobre la POO en general - no soy muy bueno programando, así que difícilmente se pueden entender los códigos de las clases sin un programador...