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

 
Forester #:

La CPU de Maxim es 2 veces más rápida que la mía. No recuerdo si dio timings para Algliba, creo que no.

Tiempos.

Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading.

Aprendizaje Automático en Trading: Teoría, Modelos, Práctica y Algoritmos de Trading

Aleksey Vyazmikin, 2023.09.26 05:37 AM

Para las estadísticas, este es mi resultado

2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   EX5: 3981 AVX Release.
2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   TerminalInfoString(TERMINAL_CPU_NAME) = AMD FX-8350 Eight-Core 
2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   TerminalInfoInteger(TERMINAL_CPU_CORES) = 8 
2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   TerminalInfoString(TERMINAL_CPU_ARCHITECTURE) = AVX 
2023.09.26 06:28:23.332 Test_Corr (USDJPY,H1)   inRows = 100 inCols = 15000 
2023.09.26 06:28:45.032 Test_Corr (USDJPY,H1)   matrix<double> Matrix1 = CorrMatrix(Matrix) - 21700095 mcs, 1717 MB
2023.09.26 06:29:48.495 Test_Corr (USDJPY,H1)   matrix<double> Matrix2 = Matrix.CorrCoef(false) - 63460976 mcs, 1717 MB
2023.09.26 06:29:50.225 Test_Corr (USDJPY,H1)   IsEqual(Matrix1, Matrix2) = true 
Está claro que Python es mucho más rápido. Y por lo que será más rápido en C, por lo que resulta que MQ no nos está diciendo algo, prometiendo un rendimiento comparable....

Debo señalar que Python tiene una pequeña paralelización al ejecutar código - durante medio segundo para unos dos núcleos, el resto se cuenta en un núcleo.

 
Forester #:
Tú mismo has escrito que el estándar es más lento que el actual alglibov. Tengo el antiguo en forma de código, pero no el terminal.

El propio código fuente de Alglib fue reescrito por MQ para sus matrices. Ni siquiera quiero discutir el estándar CorrCoef, hay problemas obvios allí.

Es decir, hay dos fuentes de Alglib.

  • El original sobre matrices dinámicas ANTES de la transformación MQ.
  • El MQ modificado para sus tipos de matrices/vectores. Eso es lo que he probado.
Las fuentes de ambas versiones de Alglib deberían estar disponibles, para que puedas compararlas entre sí.
 
fxsaber #:

Horarios.


Bueno, sí... la gente dedica años a los algoritmos. Vi un artículo sobre la ordenación rápida en C++: el código parece más complicado y realiza acciones innecesarias, pero funciona más rápido gracias al cálculo previo del procesador. Mirando hacia el futuro...
 
fxsaber #:

El propio código fuente de Alglib fue reescrito por MQ para sus matrices. Ni siquiera quiero discutir el estándar CorrCoef, hay problemas obvios allí.

Es decir, hay dos fuentes de Alglib.

  • El original sobre matrices dinámicas ANTES de la transformación MQ.
  • El MQ modificado para sus tipos de matrices/vectores. Eso es lo que he probado.
Las fuentes de ambas versiones de Alglib deberían estar disponibles, para que puedas compararlas entre sí.
Soy un vago. No uso la correlación. Simplemente noté una diferencia de velocidad hace un año y lo compartí cuando surgió el tema.
 
fxsaber #:
NumPy parece tener un algoritmo diferente de ALglib

En AlgLib, la documentación original dice por qué diferentes, cuáles y para qué sirven. Con las regresiones (ahí estuve indagando sobre todo en AlgLib) es bastante original.

De nuevo, todo se compara de forma extraña, como no se puede. Construye gráficos de dependencias speed=f(dimensionality,special_matrix_properties) para diferentes librerías/realizaciones y míralos. Estás tomando casos extremos, tomados del techo.

y ahí te fijas no en el valor absoluto, sino en la sintomatología y en la presencia de una "meseta". A partir de ahí eliges una herramienta para trabajar con datos concretos.

 
Forester #:

La CPU de Maxim es 2 veces más rápida que la mía. No recuerdo si dio timings para Algliba, creo que no.

Tengo mt a través de la virtualización allí, las pruebas no será muy plausible.

Además elegí para calcular algo en python y luego transferirlo a cualquier plataforma. Por ejemplo, para crypto no necesitas terminales en absoluto.

Es una mierda total en términos de velocidad
 
Maxim Kuznetsov #:

De nuevo, es una forma extraña de comparar las cosas, de una manera que no se puede.

Yo no hago comparaciones, proporciono código que cada uno puede medir para su propio caso.

La longitud de la cadena de 100 es la longitud del patrón. Probablemente no necesites más que eso.

15000 muestras es memoria limitada debido al tamaño cuadrático de la matriz de correlación. Cuantas más muestras, mejor. Por eso escribí uno casero, donde puedes tener un millón de ellas.

No tengo ni ganas ni tiempo para dedicarme a la comparación objetiva. La hice para mis propias tareas y compartí el código de trabajo. Quien lo necesite lo verá.

 
Ehhh... Si al menos el 5% de todos nuestros esfuerzos se dirigieran a una tarea común, conquistaríamos este mercado en meses.

Y así durante años, décadas cada uno hierve en su propia sopa y el 90% del tiempo útil se gasta en este foro inútil.
 
fxsaber #:

Lo hice para mis propias tareas y compartí el código de trabajo. Cualquiera que lo necesite le echará un vistazo.

¿Dónde puedo ver el código final?

 

¿Alguien ha intentado alguna vez trabajar con "valores atípicos"? Y no hablo de valores atípicos como error, sino de sucesos raros.

Es curioso, pero resultó que en algunas cadenas de muestras, los valores atípicos se registran en más del 50% de los predictores.....

Resulta que estos valores atípicos entran fácilmente en los modelos.

Así pues, parece que no sólo es crítico para NS....