


© 2025 Xhakatech, by The Mortak.

SWARM GRID
Ultima modificación
23 de diciembre de 2024, 1:42:20 p.m.
Propósito del Módulo:
El módulo Grid de Precios se encarga de crear y gestionar niveles de precios en un gráfico de trading. Estos niveles ayudan a los traders a identificar áreas clave como máximos, mínimos, soportes y resistencias, facilitando la toma de decisiones informadas.
Includes:
<Arrays/ArrayObj.mqh>
<Object.mqh>
<C_SWARM_DEBUG.mqh>
Inputs;
Número de Niveles: Permite definir cuántos niveles se mostrarán en el grid.
Marcar Niveles Extra: Opción para mostrar niveles adicionales por encima y por debajo del rango principal.
Colores: Configuración de colores para niveles superiores, inferiores y extra.
Marco de Tiempo: Define el periodo de tiempo para el análisis de precios.
Mostrar Etiquetas: Permite mostrar etiquetas descriptivas en los niveles.
Barras Atrás: Define cuántas barras de historial considerar para el cálculo del rango.
Tipo de Rango: Selección entre rangos basados en máximos/mínimos históricos o soportes/resistencias.
Funciones Clave:
Definición de Rango: Establece un rango de precios usando datos históricos para identificar niveles altos y bajos.
Centrado del Grid: Ajusta el grid para centrar el precio actual, o posicionarlo en la parte superior o inferior del rango.
Creación de Líneas de Precios: Genera líneas horizontales en el gráfico que representan los diferentes niveles de precios, cada una con una etiqueta y color específicos.
Gestión de Niveles: Guarda, actualiza y elimina niveles de precios en el gráfico.
Niveles Adicionales: Añade niveles extra para un análisis más detallado.
Depuración: Utiliza mensajes de depuración para informar a los desarrolladores sobre el estado del grid y cualquier error ocurrido.

Documento de diseño
Flujo de Trabajo:
Inicialización: Al activar el módulo, se define el rango de precios y se inicializa el grid.
Cálculo de Niveles: Se calculan y crean los niveles de precios, tanto principales como adicionales.
Visualización: Los niveles se muestran en el gráfico con las etiquetas y colores definidos.
Actualización: El grid se puede actualizar en tiempo real según cambien las condiciones del mercado.
Interfaz de Usuario:
Los traders pueden ajustar configuraciones como el número de niveles, colores y visualización de etiquetas a través de una interfaz de usuario intuitiva.
Las etiquetas descriptivas en los niveles permiten una rápida identificación y análisis visual.
Beneficios para el Usuario:
Mejor Visualización: Facilita la identificación de niveles clave en el gráfico de trading.
Toma de Decisiones Informada: Proporciona una representación clara de áreas de soporte y resistencia, ayudando a los traders a tomar decisiones más precisas.
Personalización: Ofrece múltiples opciones de configuración para adaptarse a las preferencias y estrategias de cada trader.
Ejemplos de Uso:
Un trader puede utilizar el módulo para identificar niveles de resistencia y soporte antes de tomar una decisión de compra o venta.
Durante el análisis técnico, los niveles de precios marcados ayudan a confirmar patrones de mercado y puntos de reversión.


Documento Tecnico
Documento Técnico del Módulo Grid de Precios
Propósito del Módulo:
El objetivo del módulo Grid de Precios es crear y gestionar niveles de precios en un gráfico de trading, facilitando el análisis técnico y la toma de decisiones para los traders.
Includes y Dependencias:
Bibliotecas Incluidas:
<Arrays/ArrayObj.mqh>: Para manejo de arreglos.
<Object.mqh>: Para manejo de objetos gráficos.
<SWARM/SWARM_a109/TRADELINGS/GRIDY/C_SWARM_GRID.mqh>: Archivos específicos del sistema.
<SWARM/SWARM_a109/AUX/C_SWARM_DEBUG.mqh>: Para funciones de depuración.
Inputs:
Parámetros Personalizables:
gridNumberOfLevels: Número de niveles a mostrar.
gridMarkExtraLevels: Indica si se deben marcar niveles adicionales.
gridNumberOfExtraLevels: Número de niveles adicionales a mostrar.
gridUpperRangeColor: Color para el nivel superior.
gridLowerRangeColor: Color para el nivel inferior.
gridLevelsColor: Color para los niveles intermedios.
gridExtraLevelsColor: Color para los niveles adicionales.
gridTimeFrame: Marco de tiempo utilizado para calcular los niveles.
gridMostrarEtiquetas: Indica si se deben mostrar etiquetas en los niveles.
gridBarrasAtras: Número de barras históricas a considerar.
gridRangoTipo: Tipo de rango utilizado (HH_LL o Soporte/Resistencia).
Clases y Estructura:
Clase Grid:
Atributos Privados:
numberOfLevels, markExtraLevels, numberOfExtraLevels, upperRangeColor, lowerRangeColor, levelsColor, extraLevelsColor, timeFrame, mostrarEtiquetas_.
highLevel, lowLevel, hh, ll, stepValue: Para almacenamiento de valores de rango.
niveles: Arreglo para almacenar los niveles creados.
debugger: Instancia para funciones de depuración.
Clase Interna Nivel:
precio: Precio del nivel.
etiqueta: Etiqueta descriptiva del nivel.
Constructor:
Inicializa los atributos con los valores de entrada.
Destructor:
Limpia los niveles creados y elimina el grid.
Flujos Lógicos y Funcionalidades:
Inicialización del Grid:
InicializarGrid(): Inicializa el grid definiendo el rango y centrando los niveles. Dependiendo del tipo de rango (HH_LL_Grid o Soporte_Resistencia_Grid), llama a las funciones correspondientes (DefinirRangoHHLL o DefinirRangoSoporteResistencia). Luego, centra el grid y crea las líneas de rango.
Definición de Rangos:
DefinirRango(double high, double low): Establece los límites del rango basado en los valores alto y bajo proporcionados.
DefinirRangoHHLL(): Calcula el rango utilizando los valores máximos y mínimos históricos del marco de tiempo definido, ajustando highLevel y lowLevel.
DefinirRangoSoporteResistencia(): Calcula el rango de soporte y resistencia revisando los datos históricos y ajustando highLevel y lowLevel con los valores correspondientes.
Centrado del Grid:
CentrarGrid(CentrarPrecio_Grid centrarPrecio): Ajusta el grid para centrar el precio actual, o posicionarlo en la parte superior o inferior del rango, basado en el valor de centrarPrecio.
Creación y Marcado de Niveles:
CrearRangoLineas(): Genera líneas horizontales en el gráfico para highLevel y lowLevel, aplicando configuraciones visuales y etiquetas si están habilitadas.
MarcarNiveles(): Calcula y marca los niveles principales en el gráfico, desde lowLevel hasta highLevel, con los colores y etiquetas definidas.
MarcarNivelesAdicionales(): Añade niveles adicionales por encima y por debajo del rango principal, utilizando los colores y etiquetas especificados.
GuardarNivel(double nivel, string label): Almacena un nivel en el arreglo de niveles, creando una nueva instancia de Nivel.
CrearNivel(double nivel, color col, string label): Crea una línea horizontal en el gráfico para el nivel dado, aplicando el color y etiqueta proporcionados.
ActualizarNivel(double nivel, string label): Actualiza la posición de un nivel existente en el gráfico si es necesario.
EliminarNivel(string label): Elimina una línea de nivel del gráfico.
EliminarGrid(): Elimina todas las líneas de nivel del gráfico y limpia el arreglo de niveles.
Obtención de Niveles:
ObtenerNiveles(CArrayObj &userLevels): Copia los niveles actuales en una colección proporcionada por el usuario.
Depuración y Mensajes:
Utiliza CSwarmDebug para generar mensajes de depuración en diferentes niveles (info, error, success), facilitando la identificación y resolución de problemas.

