Uso de la inteligencia artificial en MTS - página 18

 
rip:
njel:
Señoras y señores, ¿qué aportar? ¿Una vela?
Respeto al autor ...
Por favor, formule una regla de entrenamiento de la red en el foro.

--
rip
Sólo la topología de la red está más o menos clara en el código. Al menos el autor ha ordenado las funciones y sus comentarios de tal manera, que se puede entender en general.

Busqué más en el código y descubrí que mis gráficos no contenían suficientes barras. Los aumenté hasta 16000. Lo ejecuté y obtuve 6 tratos de todo el período con una pérdida no muy grande, pero del 9% en el resultado final. Pocos oficios - una pequeña fuga.

En definitiva, está claro que no hay nada claro, pero ¿cómo utilizar este Asesor Experto después de todo? Debería haber algunas recomendaciones, ¿no? ¿Quizás estoy haciendo algo mal?

No tiene sentido seguir escarbando en el código y tratar de analizarlo por mí mismo. Afirmar que el Asesor Experto es deficitario o rentable por 6 operaciones es inútil. Es una pérdida de tiempo.
 

Al parecer, es necesario hacer una pequeña aclaración

El Asesor Experto es una fuga, o al menos no es rentable. Se publica para aquellas personas que quieren jugar con redes neuronales, pero no quieren escribir todo desde cero.
La configuración de la red está escrita de forma bastante universal. En realidad, sólo hay dos limitaciones: un mínimo de dos capas y una neurona de salida.

Ahora, en cuanto a por qué el Asesor Experto no funciona como es.
No puede hacerlo porque la tarea de predecir n ticks por m ticks anteriores es obviamente irresoluble. La red no puede encontrar dependencias para una buena predicción. Si intentamos clasificar los indicadores también fallará, pero la rejilla no puede dividir los datos de entrada en clases.
Esto significa que es necesario procesar los datos para la parrilla de una manera más creativa. Eso es lo que voy a hacer.

Estas son mis conclusiones. Aquellos que quieran probar mi Asesor Experto pueden llegar a lo mismo o, tal vez, a algunas ideas nuevas después de una breve investigación y análisis.

De hecho, el Asesor Experto puede ser considerado como una biblioteca para trabajar con redes neuronales, date la mano para entenderlas y utilizarlas.

Si después de mi mensaje anterior alguien se ha hecho a la idea de que se puede jugar a este EA, o no ha leído con atención, o no me he explicado lo suficientemente bien.
Parafraseo a Figar0: "No es rentable en absoluto, pero sí informativo.

Ahora, algunas respuestas personales.

Reshetov Y en general, ¿cómo debe utilizarse correctamente y si vale la pena utilizarlo? Porque entender el código de otra persona es una tarea tediosa e ingrata. Y si conoces el algoritmo, es mucho más fácil escribir tu propio programa desde cero que entender el de otra persona
.

Si te refieres al comercio, probablemente no deberías usarlo. Al menos yo no lo haría. Sólo tiene valor como código.
En realidad, estoy parcialmente de acuerdo con el hecho de que puedes escribir tu propio programa desde cero conociendo el algoritmo. No estoy tan seguro de que sea sencillo.
Pero es bienvenido a escribir algoritmos. En Internet se pueden encontrar fácilmente libros sobre redes neuronales, principios de entrenamiento y otras cosas. Mientras escribía este Asesor Exper to, mi colección alcanzó fácilmente dos docenas de libros y artículos.


Mathemat
No creo que este código tenga nada en común con el Asesor Experto de Reshetov ...

Lo que ambos tienen en común es que ambos tienen redes neuronales con indicadores como entradas :) La diferencia es que yo no tengo una sino muchas neuronas, respectivamente, escribí mi propio algoritmo para el entrenamiento.


Por favor, formule una regla de aprendizaje para la red en el foro.

Si es para mí, por favor, explíquelo. No entiendo muy bien qué es lo que le interesa.





 
maveric писал (а):


Por favor, formule una regla de entrenamiento de la red en el foro.

Si es para mí, por favor, explíquelo. No entiendo muy bien qué es lo que le interesa.


Estás muy versado en redes neuronales, ¿por qué no escribes un artículo sobre el tema, especialmente centrado en los algoritmos de aprendizaje para redes multicapa? Eso sería de interés para mucha gente. Los artículos aquí son pagados, su trabajo no se desperdiciará.
 
Integer писал (а):
maveric escribió (a):


Por favor, formule una regla de entrenamiento de la red en el foro.

Si es para mí, por favor, explíquelo. No entiendo muy bien qué es lo que le interesa.


Usted conoce bien las redes neuronales, ¿por qué no escribe un artículo sobre el tema, centrándose especialmente en los algoritmos de aprendizaje de las redes multicapa? Eso sería de interés para mucha gente. Los artículos aquí son pagados, su trabajo no se desperdiciará.
Eso no me parece una buena idea :)
He aprendido sobre las redes neuronales en libros y artículos escritos por personas serias, no clasificados pero que se encuentran fácilmente en Internet.
Tengo el temor de que resulte como en la anécdota cuando Moisha le cantó los Beatles a Abram :)
 

Por favor, formule una regla de entrenamiento de la red en el foro.

Si es para mí, por favor, explíquelo. No entiendo muy bien qué es lo que le interesa.

Has respondido a mi pregunta ;) En este caso, ha desarrollado una red que aproxima la serie temporal a n pasos. Se toman como entradas los valores de Cierre y/o los valores de los indicadores. Bien, entonces otra pregunta. En cuanto a la clasificación, ha dicho que deberíamos intentar clasificar los indicadores, ¿podría desarrollar esa idea? Sí, tengo otra observación. La práctica ha demostrado que los mejores resultados se obtienen cuando se entrenan redes (entrenamiento con un profesor), cuya muestra de entrenamiento tiene una distribución normal. He investigado varias veces las series temporales formadas por cotizaciones, hace mucho tiempo... Su distribución no tiene nada que ver con la distribución normal. Tal vez deberíamos analizar la construcción de una muestra de entrenamiento y reducirla a una muestra con una distribución normal. En este caso el MSE disminuirá mucho más rápido y se verán mejores resultados en la muestra de prueba.
 
maveric:


Ahora, en cuanto a por qué el Asesor Experto no funciona como es.
No funciona porque la tarea de predecir n ticks basándose en m ticks anteriores es obviamente irresoluble. La red no puede encontrar dependencias para una buena predicción. Si intentamos clasificar los indicadores también fallará, pero la rejilla no puede dividir los datos de entrada en clases.
Esto significa que es necesario procesar los datos para la parrilla de una manera más creativa. Que es lo que voy a hacer a continuación.


¿Quizás podríamos abrir un nuevo hilo en el que hablar de la formación y el tratamiento previo y posterior de las muestras? Creo que será de interés para muchos visitantes.
 
rip:

Por favor, formule una regla de entrenamiento de la red en el foro.

Si es para mí, por favor, explíquelo. No entiendo muy bien qué es lo que le interesa.

Has respondido a mi pregunta ;) En este caso, ha desarrollado una red que aproxima la serie temporal a n pasos. Se toman como entradas los valores de Cierre y/o los valores de los indicadores. Bien, entonces otra pregunta. En cuanto a la clasificación, ha dicho que deberíamos intentar clasificar los indicadores, ¿podría desarrollar esa idea? Sí, tengo otra observación. La práctica ha demostrado que los mejores resultados se obtienen cuando se entrenan redes (entrenamiento con un profesor), cuya muestra de entrenamiento tiene una distribución normal. He investigado varias veces las series temporales formadas por cotizaciones, hace mucho tiempo... Su distribución no tiene nada que ver con la distribución normal. Tal vez deberíamos analizar la construcción de una muestra de entrenamiento y reducirla a una muestra con una distribución normal. En este caso el MSE disminuirá mucho más rápido y se verán mejores resultados en la muestra de prueba.

No sólo una distribución normal. Al menos, los conjuntos de muestras también deberían ser coherentes.
En general, es de la siguiente manera.
Encontramos el comienzo de la primera tendencia ("up down flat") Algún número de barras antes de este comienzo será una entrada en la parrilla, toda la tendencia que le sigue será rodada en forma de 1 0 0 200 6 los tres primeros números son identificadores de la tendencia los dos últimos son el cambio general del precio y la longitud (en barras) de la tendencia. El siguiente ejemplo se forma no antes del final de esta tendencia.
No es posible predecir la duración de la tendencia, sino sólo la variación absoluta del precio a lo largo de la misma.
Esto hará que los conjuntos de ejemplos sean (más) coherentes.
Obtendremos ejemplos N1 N2 N3 para tres tipos de tendencias.
por ejemplo
HASTA ( 1 0 0 ) - 100
flat( 0 1 0) - 200
down( 0 0 1) - 250

Cómo hacer una distribución normal.
1. si el número mínimo de ejemplos (100) nos conviene, podemos recortar estúpidamente el resto
2. Los ejemplos menos numerosos deberían ofrecerse más a menudo, para equilibrarlos.
3. Añade a los ejemplos los que son pocos, dándoles un poco de ruido.
4. más ejemplos a la baja que al alza, a los que se pueden añadir ejemplos de las cotizaciones inversas del USDEUR en lugar del EURUSD

Ahora voy a analizar estos ejemplos en orden descendente de frialdad :)
4. El ideal No hay figuras de izquierda, todo es de carne y hueso del mercado. Pero es tedioso de escribir, tendré que recalcular un montón de índices por mí mismo + calcularlos yo mismo.
3. Es un poco peor, ya que damos al menos algo de frivolidad a la red en forma de ese ruido que añadimos.
2. Si le mostramos a la red muchas veces lo mismo, simplemente lo recordará y no generalizará.
1. Aunque para que el entrenamiento tome una historia enormemente larga (para asegurar que después del descarte de los ejemplos restantes sea suficiente) - entonces este método toma los tres Supera poderosamente a los otros tres Para todos los parámetros :)


Así que es algo así. Por cierto, mi Asesor Experto es una mezcla de los puntos 1 y 2.
 
maveric:

No sólo es normal. Como mínimo, los conjuntos de ejemplos también deberían ser coherentes.
En general se ve así.
Encontramos el comienzo de la primera tendencia ("up down flat") Algún número de barras antes de este comienzo será una entrada en la cuadrícula, toda la tendencia que le sigue será rodada en la forma 1 0 0 200 6 los tres primeros números son identificadores de la tendencia los dos últimos son el cambio general del precio y la longitud (en barras) de la tendencia. El siguiente ejemplo se forma no antes del final de esta tendencia.
No es posible predecir la duración de la tendencia, sino sólo la variación absoluta del precio a lo largo de la misma.
Esto hará que los conjuntos de ejemplos sean (más) coherentes.
Obtendremos ejemplos N1 N2 N3 para tres tipos de tendencias.
por ejemplo
UP ( 1 0 0 0 ) - 100
flat( 0 1 0 ) - 200
down( 0 0 1 ) - 250
La distribución normal es la distribución de probabilidad de una variable aleatoria. Un conjunto de datos no puede ser contradictorio ni no contradictorio: es el valor de una función f que describe un proceso físico y simplemente lo es. Sólo nuestra interpretación de sus valores puede ser contradictoria.

No puedo entender una cosa, ¿qué quieres que haga una red neuronal? ¿Aproximar una serie u obtener una clasificación de la situación del mercado? Tal y como yo lo veo, son tareas fundamentalmente diferentes, por lo que los datos de entrada y de salida deberían estar preparados de forma completamente diferente.

Definamos un poco los términos:
1. La aproximación de una serie es la construcción de un mapeo multidimensional F: x->y que generaliza un conjunto dado de ejemplos {xt, yt}. Sobre la base de este mapeo, se está realizando una visión de paso H en el futuro basado en una cierta dependencia latente en los términos de la serie. Es decir, puede ser generalizado - estamos tratando de operar con el valor de los miembros de la fila en sí, así como con algún conjunto de valores que describen la fila - son extremos locales, etc. (definimos un corredor de precios para algún intervalo, por ejemplo)
2. Clasificación - es decir, se forma una imagen de mercado - digamos, una tendencia ascendente. Es necesario reconocer esta imagen.

¿Qué opina de esto? A juzgar por su código - usted está tratando de predecir los puntos de entrada y salida del mercado. Francamente, dudo mucho de la corrección de
para tal tarea.

Se lo agradecería, si puede demostrar que estoy equivocado.

--
rip
 
rip:
Maveric:

No sólo es normal. Al menos, los conjuntos de ejemplos también deberían ser coherentes.
En general, es así.
Encontramos el comienzo de la primera tendencia ("up down flat") Algún número de barras antes de este comienzo será una entrada en la cuadrícula, toda la tendencia que le sigue será rodada en la forma 1 0 0 200 6 los tres primeros números son identificadores de la tendencia los dos últimos son el cambio general del precio y la longitud (en barras) de la tendencia. El siguiente ejemplo se forma no antes del final de esta tendencia.
No es posible predecir la duración de la tendencia, sino sólo la variación absoluta del precio a lo largo de la misma.
Esto hará que los conjuntos de ejemplos sean (más) coherentes.
Obtendremos ejemplos N1 N2 N3 para tres tipos de tendencias.
por ejemplo
HASTA ( 1 0 0 ) - 100
flat( 0 1 0) - 200
down( 0 0 1) - 250
La distribución normal es la distribución de probabilidad de una variable aleatoria. Un conjunto de datos no puede ser contradictorio ni no contradictorio: es el valor de una función f que describe un proceso físico y simplemente lo es. Sólo nuestra interpretación de sus valores puede ser contradictoria.

No puedo entender una cosa, ¿qué quiere hacer una red neuronal? ¿Aproximar una serie u obtener una clasificación de la situación del mercado? Tal y como yo lo veo, son tareas fundamentalmente diferentes, por lo que los datos de entrada y de salida deberían estar preparados de forma completamente diferente.

Definamos los términos:
1. La aproximación de series es una construcción de mapeo multidimensional F: x->y, que generaliza un conjunto dado de ejemplos {xt, yt}. Sobre la base de este mapeo, podemos imaginar el futuro en H pasos sobre la base de cierta dependencia oculta de los términos de la serie. Es decir, puede ser generalizado - estamos tratando de operar con el valor de los miembros de la fila en sí, así como con algún conjunto de valores que describen la fila - son extremos locales, etc. (definimos un corredor de precios para un determinado intervalo, por ejemplo).
2. Clasificación - es decir, se forma una imagen de mercado - digamos, una tendencia ascendente. Esta imagen debe ser reconocida.

¿Qué opina de esto? Por lo que entendí en su código - usted está tratando de predecir los puntos de entrada y salida del mercado. Francamente, tengo mis dudas sobre la validez
de la tarea.

Se lo agradecería, si puede demostrar lo contrario.

--
rip


En los problemas de clasificación, lo que cuenta es nuestra interpretación de los datos. A grandes rasgos, en una tarea de reconocimiento de letras, en un conjunto de ejemplos de la letra A no deberías encontrar las letras X y U, etc. :)

Quiero hacer las dos cosas. Tal vez dos parrillas, tal vez una como resulta. El primer paso de la parrilla es clasificar la situación actual. Si da una señal suficientemente clara del inicio de una tendencia, el segundo paso es un intento de mirar hacia el futuro para estimar cuánto dinero se puede ganar con esta tendencia.

Supongo que la aproximación de las series financieras es peor que la clasificación.

 
maveric писал (а):

Mi hipótesis es que las series financieras se prestan más a la aproximación que a la clasificación.

Las series de precios, como cualquier otra serie continua, pueden aproximarse sin ningún problema. Pero no hay que confundir la interpolación con la extrapolación. La interpolación con una neurona multicapa puede hacerse como dos dedos sobre el asfalto. La extrapolación de series no periódicas mediante redes neuronales es una pérdida de tiempo.