"New Neural" es un proyecto de motor de red neuronal de código abierto para la plataforma MetaTrader 5. - página 23
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Vamos, veamos lo que tienes.
También está muy interesado en las redes dispersas.
Y los modelos relacionados con la lógica difusa... ¡hurra!! He recordado el nombre de uno de los modelos, aquí hay un enlace a la descripción. El modelo tsukamoto.
____
Probablemente, si se aplica con éxito, será una bomba.
TheXpert:
...
El producto tiene que estar al nivel de los neuropaquetes de tipo NSDT para eso, niasilim.
...
Lástima)) Este es el programa que actualmente es el más adecuado para los usuarios de cualquier nivel. Primero en la clasificación de 9 años de la revista Stocks & Commodities sobre el mejor software de análisis según las encuestas de opinión de los operadores. Pero es demasiado genial para el OpenSource. ))
Renat 2011.10.18 00:45 #
Tengo una idea para desarrollar un motor de red neuronal de varios tipos, que cualquier comerciante puede utilizar con un mínimo esfuerzo.
El código se proporcionará en el código fuente de MQL5 y se distribuirá como parte del terminal.
Creo que si se trata de un código, cualquier comerciante ya no podría utilizarlo. Cualquier comerciante-programador, sí. Para cualquier trader sería adecuado incluir la red neuronal en un sistema de trading a través del MQL5 Wizard, pero supongo que el Wizard tendría que ser modificado significativamente entonces.
Estoy leyendo este artículo y al menos empiezo a entender lo complicado que es todo).
Propongo, sin embargo, pedir una sección separada del foro, todo en un tema es un infierno. Como depósito de pensamientos amontonados está bien, pero cuando empieza la discusión...
Que sea público, quien quiera participar. Hacer hilos sobre aspectos individuales del sistema, y los administradores de los hilos tomarían las decisiones finales en el primer post a medida que se discutan. Si es necesario, organice una votación pública en hilos individuales, etc.
Estaría bien, por cierto, que existiera la funcionalidad de un post anclado (indicado por el administrador), en todas las páginas de la rama, para que ante tus ojos estuviera siempre algún tipo de resumen de la discusión.
Para aquellos que estén interesados, intentaré explicar en varios post-conferencias breves por qué considero muy prometedoras las redes neuronales basadas en métodos biológicos de transformación de la información y que utilizan el principio de sparsity.
Conferencia 1: Fundamentos biológicos de la dispersión en las redes neuronales.
El cerebro del bebé en desarrollo pasa por una fase de construcción de un gran número de sinapsis (conexiones entre neuronas), seguida de una fase de eliminación de casi la mitad de las conexiones en la adolescencia. Muchos científicos especulan que esta eliminación de sinapsis es necesaria para reducir la energía que utiliza el cerebro debido a la ralentización del metabolismo y a los cambios hormonales. El gran número de sinapsis permite al cerebro del niño recordar mucha información, lo que explica que las lenguas extranjeras sean más fáciles de aprender antes de la adolescencia. Eliminar la mitad de las conexiones en la adolescencia ayuda al cerebro a resumir mejor la información. Todavía se desconoce el mecanismo por el que se elimina la mitad de las conexiones en el cerebro adolescente en desarrollo. Muchos creen que los cambios metabólicos reducen la cantidad de biógenos (nutrientes) necesarios para mantener las sinapsis. La cantidad limitada de estas sustancias provoca una competencia entre las conexiones de entrada de la neurona para su existencia. Esta competencia se modela mediante métodos de aprendizaje competitivo, en los que se mantiene constante la suma de los valores absolutos de los pesos de entrada de la neurona o la suma de sus cuadrados. Estos métodos se utilizan en las redes de autoaprendizaje. En las redes de aprendizaje asistido por el profesor (por ejemplo, las redes de propagación directa), la competencia entre los pesos de entrada de las neuronas no suele tenerse en cuenta. En este tipo de redes, las conexiones entre las neuronas se eliminan después de haber entrenado sus pesos. Las ponderaciones eliminadas son las más pequeñas o las que tienen poco efecto en el error medio de aprendizaje.
Referencias:
https://en.wikipedia.org/wiki/Synaptic_pruning
Huttenlocher, P. R. (1979).
Densidad sináptica en la corteza frontal humana: cambios en el desarrollo y efectos de la edad.
Brain Res., 163, 195--205.
Braitenberg, V., Schuz, A. (1998).
Corteza: Estadísticas y geometría de la conectividad neuronal.
Berlín: Springer.
LeCun, Y., Denker, J. S., Solla, S. A., Howard, R. E., Jackel, L. D. (1990).
Daño cerebral óptimo.
En Touretzky, D. S. (Eds), Advances in Neural Information Processing Systems 2, NIPS*89, Morgan Kaufmann, Denver, CO, 598--605.
Hassibi, B., Stork, D. G., Wolff, G. J. (1993).
El cirujano cerebral óptimo y la poda general de la red.
Proc. IEEE Int. Conf. Neural. Redes, 1, 293--299.
Miller, K D., y MacKay, D. J. C. (1994).
El papel de las restricciones en el aprendizaje hebbiano.
Computación neuronal, 6, 100--126.
Miller, K. D. (1996).
Economía sináptica: competencia y cooperación en la plasticidad sináptica.
Neuron, 17, 371--374.
Más imho. Es poco probable que encuentre en el exterior un consultor especializado que se ajuste a sus necesidades. Si tienes un presupuesto, sea cual sea, es más eficiente dividirlo entre vosotros al final del proyecto, a partes iguales o no, basándose en una evaluación subjetiva de los meta-cotizaciones.
Apoyaré a un experto externo. En primer lugar, me parece que necesitarás al menos dos (idealmente incluso más), y en segundo lugar, no es seguro que al menos un par de usuarios del foro aquí estén más cualificados.
Puedes hacerlo aún más sencillo.
En esta situación pasamos de lo especial a lo general, con un intento de abstracción a modelos universales.
1. Dibujar (en papel + algoritmo verbal del matmodelo) las redes que podemos realizar (topologías y métodos de enseñanza de las mismas).
2. Encuentra puntos de acoplamiento comunes en los modelos dibujados para crear clases abstractas de motores.
tol64:
Creo que si fuera un código, cualquier comerciante ya no podría utilizarlo. Cualquier comerciante-programador, sí. Para cualquier trader la opción de incluir la red neuronal en el sistema de trading a través del MQL5 Wizard sería adecuada, pero entonces supongo que el Wizard tendría que ser modificado significativamente.
Estoy leyendo este tema y al menos ahora empiezo a entender lo complicado que es todo)).
1. En mi opinión, debe ser, en primer lugar, una biblioteca lo suficientemente potente y versátil para que un trader-programador (o simplemente programador de MQL) pueda crear una red neuronal de la complejidad y funcionalidad necesarias. En esta fase, creo que debería crearse una biblioteca central compuesta por un número reducido de objetos (aquí es importante la máxima abstracción y universalidad).
2. En el segundo paso es necesario escribir la funcionalidad de la biblioteca con más detalle y profundidad (para determinar los tipos de redes, los métodos de entrenamiento, las variantes de topología, etc.).
Y en el tercer paso creo que hay que decidir qué es exactamente lo que se va a introducir en la entrada y cómo se va a entrenar.
4. Por último, lo más interesante, en mi opinión. Junto con MQ estaría bien desarrollar algún tipo de "Asistente de Redes Neuronales" que permitiera crear una plantilla de red neuronal, especificando de forma coherente todas sus características.
Desde el punto de vista de los profanos, debería ser algo así. Inicie el asistente y especifique en él: una red de tal o cual tipo, tantas capas, neuronas de tal o cual, procesar los parámetros de tal o cual pavo (o simplemente analizar un determinado flujo de información), en la salida obtenemos una determinada señal.
El resultado del asistente debería ser (al menos a mí me parece una buena idea) una plantilla que se pueda utilizar como módulo independiente o que se pueda utilizar para el desarrollo de una plantilla EA en un VISARD existente.
5. Si la pregunta es sobre el uso de una red neuronal para la creación de una plantilla del experto por parte del Asistente, será necesario proporcionar la forma en la que se podrá añadir una red neuronal (puede ser más de una).
En este caso, los patrones de las redes neuronales tendrán que estar en un lugar determinado (como las señales, etc.) y cumplir ciertos requisitos.
PS
Sería bueno definir la "importancia" de toda la red neuronal, de una sola capa (o parte de una capa) y de una sola neurona en este enfoque.
Sugiero que pidamos una sección separada del foro, es un coñazo tener todo en un mismo hilo. Como depósito de pensamientos amontonados está bien, pero cuando empieza la discusión...
Todas estas redes complicadas tienen solución: lo más importante es la orientación hacia el comercio)) Y esto significa la integración en los EAs en funcionamiento. Esto significa que para la mayoría de los EAs típicos no es necesario hacer un montón de cosas auxiliares como el preprocesamiento de los datos de entrada o la preparación de una muestra de entrenamiento, y debería estar sistematizado y automatizado. Es decir, si alguien quisiera introducir una máscara, no necesitaría generar primero un número de valores de la máscara, luego generar un número de valores predichos (por ejemplo, el aumento del precio de algunas barras), normalizarlo todo, etc. Luego entrenar la red.
Desde el punto de vista puramente técnico puede parecer esto: para las neuronas de entrada tenemos una función virtual EnterData que devuelve doble. Si quieres introducir algunos indicadores o lo que quieras, simplemente escribe todo en esta función.
Lo mismo para la neurona de salida es la función ExitData que calcula lo que se predice.
Por ejemplo, quiero predecir los cambios en el precio durante 5 barras: he redefinido la función
double ExitData(){
return(Open[-5]-Open[0]) ;
}
O quiero predecir la volatilidad
double ExitData(){
return(Alto[iMáximo(...,5,-5)]-Bajo[iMáximo(....,5,-5)]) ;
}
etc.
También, para establecer el período de aprendizaje y fuera de muestra como una propiedad del objeto de red. Y después del entrenamiento, podríamos obtener las características de la curva de equidad en las muestras de fuera (factor de beneficio, por ejemplo)
es decir
Net.StartTime=2005 año
Net.FinishTime=2008 año
Net.StartOutOfSamples=2009 año
Net.FinishOutOfSamples=2011 año
Net.Teach;
Net.OutOfSamples;
if (Net.PFOutOfSamples>3) Print("Good");
O, si la red no negocia por sí misma sino que predice la volatilidad, por ejemplo, el usuario redefine la función que evalúa la calidad de la red para OutOutOfSamples por sí mismo.
A continuación, se pueden utilizar las herramientas de comprobación y optimización para buscar la mejor topología o seleccionar el tipo de red y muchas otras cosas