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
Visualizaciones:
1883
Ranking:
(35)
Publicado:
2018.02.02 11:30
\MQL5\Include\fxsaber\Clock\
Canvas.mqh (0.36 KB) ver
Color.mqh (1.48 KB) ver
File.mqh (2.45 KB) ver
Image.mqh (1.17 KB) ver
Pixel.mqh (0.33 KB) ver
Settings.mqh (1.26 KB) ver
Clock_Layer.mqh (1.55 KB) ver
Layer.mqh (2.05 KB) ver
\MQL5\Include\fxsaber\
Clock.mqh (1.65 KB) ver
\MQL5\Indicators\fxsaber\
Clock.mq5 (2.84 KB) ver
\MQL5\Files\
Clocks.zip (903.45 KB)
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

La librería (Clock.mqh) ayuda a crear un reloj análogo en los recursos gráficos.


Posibilidades

En el siguiente código fuente se muestra el uso de la librería:

// MQL4&5-code
// Ejemplo del Asesor Experto multiplataforma que crea un reloj análogo en el gráfico

#property strict

#include <fxsaber\Clock.mqh> // https://www.mql5.com/ru/code/19388

const string ObjName = __FILE__;            // Nombre del objeto Bitmap para mostrar el reloj
const string ResourceName = "::" + ObjName; // Nombre del recurso donde va a formarse el reloj

// Hemos creado el reloj usando los ajustes del archivo INI correspondiente
CLOCK Clock("Clocks\\Clock01\\Clock01.INI", ResourceName);

void OnINIt()
{
  // Hemos creado un objeto gráfico para mostrar el reloj
  ObjectCreate(0, ObjName, OBJ_BITMAP_LABEL, 0, 0, 0);

  // Especificamos el nombre del recurso donde se encuentra el reloj
  ObjectSetString(0, ObjName, OBJPROP_BMPFILE, 0, ResourceName);

  // Añadimos la posibilidad de seleccionar el objeto para desplazar con el ratón
  ObjectSetInteger(0, ObjName, OBJPROP_SELECTABLE, true);

  // Activamos el temporizador de segundos para actualizar el reloj
  EventSetTimer(1);
}

void OnTimer()
{
  // Establecemos la hora local en el reloj
  Clock.SetTime(TimeLocal());

  // Redibujamos el gráfico para ver los cambios
  ChartRedraw();
}

Después de iniciar en el gráfico, aparece este reloj:


Indicador

Para el uso inmediato de la entrega, se adjunta el indicador multiplataforma Clock.mq5.

Tiene implementado el cambio interactivo de las temas (skins en inglés). Las variantes del reloj (descomprime el archivo ZIP) se cambian con las teclas ARRIBA/ABAJO en el teclado.


Particularidades

  • Reloj de trama (no vectorial);
  • Los giros de las agujas están implementados sin suavizado;
  • La librería funciona en MetaTrader 4/5.


Formación del reloj

Los originales del reloj desde el ejemplo han sido cogidos de Internet a través de la búsqueda rápida del reloj flash (los archivos swf se encuentran en el archivo ZIP) que es muy cómodo debido al hecho de que su contenido ya incluye las representaciones gráficas de las esferas, agujas, etc. Desde luego, se puede usar otras fuentes. Por ejemplo, se puede usar los archivos vectoriales hechos de Internet. O bien, Usted mismo puede dibujarlo.

Los archivos INI (véase los ejemplos) establecen los ajustes de la formación del reloj capa por capa. Los ajustes se editan en cualquier editor de texto y tienen la siguiente apariencia:

ImageName = ClockFace.bmp
BoundX = 0 // coordenada X del punto cero dentro de la imagen bmp (capa)
BoundY = 0 // coordenada Y del punto cero dentro de la imagen bmp (capa)
X = 0      // coordenada X del punto cero dentro de la imagen que se forma (de las capas)
Y = 0      // coordenada Y del punto cero dentro de la imagen que se forma (de las capas)
Rotate = 0 // Velocidad del giro
A = 100%   // La parte del canal Alpha que se usa
R = 100%   // La parte del canal Red que se usa
G = 100%   // La parte del canal Green que se usa
B = 100%   // La parte del canal Blue que se usa

Cuanto más baja sea la posición de la descripción de la capa en el archivo de los ajustes, más alta será su posición encima de la capa descrita antes. No hay ninguna limitación especial respecto al número de las capas.

Debido a esta construcción de las imágenes, se puede usar la librería no sólo para la formación del reloj, sino también para otros objetos estáticos/dinámicos. Para la dinámica del reloj, bastaba con tener la posibilidad de establecer sólo la rotación. Pero si insertamos apenas unas líneas en el código, podemos añadir otros tipos del movimiento (desplazamiento, escalamiento, etc.). Aquí, el original sirve solamente de un ejemplo simple para implementar este enfoque durante la descripción de las imágenes.

Volviendo al reloj, debido al trabajo capa por capa (prestado del reloj flash), las sombras de las agujas y los coloreados han sido implementados de forma original.

Si quiere hacer una esfera, por ejemplo, transparente, basta con establecer el canal Alpha menos de 100% en el archivo INI correspondiente, obteniendo el siguiente resultado:

Canal Alpha de la esfera menos de 90% (A = 90)

Para el momento de la publicación, el reloj análogo prácticamente no existía en el Market. He encontrado esta versión en CodeBase .

De lo original, en la librería ha sido escrita sólo LAYER::Rotate que se encarga de la rotación. Probablemente esta función estimulará para la creación de las soluciones ajenas a base de los recursos gráficos dinámicos parecidos al reloj.

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

JS-Chaos JS-Chaos

Este Asesor Experto utiliza la estrategia de Bill Williams.

KI_signals_v2 KI_signals_v2

Este indicador de tendencia recibe las señales comerciales desde el histograma XMACD.

N seconds N points N seconds N points

Este Asesor Experto monitorea las posiciones de todos los símbolos y con todos los números mágicos. Si la posición ya está abierta durante "Waiting for seconds" y su beneficio ha alcanzado los puntos "Take Profit", cierra las posiciones. Si el beneficio no ha llegado a los puntos "Take Profit", desplaza el nivel take profit.

Dtm Dtm

Oscilador en el estilo DRAW_FILLING con el uso de los filtros digitales.