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

 
Mihail Marchukajtes:
¡¡¡¡Saludos!!!! Utilizo LibVMR pero parece una versión antigua, porque aparece el error "Bad Data". Tengo entendido que hay una nueva versión. ¿Dónde puedo descargarlo? ¿Si es posible?

Los productos frescos y las descargas se distribuyen ahora a través del repositorio de BitBucket en: https://bitbucket.org/jprediction/jprediction/downloads

El nombre del proyecto también ha cambiado de libVMR a jPrediction

 
Yury Reshetov:

¿No está claro? ¿Está tomando los precios como OHLC para los patrones o alguna transformación de los mismos?

La cuestión es que si tomamos el OHLC tal cual, un patrón similar 1000 puntos más alto o más bajo que el comparado será más diferente por la distancia euclidiana que un patrón totalmente diferente 10 puntos más alto o más bajo que el comparado. Y la diferencia será de dos órdenes de magnitud y, por tanto, el error de comparación también será de dos órdenes de magnitud.

Cuando medí con Euclid, todos los vectores fueron normalizados y censurados
 
mytarmailS:
Cuando medí con Euclid, todos los vectores fueron normalizados y censurados
¿Cómo se hace eso?
 
mytarmailS:

La solución fue encontrada.....

Si se aplica el análisis del espectro al vector actual (precios actuales) y se descompone en componentes más simples, dichos componentes pueden encontrarse más fácilmente en el historial debido a su estructura simple

s

price <- cumsum(rnorm(200))+1000

library(Rssa)
s <- ssa(price)
r <- reconstruct(s)

par(mfrow=c(1,2))
plot(price,t="l")
plot(r$F2,t="l")
for(i in 3:50) {lines(r[[i]],col=i)}

Utilicé el método "oruga" o "ssa"http://www.milanor.net/blog/wp-content/uploads/2014/07/SingularSpectrumAnalysisWithRssa.pdf para la descomposición.

Buscamos análogos en la historia y vemos cómo acaban, pero no buscamos los análogos de los precios, sino cada uno de los componentes espectrales individuales, y luego los conectamos y obtenemos una previsión simple

A juzgar por las primeras pruebas, el tema es bastante prometedor si prevemos cada uno de sus componentes por separado. El pronóstico es a menudo correcto, pero rara vez no está sesgado...

ss

El color negro indica una de las componentes actuales, el color azul muestra la componente análoga encontrada en el historial después de la línea vertical negra es un nuevo dato desconocido para el algoritmo - de hecho, la previsión - como se puede ver con bastante eficacia

Pero como ves siempre hay un sesgo en la predicción, y no siempre uno bueno naturalmente, la proximidad entre análogos buscando el camino antiguo a través de la correlación, entiendo que es uno de los caminos más inadecuados, por lo que quería sustituir el algoritmo que buscara similitudes en la amplitud, fase, frecuencia. ¿Ahora entiendes lo que quiero decir cuando hablo de Fourier?

 

Dr. Comerciante

¿Cómo está entrenada tu red neuronal?

¿RNeat? No, el entrenamiento es muy lento, la aptitud del modelo es ahora de 0,018, creciendo una centésima al día. La precisión en los datos de entrenamiento y validación es ahora de 0,52, muy baja, pero al menos está en el lado positivo sin reentrenamiento.
 
Yury Reshetov:
¿Cómo se hace?

Bueno, es que antes de comparar los dos vectores, lo he escalado con la función " scale "

scale(x = datos , center = TRUE, scale = TRUE )

 
Yury Reshetov:
¿Cómo?
Curiosamente, he descargado la versión 6.0 porque la 5.0 no guarda y no crea un archivo de texto, por lo que no está claro por qué en el entrenamiento uno los valores de error, pero en el archivo de texto los valores son completamente diferentes?
 
Mihail Marchukajtes:
Me pregunto por qué he descargado la versión 6.0 porque la 5.0 no guarda y no crea un archivo de texto, por lo que no está claro por qué durante el entrenamiento los valores de un error y en el archivo de texto son completamente diferentes?
En el archivo de texto, las características para el clasificador binario y después del entrenamiento para el ternario. Hay dos rejillas y si sus lecturas coinciden, obtenemos una respuesta afirmativa, si difieren, obtenemos una raya. Los clasificadores binarios siempre dan sólo respuestas afirmativas, independientemente de que los datos de patrones similares estén en la muestra o no. Los clasificadores ternarios a veces no dan una respuesta afirmativa si la muestra de entrenamiento no contenía patrones similares.
 
Dr.Trader:
¿RNeat? No, el entrenamiento es muy lento, la aptitud que define el modelo es ahora de 0,018, creciendo una centésima al día. La precisión en los datos de entrenamiento y validación es ahora de 0,52, muy baja, pero al menos está en el lado positivo y sin reentrenamiento.
Ooh 52 es mejor que 50 , como se puede recordar la última vez fue 0,017 por lo que una centésima puede aumentar la precisión en un 2% ) , creo que si la red es lo suficientemente bueno es mejor para reescribirlo para SI , manténgame informado , estoy muy interesado ...
 
mytarmailS:
Ooh 52 ya es mejor que 50 , según recuerdo la última vez fue de 0,017 por lo que una centésima eleva la precisión de la predicción en un 2% ) , creo que si la red vale la pena la atención es mejor reescribirlo en SI , manténgame informado, estoy muy interesado ...

La aptitud puede aumentar simplemente porque el modelo ha mejorado su topología y ha eliminado un par de neuronas, con la misma precisión.
Por lo que entendí de los comentarios en el código - es un puerto de Lua. Y Lua también es un port, porque el original ya estaba en c++:http://nn.cs.utexas.edu?neat
El puerto desde el puerto es desafortunado, un montón de acciones innecesarias, sería mejor si el autor de RNeat tomara el código C++ como base, y aplicara los paquetes genéticos existentes de R para evolucionar la red.