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

 

Recuerdo que antes tales "patrones" de convolución me parecían nada más que un grial, hrenFx incluso expuso tal indicador hace 10 años, también hice mi propia versión, pero... no funciona muy bien, al menos no para variantes simples con votación de convolución de diferentes TFs.

 
-Aleks-:

Entiendo que no puede hacerlo por sí mismo - hay señales para entrar en el historial y hay una serie de indicadores que necesitan ser clasificados, pero el resultado del trabajo del NS no es la confirmación de la señal, sino la generación de la señal en sí misma. Pido disculpas, tal vez es estúpido, pero con mi escaso conocimiento del tema no veo por qué no es posible - después de leer su artículo.

Sobre la ZZ, no entiendo - una ZZ normal muestra el extremo actual...

Y de nuevo, una ZR es para generar una señal, no su confirmación - es decir, siempre hay una señal - vender cuando el mercado está subiendo, pero la ZN tiene que confirmarla, basándose en el patrón de las variaciones pasadas.

¿Entiendo correctamente que la ventaja de NS es que la señal puede ser confirmada o rechazada por una serie de patrones, que se recogen en el historial, no deben contradecirse entre sí y se comprueban cuando aparece una señal de trading?



Es una explicación larga, en general la ZZ no es adecuada. Esto se lo digo con seguridad. Y una cosa más:

Debemos decidir qué queremos hacer. Predecir o clasificar. Los enfoques son totalmente diferentes, pero tienen el mismo objetivo ....

Vuelve a mirar el artículo. La estrategia básica sólo es necesaria para determinar el momento en que analizamos el mercado. Es decir, se ha producido el evento, comenzamos el análisis. El evento puede ser cualquier cosa.

Supongamos que los vagones se cruzan, se produce el evento y comenzamos el análisis.

En cierto modo tienes razón. El propio ordenador Nacional produce señales, pero teniendo en cuenta que trabaja en el momento de la formación de la señal de la estrategia básica. Significa que el NS confirma o niega la señal de la estrategia subyacente. Así que es así....

 
elibrarius:
Primero cargo el historial de 375000 barras (para M1 es un año) en una matriz, es decir, en la memoria RAM (unos 30-60 segundos), y luego tarda entre 30 y 700ms en recorrerlo dependiendo de la profundidad del patrón.

Una vez más digo cómo se debe abordar esta tarea. Creo que hay peces allí....

 
Mihail Marchukajtes:

Pero entrenaremos la red para un patrón. Aquellos patrones que aumenten el mercado marcaremos 1, los que disminuyan marcaremos 0. Ahora sólo nos queda entrenar a NS.

Según mi experiencia, es mejor no hacerlo. Si conoce los incrementos de precio para la siguiente barra, entonces es mejor utilizarlos como objetivo para las neuronas. Al fin y al cabo, los incrementos son también una información que puede ser útil en el entrenamiento, en comparación con sólo dos clases 0 y 1. Incluso si las predicciones de regresión siguen dando como resultado dos clases (compra/venta), es mejor redondear el resultado de la regresión que desechar información en la fase de entrenamiento.

Por ejemplo, mi único modelo de regresión más o menos funcional para el mercado de divisas se rompe, si reemplazo el modelo con un modelo de clasificación (en R la transición entre la clasificación y la regresión es en realidad muy simple, la clasificación suele activarse automáticamente si todos los objetivos se redondean a 0 y 1, o si el objetivo tiene un factor de tipo ).

 
elibrarius:

Hice un indicador que busca patrones similares en la historia, aquí está la lectura actual en M1 EURUSD. Los 10 más parecidos del año. He retocado ligeramente el ejemplo del artículo https://www.mql5.com/ru/articles/197 - en lugar de una variante más parecida, tomo N variantes más parecidas y hago una media de la respuesta en forma de barra. Para buscar el patrón no sólo utilizo un precio de cierre, sino el canal en el que el precio ha estado durante este período, es decir, el mínimo y el máximo. Subo a Low por el valor de la propagación.

Como se puede ver, este patrón en la historia dio movimientos tanto a la baja como al alza (líneas grises y rojo oscuro). El movimiento medio del precio (líneas blancas y rojas) es casi nulo (ligeramente más amplio que el spread), no debemos operar con tal predicción, el spread, el swap y la comisión nos llevarán a una pérdida. A veces hay patrones con una buena predicción hacia un lado, pero en la siguiente barra la predicción puede invertirse. Si en este caso se invierte la posición, el diferencial y la comisión volverán a hacer que la primera operación no sea rentable.
La predicción del indicador se puede comparar con la regresión NS, pero a partir de la regresión es fácil hacer un clasificador. Además de la baja y la alta, se puede añadir cualquier indicador.

Si he entendido bien, las redes neuronales hacen esencialmente lo mismo que este indicador de promedio, es decir, buscan lecturas de predicción similares (en mi caso sólo el precio) en la historia (por ejemplo, un año) y hacen un pronóstico promedio.

¿Tiene sentido usar NS si hay una manera más fácil: simplemente buscar en el historial? ¿Cuál es su ventaja?

PS

Pues bien, el hecho de que el precio haya ido en ambas direcciones con la misma pauta puede considerarse o bien un proceso aleatorio o bien un truco de marionetas que trata de romper las estrategias de ambos buscadores de pautas directamente en los gráficos y de los usuarios de NS para hacer peores predicciones, o más bien para reducir la previsión a cerca de cero, como en la figura.

¿Se buscan los patrones por correlación? si es así, vacío

semana actual de la negociación de mi NS (pruebas), alrededor de otro mes de pruebas y será posible transferir a dinero normal. Total: En un mes se ha escrito un sencillo y robusto NS.


 
Maxim Dmitrievsky:

¿Se buscan patrones por correlación? si es así, vacío

Por correlación, es decir, por la diferencia entre los precios de cada barra del patrón buscado. Llamémosle error a la barra, luego sumemos los errores de todas las barras y ordenémoslas según el error resultante y encontremos las N mejores - variantes más similares.
No veo otras opciones para comparar 2 gráficos de precios. ¿Qué otras opciones hay...?
 
Vasily Perepelkin:

Esto es lo principal que enseño a mis alumnos, un hombre tiene principios, no para doblar, si decide - entonces a la muerte. Tuve un alumno (Maxim) que no tenía fuerza, le faltaba carácter, era demasiado afeminado, temblaba, pero tú tendrás éxito, ¡eres un hombre!



 
elibrarius:
Por correlación, es decir, por la diferencia entre el precio de cada barra del patrón buscado. Llamémosle error a la barra, luego resumamos los errores de todas las barras, ordenemos por el error resultante y encontremos las N mejores, - las variantes más parecidas.
No veo otras opciones para comparar 2 gráficos de precios. ¿Qué otras opciones hay...?

Como mínimo, tenemos que hacer transformaciones afines de los gráficos, porque los patrones están en diferentes ángulos de inclinación (estructuras autoafines), y en segundo lugar, buscar en diferentes marcos temporales. Pero todo esto no sirve de nada cuando se utiliza la correlación: encuentra patrones muy dispares. La NS convergente (visión por ordenador) sería mejor para ello.

Quería experimentar, pero aún no he llegado a hacerlo.

 
Mihail Marchukajtes:

El tema de la predicción es bastante interesante. Así que tenemos un paternóster, encontrado en el fondo de la historia. Exactamente igual que ahora. Sin embargo, la reacción del mercado a esta pauta no es clara. Hay que subir y hay que bajar.

Como se puede ver en los gráficos, se ha encontrado el mismo patrón varias veces, por lo que tenemos varios resultados posibles. Aquí es donde hay que activar la Clasificación. Pero entrenaremos la red para un patrón. Aquellos patrones que causaron el crecimiento del mercado marcaremos 1, marcaremos 0 para los que causan la disminución del mercado. Cuando aparezca este patrón, alimentaremos los valores de entrada en ese momento y NS dirá si es un patrón de crecimiento o de caída del mercado.

No será posible dividir los N patrones obtenidos de la historia, porque son máximamente similares al patrón deseado y tienen diferencias mínimas entre ellos.
Si quiere minimizar las diferencias - no debe buscar 10, sino 2-3 plantillas más similares, pero la predicción para 3 patrones tendrá un error de predicción = 33%, para 10 patrones 10%, para 100 patrones 1% aproximadamente (creo que en el cálculo del error debe incluirse el grado de error de cada patrón encontrado respecto al original).

La cuestión de encontrar el número óptimo de plantillas sobre las que hacer una predicción puede dejarse en manos del optimizador.

 
elibrarius:

No hay manera de separar los patrones N de la historia, porque son lo más parecido al patrón deseado y tienen diferencias mínimas entre ellos.
Si quiere minimizar las diferencias, debe buscar las 2-3 plantillas más parecidas, pero la predicción para 3 patrones tendrá un error de predicción = 33%, para 10 patrones 10%, para 100 patrones 1% aproximadamente (creo que en el cálculo del error debe incluirse el error en cada patrón encontrado a partir del original).

La cuestión de encontrar el número óptimo de plantillas para construir la predicción puede dejarse en manos del optimizador.

Este es un enfoque inútil si se aplica en su forma actual, mira hacia la invariancia de escala (escalado) y las transformaciones afines. El hecho de que los patrones sean similares no significa nada, deberíamos considerar el posicionamiento mutuo de varios patrones, una especie de validación cruzada, además de mirar su posición en el patrón en orden de magnitud. Lo hice todo, pero no me gustó mucho - porque la correlación está involucrado, es necesario deshacerse de él y pasar la búsqueda de convolución NS.