Mira cómo descargar robots gratis
¡Búscanos en Facebook!
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
Visualizaciones:
1088
Ranking:
(29)
Publicado:
2014.01.15 09:11
Actualizado:
2014.02.17 09:43
\MQL5\Experts\
ebitpictest.mq5 (16.72 KB) ver
\MQL5\Include\
incgui_bitpic.mqh (154.25 KB) ver
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Archivo de inclusión IncGUI_BitPic.mqh con la clase de control gráfico CBitPic para el dibujo de píxeles (Fig. 1).

Fig. 1. Ejemplo de dibujo con la clase CBitPic.

Fig. 1. Ejemplo de dibujo utilizando la clase CBitPic.

Uno puede dibujar puntos de diferentes tamaños - DrawDot(), líneas en coordenadas - DrawLine(), líneas por el ángulo - DrawLineByAngle(), flechas - DrawArrow(), varias formas: rectángulos - DrawRectangle(), triángulos - DrawTriangle(), círculos, elipses, anillos, sectores - DrawCircle(). Una elipse puede girar un ángulo determinado (así como también el anillo de elipse y el sector). Las formas pueden ser llenadas o solo perfiladas. Uno puede escribir texto - TypeText() (con varias opciones de fuente y tamaño). La imagen creada se puede guardar en un archivo bmp - SavePicture (), y se puede leer desde un archivo bmp - LoadPicture () (el archivo no debe ser comprimido, a 24 o 32 bits).

Antes de empezar a usar el control, incluya el archivo IncGUI_BitPic.mqh:

#include <IncGUI_BitPic.mqh>

A continuación declare una clase, por ejemplo 'p':

CBitPic p;

La clase se crea utilizando los principios establecidos en los artículos:

Por lo tanto, se utiliza de forma similar a los controles que se describen en los artículos anteriores: en primer lugar, se llama al método Init() se llama al método de inicialización; el método Show() se utiliza para activar la visibilidad; el método Hide() es utilizado para ocultar y eliminar al finalizar el trabajo, etc. 

En contraste con la clase cIntBMP, el dibujo se lleva a cabo de una forma algo diferente. En cIntBMP, el color del dibujo se ha especificado en las funciones para dibujar formas. En este caso, va de la siguiente manera: Se especifica el color de fondo - SetBGColor(), seguido de la limpieza - Clear(). Antes de dibujar, la anchura del dibujo - SetDrawWidth(), el color del dibujo - SetDrawColor(), y el color de relleno - SetFillColor() están establecidos, y es necesario especificar si se rellena la forma - SetFilled() o si solo se perfila. Esto es seguido por las llamadas a las funciones de dibujo. El color del dibujo, el color del relleno, etc, sin duda se puede cambiar, si es necesario. Una vez que se ha completado el dibujo, el método Redraw() debe ser llamado. 

La siguiente tabla presenta todos los métodos de la clase:

Método
Funciones y parámetros
void Clear() Limpia
void DrawArrow(
   int aX1,
   int aY1,
   int aX2,
   int aY2,
   bool aBoth=false
)
Dibuja una flecha. aX1, aY1 - coordenadas de inicio, aX2, aY2 - coordenadas del final, aBoth - flechas en ambos extremos. 
void DrawCircle(
   int aX,
   int aY,
   int aR,
   double aR2K=0,
   double aFromAngle=0,
   double aToAngle=0,
   double aRatio=1,
   double aRotateAngle=0
)
Dibuja un círculo, anillo, elipse, sector. aX, aY - coordenadas del centro; aR2K - radio del círculo interior (de 0 a 1); aFromAngle, aToAngle - inicio y final de los angulos del sector; aRatio - coeficiente de compresión (un número positivo, si es menos de 1 - compresión vertical, si es mayor que 1 - expansión vertical); aRotateAngle - angulo de rotación. 
void DrawDot(
   int aX,
   int aY
)
Dibuja un punto. aX, aY - coordenadas. 
void DrawLine(
   int aX1,
   int aY1,
   int aX2,
   int aY2
)
Dibuja una linea. aX1, aY1 - coordenadas del inicio, aX2, aY2 - coordenadas del final. 
void DrawLineByAngle(
   int aX1,
   int aY1,
   double aAngle,
   int aLength
)
Dibuja una linea por el angulo . aX1, aY1 - coordenadas del inicio, aAngle - angle, aLength - length. 
void DrawRectangle(
   int aX1,
   int aY1,
   int aX2,
   int aY2
)
Dibuja un rectángulo. aX1, aY1 - coordenadas de la esquina superior izquierda, aX2, aY2 - coordenadas de la esquina inferior derecha. 
void DrawTriangle(
   int aX1,
   int aY1,
   int aX2,
   int aY2,
   int aX3,
   int aY3
)
Dibuja un triángulo. aX1, aY1, aX2, aY2, aX3, aY3 - coordenadas de los vértices. 
int Event(
   const int id,
   const long & lparam,
   const double & dparam,
   const string & sparam
)
Controlador de eventos. Se le llama desde la función OnChartEvent() del Asesor Experto. 
int EventX() X-coordenada del último clic en el objeto gráfico.
int EventY() Y- X-coordinate of the last click on the graphical object.
void Fill(
   int aX,
   int aY
)
Llenar un área de color con el color de relleno. aX, aY - coordenadas. 
void GetData(
   uint & aData[]
)
Obtiene el array de los datos de la imagen. aData - array en la que se devuelven los datos. 
color GetPixel(
   int aX,
   int aY
)
Obtiene el color del píxel por las coordenadas dadas. aX, aY - coordenadas. 
int Height() Obtiene la altura del objeto gráfico.
void Hide() Elimina el objeto gráfico de la gráfica.
void Init(
   string aName="CBitPic",
   int aWidth=300,
   int aHeight=200
)
Inicialización . aName - Nombre del objeto gráfico, aWidth - ancho, aHeight - altura.
int Left() Obtiene la coordenada del borde izquierdo del objeto gráfico.
bool LoadPicture(
   string aFileName,
   bool aFileCommon=false
Carga la imagen de un archivo bmp. aFileName - nombre del archivo, aFileCommon - El archivo está en la carpeta pública 'MQL5/Files' o en la carpeta del terminal 'MQL5/Files'. Se permiten los archivos sin comprimir, 24 o 32 bits. 
void Redraw() Redibuja el objeto gráfico.
void Refresh() Refrescar (borrar y crear).
bool SavePicture(
   string aFileName,
   bool aFileCommon=false
)
Guarda la imagen en un archivo bmp. aFileName - nombre del archivo, aFileCommon - El archivo se salva en la carpeta pública 'MQL5/Files' o en la carpeta del terminal 'MQL5/Files'. 
void SetBGColor(
   uchar aR=0,
   uchar aG=0,
   uchar aB=255
)
Establece el color de fondo. aR, aG, aB - valores de los componentes del color. 
void SetBGColor(
   color aColor=clrBlue
)
Establece el color de fondo. aColor - color. Después de que el color es fijado, debe llamarse el método Clear().
void SetData(
   uint & aData[]
)
Establece el conjunto de los datos de la imagen. aData - datos del array.
void SetDrawColor(
   uchar aR=255,
   uchar aG=255,
   uchar aB=0)
Establece el color del dibujo. aR, aG, aB - valores de los componentes del color. 
void SetDrawColor(
   color aColor=clrYellow
)
Establece el color del dibujo. aColor - color. 
void SetDrawWidth(
   int aWidth
)
Establece la anchura del trazo. aWidth - anchura desde 1 a 5. 
void SetFillColor(
   uchar aR=255,
   uchar aG=0,
   uchar aB=0
)
Establece el color del relleno. aR, aG, aB - valores de los componentes del color. 
void SetFillColor(
   color aColor=clrRed
)
Establece el color del relleno. aColor - color. 
void SetFilled(
   bool aFilled=true
)
Establece el modo de relleno. aFilled - con relleno/sin relleno. 
void SetFont(
   int aType=3
)
Establece la fuente. aType - tipo (0-6). 0 - Small Fonts 6, 1 - Small Fonts 7, 2 - Small Fonts 8, 3 - Arial 8, 4 - Arial Narrow 8, 5 - Arial Black 8, 6 - Courier New 8. 
void SetPos(
   int aLeft,
   int aTop
)
Establece las coordenadas de la esquina superior izquierda del objeto gráfico. aLeft - distancia desde el borde izquierdo, aTop - desde el borde superior.
void SetPosLeft(
   int aLeft
)
Establece la coordenada del borde izquierdo del objeto gráfico. aLeft - distancia desde el borde izquierdo.
void SetPosTop(
   int aTop
)
Establece la coordenada del borde superior del objeto gráfico. aTop - distancia desde el borde superior.
void SetSize(
   int aWidth,
   int aHeight
Establece el tamaño. aWidth - ancho, aHeight -alto.
void SetSubWindow(
   int aNumber
)
Establece la subventana por número. aNumber - número de la subventana. 
void SetSubWindow(
   string aName
)
Establece la subventana por nombre. aName - nombre de la subventana. 
void SetTag(
   string aValue
)
Establece la etiqueta. aValue - texto. 
void Show() Activación de la visibilidad del objeto gráfico.
void Show(
   int aLeft,
   int aTop
)
Activación de la visibilidad del objeto gráfico en la posición especificada. aLeft - distancia desde el borde izquierdo, aTop - distancia desde el borde superior. 
string Tag() Obtiene la etiqueta.
int Top() Obtención de la coordenada del borde superior del objeto gráfico.
void TypeText(
   int aX,
   int aY,
   string aText,
   int aDirection=0,
   int aAlign=0
)
Typing a text. aX, aY - Coordenadas, aText - texto, aDirection - dirección (0 - de izquierda a derecha, 1 - de arriba a abajo, 2 - de derecha a izquierda invertido, 3 - de abajo hacia arriba), aAlignе - alineación (0 - por inicio del texto, 1 - por final del texto). 
bool Visible() Obtiene la visibilidad del objeto gráfico. 
int Width() Obtiene la anchura del objeto gráfico.


El archivo eBitPicTest.mq5 ofrece un ejemplo del uso de la clase CBitPic. El asesor experto dibuja la imagen en el gráfico como en la Fig. 1 y lo guarda en el archivo CBitPic.bmp (debe aparecer en la carpeta de datos del terminal MQL5/Files). Si haces clic en la imagen, las coordenadas del punto y su color se mostrarán en el comentario del gráfico y en el "snowflake" aparecerá el punto marcado (como en la esquina superior derecha de la figura 1).

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

ColorXATR ColorXATR

ATR suavizado, en color, que muestra si la tendencia se fortalece o se debilita.

SpearmanStack_X20 (SpearmanRankCorrelation indicator threads) SpearmanStack_X20 (SpearmanRankCorrelation indicator threads)

Se muestran en una ventana veinte líneas del indicador Spearman's Rank Correlation.

MultiLineMovingAverage MultiLineMovingAverage

El indicador MultiLineMovingAverage muestra los niveles de seis medias móviles en la ventana del gráfico activo.

ColorRVI_HTF ColorRVI_HTF

Variante clásica del indicador RVI (Relative Vigor Index) que puede ser configurado para mostrar valores correspondientes a un periodo diferente al del grafico al que se adjunta. El indicador se visualiza como una nube.