SOMFX1
- Indicadores
- Stanislav Korotky
- Versión: 1.1
- Actualizado: 20 noviembre 2021
- Activaciones: 5
Si le gusta operar según patrones de velas y desea reforzar este enfoque con tecnologías modernas, este indicador y otras herramientas relacionadas son para usted. De hecho, este indicador es una parte de una caja de herramientas, que incluye un motor de red neuronal que implementa el Mapa Auto-Organizado (SOM) para el reconocimiento de patrones de velas, predicción, y le proporciona una opción para explorar los datos de entrada y resultantes. La caja de herramientas contiene:
- SOMFX1Builder - un script para el entrenamiento de redes neuronales; construye un archivo con datos generalizados sobre las figuras de precios más características que pueden utilizarse para la predicción de las siguientes barras, ya sea en una sub-ventana incorporada (utilizando este indicador SOMFX1), o directamente en el gráfico utilizando SOMFX1Predictor;
- SOMFX1 - este indicador para la predicción de patrones de precios y el análisis visual de una red neuronal entrenada, datos de entrada y resultantes (en una sub-ventana separada);
- SOMFX1Predictor - otro indicador para la predicción de patrones de precios sólo en la ventana principal;
En resumen, todo el proceso de análisis de precios, entrenamiento de la red, reconocimiento de patrones y predicción supone los siguientes pasos:
- Construir una red neuronal mediante SOMFX1Builder;
- Analice el rendimiento de la red neuronal resultante mediante SOMFX1; si no está satisfecho, repita el paso 1 con nuevos ajustes; puede omitir este paso si lo desea;
- Utilice la red neuronal final para la predicción de patrones de precios mediante SOMFX1Predictor.
Todo esto se cubre en detalle a continuación.
Introducción
¿Qué son los patrones de velas? Son figuras distintivas formadas por barras consecutivas, que fueron "descubiertas" hace muchos años por la comunidad de traders y recibieron nombres graciosos. No hay evidencias sólidas de que los patrones funcionen como se espera - si no siempre, pero al menos en una mayoría estadísticamente significativa de los casos. Tampoco está garantizado que todos los patrones nombrados cubran todas las regularidades del mercado moderno, especialmente teniendo en cuenta que la mayoría de ellos fueron creados en la era de los antiguos mercados cómodos. Por ejemplo, si un gráfico se desplazara medio periodo de barra (digamos H4 desplazado 2 horas), los patrones existentes desaparecerían y se formarían patrones completamente nuevos en otras barras. ¿No significa esto que cada patrón convencional debería tener varias representaciones diferentes? Pero espera, ¿entonces el "martillo" no se parecería a un martillo y la "estrella" no se parecería a una estrella? Esto parece romper toda la belleza artificial del enfoque de los patrones de velas, pero es justo.
Los patrones son sólo una representación visual fácil de entender de los cambios de precios, por lo general deltas entre los precios de cierre de las barras. No son sólo patrones de velas, sino, en general, patrones de precios.
Y hoy necesitamos, y lo más importante, tenemos una oportunidad para un nuevo enfoque científico en el reconocimiento de patrones de precios.
Este indicador pone a su disposición la tecnología de redes neuronales, concretamente el Mapa Auto-Organizado (SOM). Como cualquier otra red neuronal, SOM se compone de neuronas - unidades elementales de cálculo. En SOM, cada neurona puede contener información sobre un único patrón de precios. La razón por la que se llama SOM es que la red compara automáticamente diferentes patrones de precios y los coloca en un mapa bidimensional, en el que las unidades (patrones) vecinas son similares entre sí y las unidades más distantes son menos similares. Cada cambio de precio puede entonces asignarse a una unidad que coincida mejor (BMU, véase más abajo), de modo que, teniendo una parte inicial de un patrón, es posible obtener el final de la unidad.
Funcionamiento
La interfaz del indicador consta de dos partes. En el gráfico principal se muestra el propio mapa y los controles auxiliares. En la subventana se muestran las muestras de precios y las predicciones. Las muestras y predicciones son valores delta normalizados (al rango [-1, +1]) entre precios en barras consecutivas. Las muestras forman una línea verde. La predicción se indica con una línea gruesa azul claro (tiene la longitud de las barras PredictionBars y puede continuar en el futuro). En el lado derecho de los patrones (es decir, en algún lugar en el futuro) se puede ver un montón de líneas de barras PatternSize longitud. Muestran una estructura de la unidad de mejor coincidencia seleccionada en ese momento (encontrará los detalles más abajo).
Es necesario entrenar la red en algún periodo de tiempo de la historia (utilizando SOMFX1Builder). Se trata de un proceso largo, pero que probablemente (¿por qué probablemente?, véase más adelante) sólo pueda realizarse una vez. Tras el entrenamiento se obtiene la red entrenada, que puede analizar y predecir nuevos movimientos de precios sobre la marcha. Consulte la documentación de SOMFX1Builder para más detalles sobre el entrenamiento de la red.
Una vez finalizado el entrenamiento, obtendrá un archivo con extensión candlemap (SOMFX1Builder crea este tipo de archivos en el subdirectorio Files de su carpeta MQL4). Deberá especificar el nombre del archivo en la configuración del indicador, y éste mostrará 2 mapas cuadrados en el gráfico principal. El cuadrado de la izquierda denota la actividad actual de cada neurona: las neuronas con alta excitación se muestran en rojo, y las neuronas con alta inhibición se muestran en azul. En otras palabras, cuanto más roja es la celda en el mapa, mejor se ajusta a la muestra de precios actual. La muestra del precio actual es un fragmento de los valores delta tomados de las barras de PatternSize a la izquierda de la línea amarilla punteada vertical denominada "FromPastToFuture". Puede arrastrar la línea a una posición arbitraria, y el indicador leerá la muestra actual en esta posición, y ejecutará SOM contra esta muestra, por lo que verá una nueva activación del mapa y la predicción.
Tenga en cuenta que la predicción comienza en la barra actual, es decir, también se predice la barra actual. Esto se hace porque la barra actual suele estar inacabada y también requiere predicción. Además, si tuviéramos en cuenta la barra inacabada, la predicción sería incoherente (inestable durante la vida de la barra actual). Debido al hecho de que se predice la barra actual, la línea gruesa azul claro con la predicción comienza 1 barra a la izquierda de la línea vertical "DelPasadoAlFuturo" - muestra cómo debería cambiar el precio en la barra actual.
El segundo - lado derecho - mapa cuadrado muestra la "densidad de población" de cada unidad, es decir, su color denota el número de muestras ocurridas en los datos de entrenamiento, que se aterrizan a la celda correspondiente y forman el patrón de precios correspondiente. De nuevo, el color rojo indica una población relativamente alta, y el azul, relativamente baja. Las celdas grises no tienen muestras correspondientes en los datos de entrenamiento.
Cuando se mueve la línea "FromPastToFuture" de barra a barra, el mapa elige la unidad que mejor se ajusta a la muestra de precios, y marca la unidad ganadora con un punto redondo. Esta unidad se denomina unidad que mejor se ajusta. Sus pesos se muestran como una línea roja en la parte derecha de la subventana. Se trata de un patrón de precios específico descubierto y generalizado automáticamente por la red. Si la unidad tiene algunas muestras asignadas, los cambios de precio medio de todas estas muestras se muestran en la línea naranja, y la varianza, en dos líneas grises por encima y por debajo.
Esta es exactamente la información que hace posible la predicción: cuando un nuevo cambio de precio se ajusta al comienzo de un patrón (digamos, 4 barras de un patrón de 5 barras), el final del patrón da la continuación más probable (la 5ª barra en el ejemplo).
Cuando la línea "FromPastToFuture" se desplaza, no sólo se muestran la predicción y la mejor estructura unitaria coincidente. Además, el indicador resalta en azul las muestras de precios vinculadas a la BMU. Esto se ve como fragmentos azules que se superponen parcialmente a la curva verde con deltas de precios. Tenga en cuenta que las muestras pueden solaparse entre sí. Por ejemplo, si la longitud del patrón es 4, y una muestra comienza en la barra número 10, y otra comienza en la barra número 12, tendrán 2 barras en común. En tal caso, se resaltarán 6 compases consecutivos en una fila, y las muestras serán visualmente inseparables.
Es posible arrastrar una celda del mapa cuadrado de la derecha a cualquier lugar. Cuando esto sucede, el indicador muestra el patrón de precios y los valores promedio para esta celda específica. (La propia celda se moverá de nuevo al mapa automáticamente en el momento siguiente). Esta característica le permite investigar patrones en el mapa.
Parámetros
- LearnStart - número de una barra en la historia, o una fecha y hora exacta de la barra (en el formato "YYYY.MM.DD HH:MM"), donde comenzaron los datos de entrenamiento; este parámetro es una cadena, que permite introducir un número o una fecha; este parámetro se utiliza aquí no para el entrenamiento, sino para construir muestras de precios reales (correspondientes a la red), lo cual es importante si el parámetro UseAverage es verdadero (ver más abajo), así como para la visualización de la "población" del mapa; valor por defecto - 5001; si introduce un nombre de archivo generado automáticamente en el parámetro NetFileName (ver más abajo), el indicador analiza el nombre y anula este parámetro por un valor del nombre; en otras palabras, este parámetro no tiene efecto cuando se especifica un nombre de archivo generado automáticamente en el parámetro NetFileName;
- LearnStop - número de una barra en la historia, o una fecha y hora exacta de la barra (en el formato "YYYY.MM.DD HH:MM"), donde terminaron los datos de entrenamiento; este parámetro también es una cadena; valor por defecto - 1; este parámetro se utiliza aquí no para el entrenamiento, sino para la construcción de muestras de precios reales (correspondientes a la red), lo cual es importante si el parámetro UseAverage es verdadero, y para la visualización de la "población" del mapa; este parámetro no tiene efecto cuando se especifica un nombre de archivo generado automáticamente en el parámetro NetFileName;
- PatternSize - número de barras en un único patrón; valor por defecto - 5; este parámetro no tiene efecto cuando se especifica un nombre de archivo generado automáticamente en el parámetro NetFileName;
- GridSize - dimensiones del mapa; es un número de celdas/unidades en los ejes X e Y; valores permitidos: 3 - 50; valor por defecto - 7; este parámetro no tiene efecto cuando se especifica un nombre de archivo generado automáticamente en el parámetro NetFileName;
- PredictionBars - número de barras a predecir; valor por defecto - 10; por favor, tenga en cuenta que cada barra siguiente se predice con menos precisión que la anterior, porque los errores inevitables en cada barra se acumulan;
- UseAverage - este es un interruptor de modo especial; cuando está desactivado (falso, valor por defecto) las predicciones se realizan utilizando los pesos de las neuronas ganadoras, es decir, son producto del mapa; cuando está activado (verdadero), las predicciones se basan en los valores medios de todas las muestras de precios asignadas a la neurona ganadora; esto requiere no sólo el mapa, sino los datos de entrenamiento tal y como se utilizaron para el entrenamiento de la red, por lo que es importante especificar la fecha y hora exactas en las que se ha realizado el muestreo durante el entrenamiento; puede "jugar" con este parámetro para obtener mejores resultados: el uso de vectores de peso es el enfoque convencional, pero el uso de promedios añade más conocimiento de los datos; por ejemplo, puede tener en cuenta un valor de varianza para estimar la precisión de la predicción;
- PriceType - tipo de precio a utilizar para el muestreo; valor por defecto - close; este parámetro no tiene efecto cuando se especifica un nombre de archivo generado automáticamente en el parámetro NetFileName;
- AddInvertedPrice - activar/desactivar un modo, cuando los movimientos de precios invertidos se añaden a las muestras; valor por defecto - true;
- NetFileName - nombre de archivo de la red neuronal entrenada generada por el script SOMFX1Builder; si el nombre se generó automáticamente, incluye varios componentes necesarios para restaurar la mayoría de los parámetros mencionados anteriormente, por lo que el usuario puede rellenar sólo este parámetro; la estructura del nombre de archivo es la siguiente: SOM-V-D-SYMBOL-TF-YYYYMMDDHHMM-YYYMMDDHHMM-P.candlemap, donde V - PatternSize, D - GridSize, SYMBOL - símbolo de trabajo actual, TF - timeframe actual, YYYYMMDDHHMM - LearnStart y LearnStop respectivamente; P - PriceType;
- CellSize - tamaño de una sola unidad visualizada en el gráfico; valor por defecto - 20, que está bien para mapas con dimensiones de hasta 10; para un mapa más grande elija un tamaño de celda más pequeño, o de lo contrario las dos vistas del mapa se superpondrán;
- PrintData - activar/desactivar el registro de depuración; por defecto - false;
Si alguno de los parámetros es incorrecto, el indicador imprime un mensaje de error en el registro. Por ejemplo, puede cargar un mapa sólo en un gráfico con el mismo símbolo y marco temporal que se utilizó durante el entrenamiento.
