Volume Profile Per Candle
- Indicadores
- Versión: 4.40
- Activaciones: 5
Este es un completo perfil de volumen por vela / indicador gráfico de huella para MetaTrader 5, representado enteramente a través de una superposición de lienzo (CCanvas). Es un indicador de un solo archivo, sin búfer que se dibuja directamente en la ventana del gráfico utilizando gráficos a nivel de píxel. Aquí está un desglose completo:
Concepto básico
Para cada vela visible, el indicador divide el rango de precios de la barra en niveles de precios configurables (hasta 50) y cuenta cuánta actividad de negociación se produjo en cada nivel, ya sea a partir de datos reales de ticks, volumen de ticks o volumen real. A continuación, visualiza esta distribución de "tiempo a precio" como un mapa de calor, una huella u otro estilo visual directamente en el gráfico.
Principales grupos de funciones
1. Representación de mapas de calor (visual principal)
El indicador ofrece 8 modos de visualización para visualizar la distribución del volumen por barra:
- Relleno - rectángulos de color sólido por nivel de precio, mapeados en color por intensidad
- Gradiente - suave gradiente vertical que se mezcla dentro de cada celda (utiliza una aproximación de 4 bandas por rendimiento)
- Barras - barras horizontales cuya anchura representa la intensidad
- Puntos - patrón de matriz de puntos, densidad proporcional a la actividad
- Huella(Oferta×Preventa) - texto clásico de huella que muestra el volumen de oferta y demanda por nivel.
- Delta - rectángulos de color que muestran el desequilibrio neto de compra/venta por nivel
- Volumen total - volumen por nivel con coloreado basado en delta
- Combinado - fondo de intensidad de mapa de calor + texto de huella superpuesto
Hay 9 temas de color: Térmico (azul→rojo), Magma (negro→amarillo), Océano, Bosque, Plasma (púrpura→dorado), Infierno, Escala de grises, Neón (cian→magenta) y Personalizado (gradiente de 3 colores definido por el usuario). Una tabla de búsqueda de color de 256 entradas se pre-construye cada cuadro para el rendimiento.
2. Fuentes de datos de volumen
Se admiten tres fuentes:
- Volumende ticks - volumen de ticks estándar de MT5, distribuido entre niveles utilizando un modelo ponderado (el cuerpo recibe más peso que las mechas, el centro del cuerpo recibe la mayor parte).
- Volumenreal: volumen notificado por la bolsa cuando esté disponible.
- Datos reales de tick - el modo más preciso. Utiliza CopyTicksRange() para obtener datos reales tick a tick, clasifica cada tick como de compra o de venta utilizando primero las banderas de tick, luego un algoritmo Lee-Ready fallback (comparando el último precio con el de compra/venta, luego con la dirección del tick anterior). Esto rellena el volumen real de compra/venta por nivel.
3. POC (Punto de Control) y Área de Valor
- POC - el nivel de precios con el mayor volumen/actividad dentro de cada barra. Cuando se dispone de datos reales de ticks, el POC se basa en el volumen negociado real ( totalVol[] ); de lo contrario, utiliza el recuento de ticks. Cuatro estilos visuales: línea continua, línea discontinua, marcador de flecha, marcador de diamante.
- Extensión del POC - Las líneas del POC pueden extenderse hacia la derecha más allá de la vela, con una longitud de extensión proporcional a la intensidad del mapa térmico combinado a ese precio. Utiliza un gradiente térmico que se desvanece. El multiplicador de extensión es configurable (1×-10×).
- Área de valor - la zona de precio que contiene un porcentaje configurable (por defecto 70%) del volumen total, calculado expandiéndose hacia fuera desde el POC. Se dibuja como un relleno semitransparente con líneas de contorno (VAH/VAL).
4. Nodos de Volumen Alto/Bajo
- HVN - los niveles que exceden un umbral porcentual de la actividad máxima de la barra obtienen un borde de color resaltado (por defecto: umbral 80%, borde lima)
- LVN - los niveles por debajo de un umbral obtienen un resaltado diferente (por defecto: umbral del 20%, borde rojo)
5. Detección de bloqueo de órdenes (conceptos de dinero inteligente)
Un sofisticado sistema de detección de zonas calientes que identifica los bloques de órdenes institucionales:
Método de detección:
- Escanea las últimas N barras (retroceso configurable, por defecto 100)
- Construye un mapa de densidad de precios en cubos: divide todo el rango de precios en cubos con un ancho de tolerancia y cuenta cuántas veces ha visitado el precio cada cubo.
- Identifica las "zonas calientes" en las que la densidad supera un porcentaje configurable de la densidad máxima.
- Utiliza una ordenación de inserción top-N para conservar sólo los candidatos MAX_OB (30) más fuertes.
- Comprueba si hay zonas que se solapan y las desduplica.
Puntuación mejorada (puntuación de fuerza de 1 a 10):
- Detección de impulsos (0-3 puntos) - busca velas direccionales fuertes después del OB, puntuación relativa al ATR (2× ATR = 3 pts, 1× = 2 pts, 0,3× = 1 pt)
- Barrido de liquidez (0-2 puntos) - comprueba si el precio barrió los máximos/mínimos de las oscilaciones anteriores antes de formar el OB
- Fair Value Gap (0-2 puntos) - detecta FVGs adyacentes al OB (gap entre el mínimo de la barra[i] y el máximo de la barra[i+2] para alcistas, tamaño mínimo del gap relativo al ATR)
- Confirmación de volumen (0-1 punto) - volumen de la barra OB frente a la media de 10 barras (1,2× umbral)
- Intensidad (0-1 punto) - densidad relativa al máximo (>0,6 = 1 pt)
- Recuento de barras (0-1 punto) - 2-8 barras en la zona dan un punto
Seguimiento de mitigación:
- Rastrea si el precio ha vuelto a entrar en la zona, a qué profundidad (mitigationPct 0-100%)
- 50% de penetración = mitigado; completo = 100% mitigado
- Detecciónde bloque de ruptura: cuando el precio atraviesa completamente un OB, pasa a ruptura.
- Recuento de pruebas con deduplicación por barra
- El estado de mitigación persiste en las reconstrucciones mediante un mecanismo de guardar/restaurar.
Filtrado:
- Toques mínimos, volumen mínimo, puntuación de fuerza mínima
- Rango máximo en pips o como multiplicador ATR
- Los OBs pueden extenderse hacia delante (barras configurables)
Representación visual:
- Rectángulos rellenos con opacidad ajustada por fuerza (fuerte = más brillante, atenuada = desvanecida)
- Línea POC discontinua dentro de la zona
- Etiquetas que muestran el tipo, el recuento de barras, la puntuación de fuerza y el estado (BREAKER/MIT %)
- Pequeños indicadores para FVG, LIQ (barrido de liquidez), IMP (pips de impulso)
- Barra de intensidad en el borde derecho (codificada por colores: rojo→naranja→amarillo según la puntuación)
- Barra de intensidad en la parte inferior
6. Arcos de oscilación
Conecta segmentos de swing consecutivos con curvas suaves ponderadas por intensidad de volumen:
- Divide el rango visible en segmentos de periodo configurable (por defecto 8 barras).
- Para cada segmento, recoge el precio POC (o punto medio de la barra) en cada barra como puntos de control
- Dibuja una curva suave interpolada por Hermite a través de estos puntos
- Añade un desplazamiento de arco parabólico en función de si la oscilación es alcista o bajista
- Los puntos de control se dibujan en el pico de intensidad de cada barra
- Tres estilos de línea: suave, discontinua, punteada
- Relleno opcional entre el arco y una línea de base
- Código de colores: alcista = DeepSkyBlue, bajista = Magenta
7. Perfil de intensidad de la sub-barra
Dibuja un histograma junto a cada vela mostrando la distribución del volumen:
- Puede aparecer a la derecha, a la izquierda o a ambos lados de la vela
- El ancho de la barra es proporcional a la intensidad en cada nivel
- La intensidad del color también varía con el volumen
- Etiquetas de texto de volumen opcionales
- Ancho máximo y opacidad configurables
8. Análisis de huella y desequilibrio
Cuando se utilizan los modos de visualización de la huella:
- Bid×Ask - muestra "BidVol × AskVol" en cada nivel
- Sólo Delta - muestra el delta con signo (+/-)
- Volumen (Delta) - muestra "TotalVol (+Delta)"
- Todo - muestra "Oferta × Demanda [+Delta]"
Detección de desequilibrios:
- Compara el volumen de compra en el nivel N con el volumen de venta en el nivel N-1 (desequilibrio de compra).
- Compara el volumen de compra en el nivel N con el volumen de venta en el nivel N+1 (desequilibrio de venta)
- Umbral de ratio configurable (por defecto 1,0 = 100%)
- Resaltado con fondos y bordes de color
9. Mapa de precios combinados
Un mapa térmico agregado que abarca toda la gama visible (no por candela):
- Suma el volumen de todas las barras almacenadas en caché (retroceso configurable, por defecto 200) en un único perfil con 200 niveles de precios.
- Dibujado como una superposición de ancho completo detrás de los visuales por barra
- Muestra dónde existe concentración de volumen acumulado en el gráfico visible
- También se utiliza para buscar la intensidad de la extensión POC
10. Panel de confirmación de marco temporal superior (HTF)
Analiza dos plazos superiores simultáneamente:
- Auto-selección - elige automáticamente el siguiente timeframe superior (ej., M15→H1, H1→H4, H4→D1)
- Construye un perfil de volumen en el HTF utilizando las últimas N barras
- Calcula HTF POC, VAH, VAL
- Determina la dirección de la tendencia: BULL/BEAR/NEUTRAL basado en el cierre frente a la media móvil, la dirección de la vela y el precio frente al POC.
- Muestra un panel en la esquina superior derecha con la tendencia, el precio del POC, la posición relativa al POC (por encima/por debajo) y los niveles de VA.
11. Sistema de zoom
Dos ejes de zoom independientes:
- Vertical (PgUp/PgDn) - zoom de precios, cada nivel reduce el rango de precios visible en un 15% (0.85^nivel), hasta 20 niveles. Utiliza CHART_SCALEFIX para bloquear el rango de precios.
- Horizontal (+/-) - primero utiliza la escala del gráfico incorporada en MT5 (0-5), luego añade un "zoom extra" (2×-8×) donde cada barra N se salta y las barras restantes se dibujan más anchas para llenar el espacio.
12. Calibración del eje Y
Un detalle técnico notable: el indicador utiliza ChartTimePriceToXY() para calibrar el rango real de píxeles del área de precios del gráfico (que es menor que CHART_HEIGHT_IN_PIXELS debido a las barras de herramientas/barras de desplazamiento). Esto asegura que las celdas del mapa de calor se alineen con precisión con las velas.
Arquitectura de rendimiento
- Caché basada en hash - tabla hash de 4096 ranuras con sondeo lineal y borrado tombstone para la búsqueda de datos de barras O(1) (sustituye al escaneo lineal O(n))
- Desalojo circular: cuando la caché está llena (1.200 entradas), la entrada más antigua se sobrescribe mediante un índice de escritura circular.
- Caché deposición X de barra - caché por fotograma de hasta 2000 posiciones de píxel de barra para evitar repetidas llamadas ChartTimePriceToXY
- Color LUT - tabla de búsqueda de color pre-construida de 256 entradas que elimina la matemática de color de punto flotante por celda
- ARGB precalculado - todos los colores fijos se calculan una vez por fotograma
- Selección del rango visible: tanto el bucle de barras como el bucle por nivel de barras omiten los elementos fuera de pantalla.
- Redibujados ralentizados: milisegundos mínimos configurables entre redibujados (100 ms por defecto) para evitar tormentas de redibujados durante el desplazamiento.
- Submuestreo de ticks: cuando el recuento de ticks supera el máximo configurado (por defecto 5000), los ticks se muestrean a intervalos uniformes con recuentos escalados por el tamaño del paso.
Manejo de Eventos
- OnCalculate - manejador principal de ticks, detecta nuevas barras, activa cálculos pesados (detección OB/Arc, análisis HTF) sólo en nuevas barras
- OnChartEvent - maneja CHARTEVENT_CHART_CHANGE (scroll/zoom), mouse hover para tooltips, y teclado para controles de zoom. Llama directamente a RenderFrame() para una respuesta inmediata.
- OnTimer - temporizador de milisegundos que captura los cambios de desplazamiento (arrastre/rueda del ratón) que no siempre activan OnChartEvent, sondeando el estado del gráfico y comparándolo con valores anteriores.
RenderFrame() es totalmente autónomo - lee el estado del gráfico y utiliza iTime/iHigh/iLow/iClose/iVolume en lugar de los parámetros de matriz de OnCalculate, por lo que puede ser llamado desde cualquier controlador de eventos.
Resumen de configuración
El indicador tiene ~80 parámetros de entrada organizados en grupos: Heatmap, Custom Colors, POC/Value Area, HVN/LVN, Order Blocks (~20 params), Swing Arcs, Sub-Bar Profile, Labels, HTF Confirmation, Chart Appearance, Footprint, Imbalance, Combined Heatmap, y Performance. Está diseñado para ser una única herramienta de análisis de volumen todo en uno que sustituye a múltiples indicadores separados.
