Pregunta sobre la programación de redes neuronales - página 6

 
Vinin:


Hice una red normal de 256 entradas, una capa oculta por 256 neuronas. Y una capa de salida de una neurona. Y lo entrené todo perfectamente en MT4

1. ¿Con el algoritmo del probador genético o con el algoritmo de aprendizaje de malla interna?

 
Reshetov:
¿Por el algoritmo genético del probador o por un algoritmo interno de aprendizaje de malla?

Todo ello a través de un guión. El algoritmo interno
 
Aunque había variantes con la optimización. Hice un contador y guardé las mejores opciones en variables globales. Las reescribí cuando el resultado mejoró. Había un ajuste perfecto.
 
La cuestión es que tengo todos los pesos y umbrales recogidos por el probador GA, ver los parámetros de entrada en el informe, a excepción de los 3 últimos. La curva de aprendizaje es alta, ya que la optimización de 10000 barras no lleva más de 5 minutos. Además, no necesito 256 entradas, ya que con tres es suficiente, incluso en ellas la rejilla se retrae en blanco y negro.
 
Reshetov:


No necesito 256 entradas, ya que con tres es suficiente; incluso con ellas, la parrilla se reajusta en negro.

Esto va más allá del alcance de este tema. No vale la pena discutirlo. A cada uno lo suyo
 
Vinin:

Esto ya está fuera del alcance del tema. No es necesario discutirlo. A cada uno lo suyo.


El tema se estancó hace tiempo, no hará ningún daño...

Reshetov:


Y además, no necesito 256 entradas, ya que tres son lo suficientemente malas -incluso retraen la red en negro-.


¿Está seguro de que se reedita? ¿Quizás simplemente le falta "generalización y poder de cálculo" debido a la debilidad de la arquitectura?

El experto en la intersección de los dos vagones se ajusta en el optimizador, pero sólo funcionará en un delantero si tienes mucha suerte. Y obviamente no se trata de sobreentrenamiento...

En realidad, es fácil luchar contra el rebasamiento: aumentar el tamaño de la muestra de entrenamiento hasta un plus estable en el control o el OOS. NS no puede recordar toda la muestra, y sólo tiene que generalizar. En este caso la disminución de las características del sistema es inevitable, pero aquí depende más de las entradas, por ejemplo.

 
Figar0:


Bueno, el tema viene de lejos, no hay mal que por bien no venga...

Pero es mejor no discutir con los moderadores. Al menos las normas que IMHO no violan y en caso de lo que tenemos el derecho de apelar a la administración.

Figar0:


¿Está seguro de que el reciclaje? ¿Quizá sólo le falte "generalización y potencia de cálculo" debido a su débil arquitectura?

Sí, estoy seguro.

Es fácil de probar. La cuestión es que si los resultados de la optimización son muy granulosos, los de adelante son infructuosos para ellos. Pero podemos clasificar estos mismos resultados por indicadores y luego buscar valores más cercanos donde los delanteros ya dan el éxito. Sería más correcto decir que los delanteros con éxito se agolpan en los resultados de optimización, donde estos mismos resultados no son demasiado graves, pero tampoco demasiado parciales.

El ejemplo más sencillo. Tomamos un intervalo decente de la historia, quitamos el Take y el Stop y configuramos el TS para que tome las lecturas del TC del VS en cada barra y las utilice para operar. Es decir, si las lecturas de la red están en contra de la lana de la posición abierta, la volteamos. La parrilla está configurada de tal manera que sólo abre unos pocos tratos y todos ellos son ganadores (no hay factor de ganancia). No he encontrado esto en el perceptrón de una capa e incluso en las redes estándar. La parrilla se equivoca a menudo allí, por lo que realiza una cantidad decente de operaciones incluso sin paradas y tomas de posesión en un historial largo.

Supongo que esto se debe al hecho de que he modificado la primera capa y de alguna manera se las arregla para alimentar las entradas de los datos ocultos estrictamente separados linealmente ahora. Pero quién sabe, ya que mi diseño es mucho más sencillo que el de Rosenblatt. La razón más probable es que toda la red se ajusta con el AG para todos los parámetros de entrada en una sola pasada y el AG es como un tanque que busca los extremos, aunque no directamente, pero los datos multifactoriales para dicha optimización son como dos dedos de frente en el asfalto, siempre y cuando haya un extremo distinto o varios extremos. Por otro lado, debido a la primitividad de la primera capa, se afina muy rápidamente y de forma bastante adecuada.

En mi opinión, las redes neuronales modernas han ido demasiado lejos al complicar las capas de entrada. Por ello, no funcionan de forma muy adecuada. Y en una red multicapa la primera capa es la más importante ya que influirá en el resultado final dependiendo de lo que emita a la capa oculta. Al fin y al cabo, una red normal suele tener tres capas, y las capas ocultas y de salida ya son un plano lineal primitivo en un espacio multidimensional.

Otro truco es la normalización dinámica de los datos de entrada. Si aplicamos la estática, cualquier cambio en la volatilidad (sin duda cambiará a plazo) afectará al resultado. He resuelto este problema en favor de la dinámica.

 
Reshetov:

....

¿Y las entradas como en la página anterior? Es una pendiente resbaladiza... No quiero ni imaginarme qué clase de hechicería se ha podido hacer con NS para obtener resultados en algo tan primitivo. ¿Y qué hay de cierto, que dondequiera que se tome una muestra de formación, se hace cuesta arriba en el SOS? ¿Es realmente estable el resultado? ¿Qué pasa con otras parejas e instrumentos? El EURUSD es el más fácil de predecir.

Reshetov:

He tenido que manipular la estrategia comercial para evitar que la red se adapte.

Yo tampoco lo entiendo. La NS debe dar señales, y personalmente me parece ilógico dirigir a la NS por medio de la TS en la etapa de formación. Aquí, de alguna manera, el enfoque es justo el contrario... ¿En qué dirección se torció el ST?

Reshetov:

Otro truco es la normalización dinámica de los datos de entrada. Si aplicamos la estática, cualquier cambio en la volatilidad (sin duda cambiará a plazo) afectará al resultado. He resuelto este problema en favor de la dinámica.

Yo también lo practico: a veces funciona, otras veces no es tan bueno. También dependerá de la entrada, pero esas entradas se beneficiarán sin duda. Por supuesto, la normalización dinámica añade información a la entrada, pero hace que sea más difícil de aprender, y como el aprendizaje es "fácil", tiene sentido que funcione para obtener un resultado positivo.

 
Figar0:

¿Y las entradas como en la página anterior? Es una pendiente resbaladiza allí con el período de ondulación...

Tengo el período de ondulación como una constante. Solía ser un parámetro de entrada, pero he recopilado varias pruebas de avance exitosas y he llegado a la conclusión de que bailan alrededor de esta misma constante.

Figar0:


No puedo ni imaginarme qué truco de magia podría hacer un NS para obtener resultados utilizando un sistema tan primitivo...

...

Yo tampoco lo entiendo. La NS debe dar señales, y dirigir la NS a través de la TS en la etapa de formación, personalmente, me parece ilógico. Aquí, de alguna manera, el enfoque es justo el contrario... ¿En qué dirección se torció el ST?

Todo esto no se ha montado en un día, sino que ha pasado mucho tiempo y poco a poco. Algunas cosas se añadieron gradualmente, otras se pulieron y otras se eliminaron del algoritmo.

El trabajo fue realizado por:

1. Para minimizar el código. El método de Miguel Ángel: tomamos un bloque de piedra, cortamos lo innecesario y obtenemos una escultura (más tarde este método se atribuyó a Occam y su navaja).

2. evitar las limitaciones de la optimización de los probadores

3. Cargado TC a tal nivel de espesor para deshacerse de ajuste

Figar0:

Entonces, ¿es cierto que dondequiera que se tome una muestra de entrenamiento, se hace cuesta arriba el OOS? ¿Es realmente estable el resultado? ¿Y qué pasa con otras parejas e instrumentos? El EURUSD es el más fácil de predecir.

Los resultados en OOS son diferentes, también hay plomadas. Sería sorprendente que después de encajar los resultados a sabiendas la red no se drenara en la propagación. No he dicho que estén todos en ganancia, he dicho que he elegido el más "sabroso" (puede que haya más "sabrosos", ya que no los he mirado todos, hay demasiados por ahí).

La única diferencia con otras estrategias: los delanteros exitosos se pueden encontrar fácilmente de forma manual (se abarrotan cuando se ordenan los resultados de la optimización ) y la elección es bastante amplia + rebanadas decentes por parámetros de entrada individuales, es decir, extremos con descensos suaves.

Entre otros pares probé un poco el oro y el GBPUSD - más o menos lo mismo.

 
Reshetov:

El pesimismo viene determinado por las limitaciones del comprobador de estrategias, es decir, si los rangos de valores de entrada son grandes o el número de estos mismos valores supera el límite, el optimizador se niega a arrancar. Así que, después de todo, hay límites.

Hoy por fin he terminado de construir una red neuronal escrita íntegramente en MQL4 con arquitectura 3:3:1 (tres neuronas en la entrada, tres entradas ocultas, una salida). Todas las capas se configuran con el probador GA. Pero el problema es que para una capa se necesitan al menos 12 parámetros de entrada, al menos con valores de -1 a 1 en pasos de 1 (como Rosenblatt). Pero el optimizador no puede manejar tantos. Tuve que escabullirme y simplificar la primera capa.

A diferencia de la malla ajena, la hecha por uno mismo es mejor en el sentido de que puede ser mejorada. Por ejemplo, además de hacer que la primera capa no sea estándar, he añadido la normalización dinámica de los datos de entrada.

Las señales en las entradas son bastante primitivas:

A pesar de la primitividad mencionada anteriormente, la rejilla resulta ser muy entrenable, es decir, los pesos y los umbrales se eligen fácilmente para que los resultados de las pruebas resulten sin un solo error (sin factor de beneficio). Pero después de ese ajuste, la prueba de avance comienza inmediatamente a caer en picado en el diferencial. Tuve que manipular la estrategia comercial para que no se ajustara la parrilla.

Valió la pena el esfuerzo, aunque hizo que mi cerebro se volviera del revés:

Estos son los resultados de la prueba. De 1 a 273 ofertas - optimización, lo siguiente es la prueba de avance.

Y aquí está la prueba de avance:

Aquí están los resultados de la prueba de avance:

Informe de comprobación de la estrategia
RNN
Alpari-Demo (Build 409)

Símbolo EURUSD (Euro vs. Dólar)
Periodo 1 Hora (H1) 2011.10.24 00:00 - 2012.01.13 23:59 (2011.10.24 - 2012.01.14)
Modelo Por precios de apertura (sólo para Asesores Expertos con control explícito de apertura de barra)
Parámetros t1=54; t2=4; t3=48; x1=194; x2=128; x3=68; y1=1; y2=1; y3=-1; t4=136; sl=900; lotes=1; mn=888;

Bares en la historia 2431 Garrapatas modeladas 3862 Calidad de la simulación n/a
Errores de concordancia de los gráficos 0




Depósito inicial 10000.00



Beneficio neto 14713.00 Beneficio total 40711.60 Pérdida total -25998.60
Rentabilidad 1.57 Remuneración esperada 88.10

Reducción absoluta 2721.60 Reducción máxima 4800.00 (39.74%) Reducción relativa 39.74% (4800.00)

Total de operaciones 167 Posiciones cortas (% de ganancias) 101 (67.33%) Posiciones largas (% de ganancias) 66 (92.42%)

Operaciones rentables (% del total) 129 (77.25%) Operaciones con pérdidas (% del total) 38 (22.75%)
El más grande comercio rentable 900.00 transacción perdedora -907.20
Media acuerdo rentable 315.59 comercio perdedor -684.17
Máximo victorias continuas (beneficios) 13 (2557.00) Pérdidas continuas (pérdida) 4 (-3605.40)
Máximo Beneficio continuo (número de victorias) 3511.60 (11) Pérdida continua (número de pérdidas) -3605.40 (4)
Media ganancias continuas 4 Pérdida continua 1





Lo más interesante es que incluso en el gráfico podemos ver que la sección de optimización es peor que la de avance. Esto rara vez ocurre. Aunque he seleccionado este como el mejor delantero de entre muchos otros, es decir, otros delanteros tienen resultados mucho peores que los de la optimización pero sin embargo tienen los mejores.


Gracias por el consejo. Tú y Vinin sois una autoridad para mí. Ya ha pasado mucho tiempo y seguís tratando este tema.He recogido vuestros trabajos en Internet.Lo más interesante es que ambos tenéis razón y no sabéis que vais en paralelo, hacia el mismo objetivo. Tomé, de uno y tomé del otro y ahora estoy esperando el resultado. Estás creando una nueva dirección, ¡¡¡pero muy difícil!!!