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

 
Dr.Trader:

Parece complicado y no estoy seguro del resultado, paso.
R dispone de un paquete GMDH ("MGUA" en inglés).

Es difícil porque hay todo tipo de algoritmos y es fácil confundirse.

Hay un paquete, pero es "aburrido".

Intentaré explicarlo en términos más sencillos y cortos...

Un modelo combinatorio autoorganizado no físico es

Simplemente una simple búsqueda de todas las combinaciones posibles de elementos de la muestra (predictores) y comprobación de cada iteración de esta búsqueda en OOS, como los predictores son polinomios o armónicos dichas combinaciones pueden complicarse, así que ir como a un nuevo nivel y hacer combinaciones con combinaciones y comprobar de nuevo en OOS y así sucesivamente, hasta encontrar el mínimo error en OOS, esto es una esencia de la autoorganización (si lo he entendido bien)

Lo que propongo....

Todos sabemos que cualquier función puede descomponerse en una serie de Fourier, como en la Fig.

ч

Lo contrario también es cierto que con las combinaciones adecuadas de armónicos, podemos obtener cualquier función que necesitemos

Ahora imagine que existe una función (una curva) o un vector, llámelo como quiera... que describe completamente un instrumento de mercado y lo supera... Puede ser una estacionalidad inteligente expresada en una función o dependencia de otros instrumentos, o ciclos lunares )) es absolutamente intrascendente y los mortales no lo sabemos PERO podemos encontrar esta dependencia sin saber siquiera dónde buscarla ... Llamemos a esta dependencia -que impulsa el mercado- superdependencia más NW

Todo lo que necesitamos es

1) tomar un rango adecuado de armónicos

2) crear un objetivo

3) empezar a recorrer todas las combinaciones posibles entre los armónicos y observar el OOS.

¿Entiendes lo sencillo y profundo que es? ¡No sabemos dónde buscar el SP, pero podemos generarlo sintéticamente por nosotros mismos!

Eso es, parece un simple algoritmo de sobremuestreo, pero cuando lo entendí, me quedé asombrado...

¡Pero hay un gran PERO! Habrá trillones de combinaciones, necesitamos una manera de evitarlo, y necesito tu ayuda.

¿tal vez la genética sea una forma de buscar buenas combinaciones?

¿Qué opina de la idea y de su aplicación?

BLEEP!!! ......

 

Lo que usted describe es la adecuación del resultado a "bueno en OOS". En primer lugar, se seleccionan los parámetros del modelo (combinaciones armónicas) de forma que se obtenga un buen resultado en la muestra. Luego seleccionas de ellos los parámetros que son buenos en el oos. Se trata de un doble ajuste de los buenos resultados y lo más probable es que el modelo resulte inútil con los nuevos datos comerciales.

Con las combinaciones de armónicos se puede describir el movimiento de los precios, pero lo mismo se puede conseguir con las neuronas o el bosque. Creo que ya lo han hecho cientos de veces con las neuronas y no ha funcionado, ¿por qué creen que el resultado del MGUA será positivo? El aprendizaje automático en el mercado de divisas no se puede utilizar tan fácilmente como en los problemas convencionales, el comportamiento de los precios cambia con el tiempo, y la mayoría de las dependencias que se encuentran y utilizan - dejarán de existir muy rápidamente. Y todos estos modelos están diseñados para dependencias constantes que no cambian con el tiempo, y por eso no obtienen beneficios en un problema así.

 
mytarmailS:

Es difícil porque hay todo tipo de algoritmos y es fácil confundirse.

Hay un paquete, pero es "aburrido".

Intentaré explicarlo en términos más sencillos y cortos...

Un modelo combinatorio autoorganizado no físico es

una simple búsqueda de todas las posibles combinaciones de elementos de la muestra (predictores) y comprobación de cada iteración de esta búsqueda en OOS ya que los predictores son polinomios o armónicos, dichas combinaciones pueden complicarse, por lo que ir como a un nuevo nivel y hacer combinaciones con combinaciones y de nuevo comprobar en OOS y de nuevo a un nuevo nivel y así sucesivamente hasta que se encuentre el mínimo error en OOS, esto es una esencia de la autoorganización (si he entendido todo bien ahí)

Lo que propongo....

Todos sabemos que cualquier función puede descomponerse en una serie de Fourier, como en la Fig.

Lo contrario también es cierto, que con las combinaciones adecuadas de armónicos , podemos obtener cualquier función que necesitemos

Ahora imagine que existe una función (una curva) o un vector, llámelo como quiera... que describe completamente un instrumento de mercado y lo supera... Puede ser una estacionalidad inteligente expresada en una función o dependencia de otros instrumentos, o ciclos lunares )) es absolutamente intrascendente y los mortales no lo sabemos PERO podemos encontrar esta dependencia sin saber siquiera dónde buscarla ... Llamemos a esta dependencia -que impulsa el mercado- superdependencia más NW

Todo lo que necesitamos es

1) tomar un rango adecuado de armónicos

2) crear un objetivo

3) empezar a recorrer todas las combinaciones posibles entre los armónicos y observar el OOS.

¿Entiendes lo sencillo y profundo que es? ¡No sabemos dónde buscar el SP, pero podemos generarlo sintéticamente por nosotros mismos!

Eso es, parece un simple algoritmo de sobremuestreo, pero cuando lo entendí, me quedé asombrado...

¡Pero hay un gran PERO! Habrá trillones de combinaciones, necesitamos una manera de evitarlo, y necesito tu ayuda.

¿tal vez la genética sea una forma de buscar buenas combinaciones?

Alguna opinión sobre la idea y su aplicación

He implementado esta idea en mi indicador. Consume muchos recursos. Puedo ajustarlo en el historial de 1000 barras, o puedo ajustarlo en el historial de 10000 barras. La conclusión es la siguiente: a veces funciona perfectamente y predice un punto en el precio. Pero otras veces ni siquiera está cerca. La razón es que todos estos períodos comienzan a flotar en el mercado después del punto de cálculo. Probablemente es posible introducir correcciones -+ a partir de los valores actuales, pero a mí no me ha funcionado.
 
Dr.Trader:

Lo que usted describe es la adecuación del resultado a "bueno en OOS". En primer lugar, se seleccionan los parámetros del modelo (combinaciones armónicas) de forma que se obtenga un buen resultado en la muestra. Luego seleccionas de ellos los parámetros que son buenos en el oos. Este es un doble ajuste para un buen resultado, y en los nuevos datos de comercio el modelo será muy probablemente inútil...

Me acosté con la idea y la entendí yo mismo, es una tontería, es sólo un ajuste...

Pero aquí está la pregunta, ¿por qué no se ajusta a todo lo demás? Ya sabes, cualquier entrenamiento con OOS es un ajuste para OOS, ¿verdad?

Dr.Trader:

¿Por qué cree que el resultado del MGUA será positivo?

Yo mismo no entiendo nada de esto todavía, quizá nunca lo haga...

Es que en la correspondencia privada Nikolai me recomendó que estudiara el análisis espectral y se familiarizara con el MSUA si quería empezar a hacer algo útil.

Dijo que él mismo empezó con ello, y que cuando construyó su primer robot funcional sólo utilizó dos libros, uno de Ivakhnenk "MSIA" y otro de Marple "Spectrum Anal".

la traducción de los títulos de los libros no es correcta, sólo la he resumido para que quede claro de qué estamos hablando en general.

¿Quién es Nicolás? Además de ser un hombre humilde y muy inteligente.

Es doctor en inteligencia artificial, lleva unos 20 años construyendo robots, sus últimos robots tienen este aspecto:

я

Así que estuvo hilando estas redes hace unos 30 años, en una época en la que aún no conocíamos palabras como "red neuronal" ......

Y ahora este hombre sólo recomienda dos cosas Fourier y magua, el sentido común dice que vale la pena escuchar... Aquí están algunas de mis razones por las que debería funcionar))

 
Maxim Romanov:
Eso es más o menos lo que quería decir en el indicador. Consume muchos recursos. Puedo ajustarlo al historial de 1000 barras, o al de 10000. La conclusión es la siguiente: a veces funciona perfectamente y predice un punto en el precio. Pero otras veces ni siquiera está cerca. La razón es que todos estos períodos comienzan a flotar en el mercado después del punto de cálculo. Probablemente puedas introducir correcciones -+ de los valores actuales, pero no lo conseguí.
Ya veo, encajando como encajando)) Estoy de acuerdo con el hecho de que estaba equivocado...
 

pregunta

hay un vector "x" y una matriz "y"

necesitamos calcular rápidamente la distancia euclidiana entre "x" y cada línea de la matriz "y"

Superé la función estándar "dist()" y escribí la mía propia.

штатная

system.time(for(i in 1:nrow(m)) {dist.ve[i] <- dist(rbind(x,m[i,]))})

   user  system elapsed
   4.38    0.00    4.39

самописная

system.time(for(i in 1:nrow(m)) {dist.ve[i] <- euc.dist(x,m[i,])})
   user  system elapsed
   0.65    0.00    0.67

pero esto no es suficiente, me gustaría acelerar al segundo cero 0.0....

¿qué más se puede hacer?

código:

x <- rnorm(10)
m <- matrix(data = rnorm(1000000),ncol = 10)

euc.dist <- function(x1, x2) sqrt(sum((x1 - x2) ^ 2))

dist.ve <- rep(0,nrow(m)) # distance vector
system.time(for(i in 1:nrow(m)) {dist.ve[i] <- dist(rbind(x,m[i,]))})
system.time(for(i in 1:nrow(m)) {dist.ve[i] <- euc.dist(x,m[i,])})
 
mytarmailS:

Pero aquí está la pregunta, entonces ¿por qué no se ajusta todo lo demás? Porque entonces resulta que cualquier formación con pruebas de OOS es apta para OOS, ¿no? si no es así, ¿por qué no?

La validación cruzada y la prueba oos en datos estacionarios (que tienen dependencias constantes que no cambian) son útiles. En datos no estacionarios, es inútil.

Puede, por ejemplo, entrenar un montón de modelos utilizando el mismo algoritmo, pero sobre datos de diferentes épocas; para cada modelo encontrar los beneficios sobre la muestra y los oos y encontrar la correlación para estos dos beneficios. Para los modelos comúnmente conocidos en el mercado de divisas, no suele haber tal correlación, es decir, el beneficio sobre la muestra no garantiza nada, en cuyo caso es inútil hacer una validación cruzada para intentar mejorar los resultados sobre nuevos datos.
Por otro lado, si la correlación es alta y positiva, entonces el modelo tiene cierto potencial y se puede hacer con seguridad una validación cruzada para ajustar los parámetros del modelo y mejorar los resultados.

 

Aquí hay un ejemplo para el puesto anterior. Tomamos los precios abiertos del eurusd durante un par de meses, entrenamos un modelo (randomForest) sobre ellos, y los utilizamos para predecir durante un pequeño periodo de tiempo nuevos datos. El valor objetivo es el incremento del precio para la siguiente barra (dos clases 0 y 1). Todo esto se repite 1000 veces para diferentes intervalos de tiempo, y luego se encuentra la correlación.

Al final vemos la correlación de los resultados en los datos de entrenamiento y los nuevos, en este caso obtuvimos alrededor de 0,1, es decir, algo debe ser cambiado en el entrenamiento, este enfoque no traerá beneficios. Un buen resultado en los datos de entrenamiento no garantiza un buen resultado en el futuro.

La función TrainModel se puede utilizar para entrenar sus propios modelos, hacer una validación cruzada, un emparejamiento genético, etc.

Archivos adjuntos:
 
Dr.Trader:

Aquí hay un ejemplo para el puesto anterior. Tomamos los precios abiertos del eurusd durante un par de meses, entrenamos un modelo (randomForest) sobre ellos, y los utilizamos para predecir durante un pequeño periodo de tiempo nuevos datos. El valor objetivo es el incremento del precio para la siguiente barra (dos clases 0 y 1). Todo esto se repite 1000 veces para diferentes intervalos de tiempo, y luego se encuentra la correlación.

Al final vemos la correlación de los resultados en los datos de entrenamiento y los nuevos, en este caso obtuvimos alrededor de 0,1, es decir, algo debe ser cambiado en el entrenamiento, este enfoque no traerá beneficios. Un buen resultado en los datos de entrenamiento no garantiza un buen resultado en el futuro.

Puede utilizar la función TrainModel para entrenar sus modelos, hacer una validación cruzada, un emparejamiento genético, etc.

1. ¿Por qué se normaliza manualmente?

2. ¿Por qué en la correlación -1 y 1 es bueno? solo si 1 es bueno -1 es muy malo, si entiendo bien la idea, -1 es correlación inversa

3. ¿Has probado a controlar el error de un modelo entrenado en una ventana deslizante y, si no te conviene, volver a entrenar el modelo y ver qué pasa?

4. Y la idea global de por qué todo funciona tan mal, el mercado no es estacionario, necesitas elaborar algún otro concepto de formación de características, tal vez cambiar completamente al paradigma de las reglas lógicas, creo que necesitas alejarte de los números casi por completo, o estudiar el análisis del espectro)))))

 

Ayer rebusqué en las bolsas buscando la adecuada para terminar una idea, no encontré la adecuada, pero sí una interesante...

Un paquete llamado "tendencia".

https://cran.r-project.org/web/packages/trend/trend.pdf

El paquete implementa varias pruebas de tendencia y otras cosas

por ejemplo, la función

mk.test() - da las características de una tendencia, por ejemplo, hacia arriba o hacia abajo, etc.

pettitt.test() - según he entendido, encuentra el punto del vector donde se inició la tendencia

Sens.slope() - con esta función se pueden calcular los ángulos de inclinación de la tendencia

y muchas otras características especiales

Creo que, siempre que se pueda observar científicamente la tendencia, hay que comprobarlo) calculé mk.test()$Zg en una ventana deslizante de 200 valores, según clowes, y resultó ser algo así como un indicador

Por encima de cero tiende a subir, por debajo de cero tiende a bajar.

й

¿Y qué? capta las tendencias y no confunde la dirección de los precios como macd-ki y stochastc-ki.... En general, me gusta el hecho de que siempre abran posiciones en la dirección de la tendencia...

Durante algunos periodos incluso se gana buen dinero,

с

Si tomo crono, no M5, entonces tal vez será algo útil.

Karoch lo que propongo, que alguien que tenga un ordenador potente y tiempo cuente todas estas pruebas por trendiness, pendientes, ángulos, etc. y alimente el MO, quizás eso funcione, solo que ahora tengo un ordenador funcionando a toda velocidad, corriendo para procesar, terminar de contar en cuatro días y el portátil en el que me siento ahora, solo puede mirar sitios)