Mira cómo descargar robots gratis
¡Búscanos en Twitter!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Librerías

Vertical histograms constructor - librería para MetaTrader 5

Visualizaciones:
1504
Ranking:
(29)
Publicado:
2017.01.11 08:43
\MQL5\Include\
Histogram.mqh (30.65 KB) ver
\MQL5\Indicators\
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

El histograma representa un diagrama de barras de frecuencias. En un eje se colocan los valores de la variable, y en el otro, la frecuencia de ocurrencia (surgimiento, aparición, etc.) de estos valores. La altura de cada barra muestra la frecuencia (número) de valores pertenecientes al intervalo correspondiente que es igual al ancho de la barra. Con mayor frecuencia, estos diagramas se muestran horizontalmente, es decir, los valores de la variable se ubican en el eje horizontal, y las frecuencias, en el eje vertical.

En esta librería vamos a centrarnos en los histogramas verticales de las series de variación: los valores de precios de las características analizadas van a ubicarse en el eje vertical en orden ascendiente, y las frecuencias, en el eje horizontal. Los datos de precios que llegan al terminal se distribuyen y se agrupan en la barra actual y pueden ser visualizados respecto a su eje a la izquierda, a la derecha o a ambos lados a la vez.

Fig. 1. Histograma vertical de la distribución de precios Bid y Ask.

Fig. 1. Histograma vertical de la distribución de precios Bid y Ask.

El constructor de los histogramas verticales está construido a base de la clase CHistogram. La implementación de todos sus métodos se basa en el uso de así llamada memoria «gráfica».

Método: constructor de la clase CHistogram.

Inicializa la instancia de la clase.

void CHistogram(
   string name,                     // prefijo único del nombre
   int    hsize,                    // escala del diagrama
   int    width,                    // grosor de las líneas de las barras del histograma
   color  active,                   // color de las líneas activas
   color  passive,                  // color de las líneas pasivas
   bool   Left_Right=true,          // left=false or right=true
   bool   relative_frequency=false, // el histograma relativa o absoluta
   int    sub_win=0                 // índice de la ventana de construcción del histograma
   );

Parámetros:

name

   [in] Prefijo único del nombre para todas las barras del histograma.

hsize

   [in] Escala de visualización del histograma.

width

   [in] Grosor de las líneas de las barras del histograma.

active

   [in] Color de las barras del histograma actualizadas en la barra actual.

passive

   [in] Color de las barras del histograma que no han sido actualizadas en la barra actual.

Left_Right=true

   [in] Dirección de visualización del histograma. false — el histograma se ubica a la izquierda de la barra actual, true — a la derecha.

relative_frequency=false

   [in] Método del cálculo de los valores de las frecuencias. false — valores absolutos de las frecuencias, true — valores relativos de las frecuencias.

sub_win=0

   [in] Indice de la ventana de construcción del histograma. 0 — la ventana principal del gráfico.

Valor devuelto:

  No hay valor devuelto. En caso del éxito, se crea la instancia de la clase con parámetros especificados.

Método: visualización del histograma DrawHistogram.

Visualiza las barras del histograma: crea las nuevas; edita las existentes; guarda los valores de las frecuencias en la memoria gráfica; visualiza el histograma en la barra actual.

void DrawHistogram(
   double price,  // valor de la variante
   datetime time  // hora de la barra actual
   );

Parámetros:

price

   [in] Valor de la variante de la característica analizada del mercado.

time

   [in] Hora de la barra actual. En esta barra habrá el eje del histograma.

Valor devuelto:

  No hay valor devuelto. En caso del éxito, será creada la nueva barra o será corregida la barra existente del histograma. Si aparece una barra nueva, el histograma se desplaza de tal manera que el eje se encuentre en la barra actual.

Método: cálculo de las características del histograma HistogramCharacteristics.

Devuelve las características calculadas de la serie de variación en la variable tipo sVseries.

sVseries HistogramCharacteristics();

Parámetros:

  No hay parámetros de entrada.

Valor devuelto:

   En caso del éxito, devuelve el valor de la variable tipo sVseries.

Estructura para obtener los valores actuales de las características del histograma (sVseries).

Estructura para el almacenamiento de los últimos valores de las características de la distribución estadística. Está destinada para la obtención de la información más reclamada sobre la serie de variación.

struct sVseries
  {
   long     N;    // número total de observaciones
   double   Na;   // valor medio de frecuencias
   double   Vmax; // valor máximo de la variante
   double   Vmin; // valor mínimo de la variante
   double   A;    // amplitud de la serie
   double   Mean; // media aritmética ponderada
   double   D;    // dispersión
   double   SD;   // desviación media cuadrática
  };
La variable tipo sVseries permite con una llamada a la función HistogramCharacteristics() obtener los valores de todas las características principales de la serie de variación, visualizada en forma del histograma.

Método: visualización del valor de la media DrawMean.

Visualiza el valor de la media aritmética ponderada de la serie de variación en el gráfico.

void DrawMean(
   double coord,     // valor de la media aritmética ponderada
   datetime time,    // hora de la barra actual
   bool marker=false,// mostrar el marcador o no
   bool save=false   // guardar el valor en el historial o no
   );

Parámetros:

coord

   [in] Valor de la media aritmética ponderada.

time

   [in] Hora de la barra actual. En esta barra va a fijarse el valor de la media aritmética ponderada.

marker=false

   [in] Mostrar el marcador en el gráfico o no. false — el marcador no se muestra, true — el marcador se muestra en el gráfico.

save=false

   [in]  Guardar el valor de la media aritmética ponderada en el historial. false — no mostrar, true — mostrar en el gráfico.

Valor devuelto:

   En caso del éxito, en el gráfico se muestra una línea horizontal correspondiente al valor de la media aritmética ponderada.

Método: visualización de la desviación media cuadrática DrawSD.

Muestra el valor de la desviación media cuadrática en forma de un rectángulo cuyo ancho coincide con la frecuencia media, y el alto corresponde a la desviación estándar hacia arriba y hacia abajo desde el valor de la media aritmética ponderada.

void DrawSD(
   sVseries &coord,        // variable tipo sVseries
   datetime time,          // hora de la barra actual
   double deviation=1.0,   // desviación
   color clr=clrYellow     // color de la visualización
   );

Parámetros:

coord

   [in] Valor de la variable tipo sVseries.

time

   [in] Hora de la barra actual.

deviation=1.0

   [in] Coeficiente por el cual va a aumentarse el valor de la desviación media cuadrática.

clr=clrYellow

   [in] Color del rectángulo que visualiza la desviación media cuadrática.

Valor devuelto:

   En caso del éxito, en el gráfico se muestra un rectángulo que caracteriza la desviación media cuadrática desde el valor de la media aritmética ponderada.


En este vídeo se demuestran las posibilidades de la clase. El código del ejemplo de prueba se adjunta.

Este código muestra cómo llamar a uno u otro método de la clase (función).


Recomendaciones:

  • Es mejor utilizar la clase en los timeframes menores.

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/16365

PricePosition PricePosition

El indicador PricePosition muestra la estadística para el precio en el punto angular después del que el precio sube por encima de (BUY) o cae por debajo de (SELL).

StopAndTake MT5 StopAndTake MT5

Al arrastrar el script al gráfico de precios, Stop y Take de todas las órdenes abiertas para este símbolo cambian.

Estadísticas del spread para una hora Estadísticas del spread para una hora

Una visualización simple de la estadística del spread medio para una hora.

Bcrypt Bcrypt

Clase para trabajar con el algoritmo del cifrado por bloques.