Mira cómo descargar robots gratis

¿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:
490
Ranking:
votos: 30
Publicado:
2017.11.21 08:22
Actualizado:
2018.09.06 11:02
\MQL5\Include\\MQL5\Indicators\

Gracias al uso de esta biblioteca, cada programa MQL podrá tener un icono en la zona de las notificaciones en el panel de tareas de Windows. Usted podrá representar mensajes de texto, enviándolos desde sus programas, o bien usar un icono para indicar un determinado estado del programa. El funcionamiento de la biblioteca se basa en la función Shell_NotifyIcon. Para mayor comodidad, se ha creado la clase CNotifyIcon, que oculta los detalles del trabajo con las funciones Windows API y proporciona un sencillo conjunto de métodos para trabajar con tres elementos funcionales: el icono, la ventana de notificaciones y la ayuda emergente.

El aspecto externo del icono y la ventana de notificaciones se muestra en la figura 1.

Ejemplo de un icono y una ventana de notificaciones

Fig. 1. Ejemplo de un icono y una ventana de notificaciones

Al colocar el cursor del ratón sobre el icono, surgirá una ayuda cuyo ejemplo se muestra en la figura 2.

Ejemplo de ayuda emergente

Fig.2. Ejemplo de ayuda emergente

La biblioteca funciona de forma estable en los sistemas a partir de Windows 7/Windows Server 2008 R2.


Icono (Icon)

El tamaño del icono depende de la densidad de los píxeles DPI, establecida en los ajustes de la pantalla de su sistema operativo. Por defecto se usa 96 DPI, lo que corresponde a un tamaño de icono de 16x16. Es necesario estar al tanto de esto, para cargar una imagen de tamaño conveniente. Además, sus imágenes no serán convertidas de forma adicional por el sistema y, por consiguiente, no se distorsionarán. No podrá cargar una imagen de menores dimensiones a las definidas por el sistema

Con la ayuda de GetSystemSize() es posible conocer el tamaño necesario de la imagen para cargar.

int icon_size = CNotifyIcon::GetSystemSize(ICON_SMALL);

Para no crear una imagen para cada valor DPI difundido de la pantalla, se puede preparar un tamaño, digamos de 24x24 (el DPI máximo es igual a 144) o de 32x32 (el DPI máximo es igual a 240), posibilitando la compatibilidad con la mayoría de los usuarios, pero a la vez aceptando la conversión automática (disminución de las dimensiones) y las posibles distorsiones de la imagen. En los ejemplos se usan imágenes en formato BMP con unas dimensiones de 32 x 32 y una profundidad de color de 32 bits (con transparencia).

Podemos cargar una imagen para el icono de una de estas cinco formas:

  1. La primera y más obvia de ellas es la carga desde un archivo. Además, el archivo puede encontrarse fuera del "sandbox" de archivo del terminal.

    CNotifyIcon notify_icon;
    
    notify_icon.Icon.LoadFromFile("D:\\Images\\indicator32.bmp");
    
  2. El segundo método es mediante la carga desde un recurso.

    #resource "\\Images\\Indicator32.bmp"
    
    notify_icon.Icon.LoadFromResource("::Images\\Indicator32.bmp");
    
  3. El tercero, es la carga desde una matriz unidimensional. Este método presupone la conversión preliminar de la imagen en una matriz unidimensional de estructuras RGBQUAD.

    
    const uint icon_array32[1024]=
      {
       0x00FFFFFF,0xFFB7B6B3,0xFFB7B6B3,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB7B6B3,0xFFB7B6B3,0x00FFFFFF,
       0x00FFFFFF,0xFFB7B6B3,0xFFB7B6B3,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB99213,0xFFB7B6B3,0xFFB7B6B3,0x00FFFFFF,
       0x00FFFFFF,0xFFB99213,0xFFB99213,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB99213,0xFFB99213,0x00FFFFFF,
       0x00FFFFFF,0xFFB99213,0xFFB99213,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB99213,0xFFB99213,0x00FFFFFF,
       0x00FFFFFF,0xFFB99213,0xFFB99213,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB99213,0xFFB99213,0x00FFFFFF,
       0x00FFFFFF,0xFFB99213,0xFFB99213,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB99213,0xFFB99213,0x00FFFFFF,
       0x00FFFFFF,0xFFB99213,0xFFB99213,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFFCEF,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB99213,0xFFB99213,0x00FFFFFF,
       0x00FFFFFF,0xFFB79012,0xFFB79012,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFD8D1B7,0xFFD8D1B7,0xFF625F53,0xFF625F53,0xFF57544A,0xFF57544A,0xFF57544A,0xFF535046,0xFF535046,0xFFFFF7D8,0xFFFFF7D8,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB79012,0xFFB79012,0x00FFFFFF,
       0x00FFFFFF,0xFFB79012,0xFFB79012,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFFFF7D8,0xFFD8D1B7,0xFFD8D1B7,0xFF625F53,0xFF625F53,0xFF57544A,0xFF57544A,0xFF57544A,0xFF535046,0xFF535046,0xFFFFF7D8,0xFFFFF7D8,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB79012,0xFFB79012,0x00FFFFFF,
       0x00FFFFFF,0xFFB58E11,0xFFB58E11,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFF9ECB9,0xFFF9ECB9,0xFF605B47,0xFF605B47,0xFF8D8669,0xFF8D8669,0xFFF2E6B3,0xFFF2E6B3,0xFFF2E6B3,0xFFEDE1B0,0xFFEDE1B0,0xFFEEE2B0,0xFFEEE2B0,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB58E11,0xFFB58E11,0x00FFFFFF,
       0x00FFFFFF,0xFFB58E11,0xFFB58E11,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFFFF2BD,0xFFF9ECB9,0xFFF9ECB9,0xFF605B47,0xFF605B47,0xFF8D8669,0xFF8D8669,0xFFF2E6B3,0xFFF2E6B3,0xFFF2E6B3,0xFFEDE1B0,0xFFEDE1B0,0xFFEEE2B0,0xFFEEE2B0,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB58E11,0xFFB58E11,0x00FFFFFF,
       0x00FFFFFF,0xFFB28C10,0xFFB28C10,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFEC9F,0xFFFFEC9F,0xFFFBE89D,0xFFFBE89D,0xFFDDCD8A,0xFFDDCD8A,0xFFDDCD8A,0xFFB2A56F,0xFFB2A56F,0xFF4C462F,0xFF4C462F,0xFFCEBF80,0xFFCEBF80,0xFFF2E097,0xFFF2E097,0xFFF2E097,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB28C10,0xFFB28C10,0x00FFFFFF,
       0x00FFFFFF,0xFFB28C10,0xFFB28C10,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFEC9F,0xFFFFEC9F,0xFFFBE89D,0xFFFBE89D,0xFFDDCD8A,0xFFDDCD8A,0xFFDDCD8A,0xFFB2A56F,0xFFB2A56F,0xFF4C462F,0xFF4C462F,0xFFCEBF80,0xFFCEBF80,0xFFF2E097,0xFFF2E097,0xFFF2E097,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB28C10,0xFFB28C10,0x00FFFFFF,
       0x00FFFFFF,0xFFB28C10,0xFFB28C10,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFEC9F,0xFFFFEC9F,0xFFFBE89D,0xFFFBE89D,0xFFDDCD8A,0xFFDDCD8A,0xFFDDCD8A,0xFFB2A56F,0xFFB2A56F,0xFF4C462F,0xFF4C462F,0xFFCEBF80,0xFFCEBF80,0xFFF2E097,0xFFF2E097,0xFFF2E097,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFEC9F,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFB28C10,0xFFB28C10,0x00FFFFFF,
       0x00FFFFFF,0xFFAF890F,0xFFAF890F,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFE680,0xFFFFE680,0xFFEDD677,0xFFEDD677,0xFF695F35,0xFF695F35,0xFF695F35,0xFF514929,0xFF514929,0xFF544C2A,0xFF544C2A,0xFF655B33,0xFF655B33,0xFFBAA85D,0xFFBAA85D,0xFFBAA85D,0xFFFFE680,0xFFFFE680,0xFFFFE680,0xFFFFE680,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFAF890F,0xFFAF890F,0x00FFFFFF,
       0x00FFFFFF,0xFFAF890F,0xFFAF890F,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFE680,0xFFFFE680,0xFFEDD677,0xFFEDD677,0xFF695F35,0xFF695F35,0xFF695F35,0xFF514929,0xFF514929,0xFF544C2A,0xFF544C2A,0xFF655B33,0xFF655B33,0xFFBAA85D,0xFFBAA85D,0xFFBAA85D,0xFFFFE680,0xFFFFE680,0xFFFFE680,0xFFFFE680,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFAF890F,0xFFAF890F,0x00FFFFFF,
       0x00FFFFFF,0xFFAB860D,0xFFAB860D,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFF9DA5E,0xFFF9DA5E,0xFFF9DA5E,0xFF635725,0xFF635725,0xFFAC9641,0xFFAC9641,0xFFFBDC5E,0xFFFBDC5E,0xFFFEDE60,0xFFFEDE60,0xFFFEDE60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFAB860D,0xFFAB860D,0x00FFFFFF,
       0x00FFFFFF,0xFFAB860D,0xFFAB860D,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFF9DA5E,0xFFF9DA5E,0xFFF9DA5E,0xFF635725,0xFF635725,0xFFAC9641,0xFFAC9641,0xFFFBDC5E,0xFFFBDC5E,0xFFFEDE60,0xFFFEDE60,0xFFFEDE60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFDF60,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFAB860D,0xFFAB860D,0x00FFFFFF,
       0x00FFFFFF,0xFFA7830C,0xFFA7830C,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFE6C43C,0xFFE6C43C,0xFFE6C43C,0xFF524615,0xFF524615,0xFFDDBC39,0xFFDDBC39,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA7830B,0xFFA7830B,0x00FFFFFF,
       0x00FFFFFF,0xFFA7830C,0xFFA7830C,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFE6C43C,0xFFE6C43C,0xFFE6C43C,0xFF524615,0xFF524615,0xFFDDBC39,0xFFDDBC39,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA7830B,0xFFA7830B,0x00FFFFFF,
       0x00FFFFFF,0xFFA7830C,0xFFA7830C,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFE6C43C,0xFFE6C43C,0xFFE6C43C,0xFF524615,0xFF524615,0xFFDDBC39,0xFFDDBC39,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFD942,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA7830B,0xFFA7830B,0x00FFFFFF,
       0x00FFFFFF,0xFFA4800B,0xFFA4800B,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFB7981C,0xFFB7981C,0xFFB7981C,0xFF5C4C0E,0xFF5C4C0E,0xFFFBD126,0xFFFBD126,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA47F0A,0xFFA47F0A,0x00FFFFFF,
       0x00FFFFFF,0xFFA4800B,0xFFA4800B,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFB7981C,0xFFB7981C,0xFFB7981C,0xFF5C4C0E,0xFF5C4C0E,0xFFFBD126,0xFFFBD126,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFD427,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA47F0A,0xFFA47F0A,0x00FFFFFF,
       0x00FFFFFF,0xFFA07C09,0xFFA07C09,0xFFFDCA00,0xFFFDCA00,0xFFFDCA00,0xFFFFCF10,0xFFFFCF10,0xFFF7C90F,0xFFF7C90F,0xFF675406,0xFF675406,0xFF675406,0xFF917609,0xFF917609,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA07D09,0xFFA07D09,0x00FFFFFF,
       0x00FFFFFF,0xFFA07C09,0xFFA07C09,0xFFFDCA00,0xFFFDCA00,0xFFFDCA00,0xFFFFCF10,0xFFFFCF10,0xFFF7C90F,0xFFF7C90F,0xFF675406,0xFF675406,0xFF675406,0xFF917609,0xFF917609,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCF10,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFA07D09,0xFFA07D09,0x00FFFFFF,
       0x00FFFFFF,0xFF9D7A08,0xFF9D7A08,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF715A00,0xFF715A00,0xFF624E00,0xFF624E00,0xFF624E00,0xFF624E00,0xFF624E00,0xFFEABB00,0xFFEABB00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF9D7A08,0xFF9D7A08,0x00FFFFFF,
       0x00FFFFFF,0xFF9D7A08,0xFF9D7A08,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF715A00,0xFF715A00,0xFF624E00,0xFF624E00,0xFF624E00,0xFF624E00,0xFF624E00,0xFFEABB00,0xFFEABB00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF9D7A08,0xFF9D7A08,0x00FFFFFF,
       0x00FFFFFF,0xFF9A7807,0xFF9A7807,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFE270,0xFFFFE270,0xFFFFE787,0xFFFFE787,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFF6D1,0xFFFFF6D1,0xFFFFF9E2,0xFFFFF9E2,0xFFFFF6D1,0xFFFFF6D1,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFE787,0xFFFFE787,0xFFFFE270,0xFFFFE270,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF9A7807,0xFF9A7807,0x00FFFFFF,
       0x00FFFFFF,0xFF9A7807,0xFF9A7807,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFE270,0xFFFFE270,0xFFFFE787,0xFFFFE787,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFF6D1,0xFFFFF6D1,0xFFFFF9E2,0xFFFFF9E2,0xFFFFF6D1,0xFFFFF6D1,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFE787,0xFFFFE787,0xFFFFE270,0xFFFFE270,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF9A7807,0xFF9A7807,0x00FFFFFF,
       0x00FFFFFF,0xFF9A7807,0xFF9A7807,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFFFFE270,0xFFFFE270,0xFFFFE787,0xFFFFE787,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFF6D1,0xFFFFF6D1,0xFFFFF9E2,0xFFFFF9E2,0xFFFFF6D1,0xFFFFF6D1,0xFFFFEEAD,0xFFFFEEAD,0xFFFFEEAD,0xFFFFE787,0xFFFFE787,0xFFFFE270,0xFFFFE270,0xFFFFCC00,0xFFFFCC00,0xFFFFCC00,0xFF9A7807,0xFF9A7807,0x00FFFFFF,
       0x00FFFFFF,0xFF9A978C,0xFF9A978C,0xFF987605,0xFF987605,0xFF987605,0xFF987605,0xFF987605,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987605,0xFF987605,0xFF987605,0xFF987506,0xFF987506,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF9A978C,0xFF9A978C,0x00FFFFFF,
       0x00FFFFFF,0xFF9A978C,0xFF9A978C,0xFF987605,0xFF987605,0xFF987605,0xFF987605,0xFF987605,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987605,0xFF987605,0xFF987605,0xFF987506,0xFF987506,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF987606,0xFF9A978C,0xFF9A978C,0x00FFFFFF
      };
    
    notify_icon.Icon.LoadFromArray(32,32,icon_array32);
    
  4. El cuarto método es la carga desde una línea en la codificación Base64. La conversión de una imagen de formato BMP en una línea se puede realizar a través de uno de los conversores online. Y después transmitir a la función la parte de la línea de la que se excluye el encabezamiento destacado en rojo:

    data:image/bmp;base64,Qk02EAAAAAAAADYAAAAoAAAAIAAAACAAAAABACAAAAAAAAAQAADDDgAAww4AAAAAAAAAAAAA...
    notify_icon.Icon.LoadFromBase64("Qk02EAAAAAAAADYAAAAoAAAAIAAAACAAAAABACAAAAAAAAAQAADDDgAAww4AAAAAAAAAAAAA////AIyXmv+Ml5r/BXaY/wV2mP8Fdpj/BXaY/wV2mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/wV2mP8Fdpj/BXaY/wZ1mP8GdZj/BnaY/wZ2mP8Gdpj/BnaY/wZ2mP+Ml5r/jJea/////wD///8AjJea/4yXmv8Fdpj/BXaY/wV2mP8Fdpj/BXaY/wZ2mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/wZ2mP8Gdpj/BXaY/wV2mP8Fdpj/BnWY/wZ1mP8Gdpj/BnaY/wZ2mP8Gdpj/BnaY/4yXmv+Ml5r/////AP///wAHeJr/B3ia/wDM//8AzP//AMz//3Di//9w4v//h+f//4fn//+t7v//re7//63u///R9v//0fb//+L5///i+f//0fb//9H2//+t7v//re7//63u//+H5///h+f//3Di//9w4v//AMz//wDM//8AzP//B3ia/wd4mv////8A////AAd4mv8HeJr/AMz//wDM//8AzP//cOL//3Di//+H5///h+f//63u//+t7v//re7//9H2///R9v//4vn//+L5///R9v//0fb//63u//+t7v//re7//4fn//+H5///cOL//3Di//8AzP//AMz//wDM//8HeJr/B3ia/////wD///8AB3ia/wd4mv8AzP//AMz//wDM//9w4v//cOL//4fn//+H5///re7//63u//+t7v//0fb//9H2///i+f//4vn//9H2///R9v//re7//63u//+t7v//h+f//4fn//9w4v//cOL//wDM//8AzP//AMz//wd4mv8HeJr/////AP///wAIep3/CHqd/wDM//8AzP//AMz//wBacf8AWnH/AE5i/wBOYv8ATmL/AE5i/wBOYv8Au+r/ALvq/wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//CHqd/wh6nf////8A////AAh6nf8Iep3/AMz//wDM//8AzP//AFpx/wBacf8ATmL/AE5i/wBOYv8ATmL/AE5i/wC76v8Au+r/AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8Iep3/CHqd/////wD///8ACXyg/wl8oP8Ayv3/AMr9/wDK/f8Qz///EM///w/J9/8Pyff/BlRn/wZUZ/8GVGf/CXaR/wl2kf8Qz///EM///xDP//8Qz///EM///xDP//8Qz///EM///xDP//8Qz///EM///wDM//8AzP//AMz//wl9oP8JfaD/////AP///wAJfKD/CXyg/wDK/f8Ayv3/AMr9/xDP//8Qz///D8n3/w/J9/8GVGf/BlRn/wZUZ/8JdpH/CXaR/xDP//8Qz///EM///xDP//8Qz///EM///xDP//8Qz///EM///xDP//8Qz///AMz//wDM//8AzP//CX2g/wl9oP////8A////AAuApP8LgKT/AMz//wDM//8AzP//J9T//yfU//8n1P//J9T//xyYt/8cmLf/HJi3/w5MXP8OTFz/JtH7/ybR+/8n1P//J9T//yfU//8n1P//J9T//yfU//8n1P//J9T//yfU//8AzP//AMz//wDM//8Kf6T/Cn+k/////wD///8AC4Ck/wuApP8AzP//AMz//wDM//8n1P//J9T//yfU//8n1P//HJi3/xyYt/8cmLf/Dkxc/w5MXP8m0fv/JtH7/yfU//8n1P//J9T//yfU//8n1P//J9T//yfU//8n1P//J9T//wDM//8AzP//AMz//wp/pP8Kf6T/////AP///wAMg6f/DIOn/wDM//8AzP//AMz//0LZ//9C2f//Qtn//0LZ//88xOb/PMTm/zzE5v8VRlL/FUZS/zm83f85vN3/Qtn//0LZ//9C2f//Qtn//0LZ//9C2f//Qtn//0LZ//9C2f//AMz//wDM//8AzP//C4On/wuDp/////8A////AAyDp/8Mg6f/AMz//wDM//8AzP//Qtn//0LZ//9C2f//Qtn//zzE5v88xOb/PMTm/xVGUv8VRlL/Obzd/zm83f9C2f//Qtn//0LZ//9C2f//Qtn//0LZ//9C2f//Qtn//0LZ//8AzP//AMz//wDM//8Lg6f/C4On/////wD///8ADIOn/wyDp/8AzP//AMz//wDM//9C2f//Qtn//0LZ//9C2f//PMTm/zzE5v88xOb/FUZS/xVGUv85vN3/Obzd/0LZ//9C2f//Qtn//0LZ//9C2f//Qtn//0LZ//9C2f//Qtn//wDM//8AzP//AMz//wuDp/8Lg6f/////AP///wANhqv/DYar/wDM//8AzP//AMz//2Df//9g3///YN///2Df//9e2vn/Xtr5/17a+f8lV2P/JVdj/0GWrP9Blqz/Xtz7/17c+/9g3v7/YN7+/2De/v9g3///YN///2Df//9g3///AMz//wDM//8AzP//DYar/w2Gq/////8A////AA2Gq/8Nhqv/AMz//wDM//8AzP//YN///2Df//9g3///YN///17a+f9e2vn/Xtr5/yVXY/8lV2P/QZas/0GWrP9e3Pv/Xtz7/2De/v9g3v7/YN7+/2Df//9g3///YN///2Df//8AzP//AMz//wDM//8Nhqv/DYar/////wD///8AD4mv/w+Jr/8AzP//AMz//wDM//+A5v//gOb//3fW7f931u3/NV9p/zVfaf81X2n/KUlR/ylJUf8qTFT/KkxU/zNbZf8zW2X/Xai6/12ouv9dqLr/gOb//4Dm//+A5v//gOb//wDM//8AzP//AMz//w+Jr/8Pia//////AP///wAPia//D4mv/wDM//8AzP//AMz//4Dm//+A5v//d9bt/3fW7f81X2n/NV9p/zVfaf8pSVH/KUlR/ypMVP8qTFT/M1tl/zNbZf9dqLr/Xai6/12ouv+A5v//gOb//4Dm//+A5v//AMz//wDM//8AzP//D4mv/w+Jr/////8A////ABCMsv8QjLL/AMz//wDM//8AzP//n+z//5/s//+d6Pv/nej7/4rN3f+Kzd3/is3d/2+lsv9vpbL/L0ZM/y9GTP+Av87/gL/O/5fg8v+X4PL/l+Dy/5/s//+f7P//n+z//5/s//8AzP//AMz//wDM//8QjLL/EIyy/////wD///8AEIyy/xCMsv8AzP//AMz//wDM//+f7P//n+z//53o+/+d6Pv/is3d/4rN3f+Kzd3/b6Wy/2+lsv8vRkz/L0ZM/4C/zv+Av87/l+Dy/5fg8v+X4PL/n+z//5/s//+f7P//n+z//wDM//8AzP//AMz//xCMsv8QjLL/////AP///wAQjLL/EIyy/wDM//8AzP//AMz//5/s//+f7P//nej7/53o+/+Kzd3/is3d/4rN3f9vpbL/b6Wy/y9GTP8vRkz/gL/O/4C/zv+X4PL/l+Dy/5fg8v+f7P//n+z//5/s//+f7P//AMz//wDM//8AzP//EIyy/xCMsv////8A////ABGOtf8RjrX/AMz//wDM//8AzP//vfL//73y//+98v//vfL//73y//+98v//vfL//7ns+f+57Pn/R1tg/0dbYP9pho3/aYaN/7Pm8v+z5vL/s+by/7Dh7f+w4e3/sOLu/7Di7v8AzP//AMz//wDM//8RjrX/EY61/////wD///8AEY61/xGOtf8AzP//AMz//wDM//+98v//vfL//73y//+98v//vfL//73y//+98v//uez5/7ns+f9HW2D/R1tg/2mGjf9pho3/s+by/7Pm8v+z5vL/sOHt/7Dh7f+w4u7/sOLu/wDM//8AzP//AMz//xGOtf8RjrX/////AP///wASkLf/EpC3/wDM//8AzP//AMz//9j3///Y9///2Pf//9j3///Y9///2Pf//9j3///Y9///2Pf//7fR2P+30dj/U19i/1NfYv9KVFf/SlRX/0pUV/9GUFP/RlBT/9j3///Y9///AMz//wDM//8AzP//EpC3/xKQt/////8A////ABKQt/8SkLf/AMz//wDM//8AzP//2Pf//9j3///Y9///2Pf//9j3///Y9///2Pf//9j3///Y9///t9HY/7fR2P9TX2L/U19i/0pUV/9KVFf/SlRX/0ZQU/9GUFP/2Pf//9j3//8AzP//AMz//wDM//8SkLf/EpC3/////wD///8AE5K5/xOSuf8AzP//AMz//wDM///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//wDM//8AzP//AMz//xOSuf8Tkrn/////AP///wATkrn/E5K5/wDM//8AzP//AMz//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//AMz//wDM//8AzP//E5K5/xOSuf////8A////ABOSuf8Tkrn/AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8Tkrn/E5K5/////wD///8AE5K5/xOSuf8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//xOSuf8Tkrn/////AP///wATkrn/E5K5/wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//AMz//wDM//8AzP//E5K5/xOSuf////8A////ALO2t/+ztrf/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf+ztrf/s7a3/////wD///8As7a3/7O2t/8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/xOSuf8Tkrn/E5K5/7O2t/+ztrf/////AA==");
  5. El quinto y último método presupone que usted tiene un DLL, en el que las imágenes se guardan como recurso. La carga se realiza según el número del recurso. Como ejemplo, hemos tomado shell32.dll, en el que se guarda una gran cantidad de iconos de Windows.

    string str_path;
    StringInit(str_path,MAX_PATH);
    kernel32::GetSystemDirectoryW(str_path,MAX_PATH);
    
    notify_icon.Icon.LoadFromDLL(str_path+"\\shell32.dll",21);
    

Inicialmente, se crea un icono invisible. Para representarlo en la pantalla, es necesario llamar el método Show().

notify_icon.Show();

Para ocultar el icono es necesario llamar el método Hide().

notify_icon.Hide();


Ventana de notificaciones (Balloon)

El icono de la ventana de notificaciones puede ser de dos tamaños SMALL y LARGE. Los métodos de carga son los mismos que para los iconos. Si usted ha elegido la variante de trabajo con el icono pequeño (SMALL), entonces las dimensiones de la imagen deberán corresponderse con las dimensiones establecidas por el sistema, de lo contrario, no se representará. Precisamente por ello, recomiendo usar el tamaño grande del icono para la ventana de notificaciones, o bien usar cualquiera de los tipos de iconos incluidos (NIIF_INFO, NIIF_WARNING, NIIF_ERROR).

El tamaño de la imagen cargada no debe ser menor que el valor retornado por GetSystemSize().

int balloon_icon_size = CNotifyIcon::GetSystemSize(ICON_LARGE);

Se puede representar la notificación a través de la llamada del método Show().

notify_icon.Balloon.Show("my message","my title",NIIF_USER,ICON_LARGE,3000);

Es posible ocultar la notificación a través del método Hide().

notify_icon.Balloon.Hide();

Los valores pequeños de los intervalos temporales en el método Show() no son representados por el sistema (retraso mínimo de 10 segundos), por eso, para eliminar este defecto, en el programa MQL deberemos iniciar el temporizador y llamar forzosamente el método Hide(). Este algoritmo se ha implementado dentro de la función DoTimer().

void OnTimer()
  {
   notify_icon.DoTimer();
  }


Ayuda emergente (ToolTip)

La ayuda se muestra al colocar el cursor del ratón sobre un icono. Además, el texto de la ayuda puede contener varias líneas con el separador "\n".

notify_icon.ToolTip("My Indicator\nShow the ToolTip");

Como cierre, mostraremos un ejemplo del funcionamiento de la biblioteca con el indicador. El color del icono representa las indicaciones de iSAR. El color azul indica movimiento hacia arriba, el color rojo, hacia abajo. Las notificaciones se muestran al cambiar la dirección.

//+------------------------------------------------------------------+
//|                                    NotifyIcon_Test_Indicator.mq5 |
//+------------------------------------------------------------------+
#property copyright "avoitenko"
#property link      "https://www.mql5.com/en/users/avoitenko"
#property version   "1.00"

#property indicator_chart_window

#property indicator_buffers 2
#property indicator_plots 1

#property indicator_type1  DRAW_COLOR_ARROW
#property indicator_color1 clrDodgerBlue,clrOrangeRed
#property indicator_width1 2
#property indicator_style1 STYLE_SOLID
#property indicator_label1 "SAR"

#define BALLOON_TITLE "Parabolic SAR Event"

#include <NotifyIcon.mqh>

//--- input parameters
input uint   InpUniqueID = 1;   // Unique ID
input double InpSarStep  = 0.02;// SAR Step
input double InpSarMax   = 0.2; // SAR Maximum

//---
double SarBuffer[];
double ColorBuffer[];

//---
int sar_handle;
datetime time_alert;
CNotifyIcon notify_icon(InpUniqueID);
//+------------------------------------------------------------------+
int OnInit()
  {
//--- get SAR handle   
   sar_handle=iSAR(NULL,0,InpSarStep,InpSarMax);
   if(sar_handle==INVALID_HANDLE)
      return(INIT_FAILED);

//--- use buffers
   SetIndexBuffer(0,SarBuffer);
   SetIndexBuffer(1,ColorBuffer,INDICATOR_COLOR_INDEX);
   ArraySetAsSeries(SarBuffer,true);
   ArraySetAsSeries(ColorBuffer,true);

//--- set arrow code
   PlotIndexSetInteger(0,PLOT_ARROW,159);

   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);

//--- set tooltip
   notify_icon.ToolTip("Indicator ID#"+IntegerToString(InpUniqueID)+"\nParabolic SAR");

//--- load 64x64 large icon
   bool res=notify_icon.Balloon.Icon_Large.LoadFromBase64("Qk02QAAAAAAAADYAAAAoAAAAQAAAAEAAAAABACAAAAAAAABAAADDDgAAww4AAAAAAAAAAAAA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Qv///1i3zdPjZaa4/1mgsf98p7X/u8zS/////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD8/P1V8fX2hNbg48dql6X/VsXZ/4Xj9P+i5vX/jtbn/16ww/9LjqH/k7K7/9rj5uP///+E////Hf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8AzNjdMqi9xeMvXnL/Pp63/7H5///Y9f//0PP9/9X4///W+v//tO/8/3nG2P9Nl6v/aJmn/7rL0f/09/g7////NP///wz///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wDy9fYd0d3gFrzN0o5Bb4D/DVNr/4Pa6v/Z+f//wuv4/8Hs+P/B7fj/wu75/830/v/S+///xPf//5jb7f9Qpb3/SImc/4mrtf/a4+bj////Tv///xf///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AO/z9GeNq7T/DUVb/xVqhf+x+P//0fD7/7rr+P+87Pj/vO34/73t+P++7fj/vuv5/8bv+//R+P//yfn//6Ho+P9pvNL/Oo2j/2KTof+xxczj8fT1WP///0v///8M////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTnuM/wxEXP8abIT/tfj//8zv+v+26/j/uez5/7rs+P+77Pj/vOv4/73s+f+97fn/v+35/7zs+f/B8f3/xfj//7Hw/v+E0+f/T6S5/0qLnv+HqLT/1uDjl////3H///87////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUZ3iv8JQ1z/GmyE/7P3///H7vr/suv4/7Xr+P+36vj/uOv4/7nr+f+77fn/vOz5/7/s+f+57Pj/tOr3/7br9/+67Pn/w/P+/770//+d4vP/aLzR/zuNpP9ikqD/pr3F/+7x8zX///8w////GP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FPfpH/B0Nc/xpuiP+x9v//we35/67q9/+y6ff/s+r4/7Xq9/+36/f/uez4/7rr+P+97Pn/uuz4/7Pq+P+06vf/ter3/7Pr9/+26/j/v/D9/8X4//+w8v//gdLm/0uguP87gpb/eJyn/8bT2P////9O////If///wL///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTn6R/wdGX/8ccY3/r/X//77t+f+r6ff/sOn4/7Hq+P+z6vf/tuv3/7jr+P+66/j/ve34/7vt+P+z6vj/tOr4/7Xr+P+16/j/tev4/7Tq+P+y6vf/uez5/8H1//+79v//leL0/1+4zv8yhJz/TIOT/6K4wP/q7/Fh////cf///yb///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cU18kf8HRmH/HXKP/671//+77Pj/qOj2/63o9/+w6Pj/sur4/7Xr9/+47Pj/uuz4/77t+P+97fn/suv3/7Xs9/+27Pj/tuv4/7Xr+P+16/j/tev4/7Tr+P+z6vf/s+r3/7vw/f+89v//p+7//3fM4f9Am7H/MHiM/2+Uof/H1Nnj////U////yD///8B////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FNe5H/BUVh/x9yjv+v9v//uOr4/6bn9/+r5/f/run3/7Lq+P+06vf/t+v4/7rs+P/D8///yfn//7rz//+47fn/t+r4/7fr+P+36/j/tuz4/7bs+P+16/j/tOv4/7Lq+P+v6ff/run3/7Ps+f+48///sfT//43f8/9UsMb/JXyS/0d+j/+iuL//6+/xsf///xz///8C////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTXyR/wZHYf8gdI//rfX//7Tq+f+n5/f/qef3/6zp9/+w6fj/tOr3/7fs+P+87/v/st7o/7HY4v+36vX/xf///8n///+98P7/uuv5/7rs+P+47Pj/t+z4/7br+P+06/j/sOr3/67p9/+s6ff/quj3/6rn9/+v7Pv/sfP//5zr/P9rxt3/M4+q/zB0if91maT/093h4////0////8J////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cU1/kv8GSWL/IXmR/6v1//+w6fn/oeb2/6jn9/+r6Pf/r+n4/7Pr+P+17Pf/1P///3mFh/8QDAz/Ly8w/1ZkZ/+UuL7/y////8j8//+87fn/vO35/7vt+P+57Pj/tuz4/7Pq+P+w6vf/run3/6vp9/+p6Pf/pef2/6Tn9v+n6Pf/rvH//6Tx//+C3PD/SarA/yF2jf9QgpL/p7zE4/b4+Tv///8R////Av///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FNfZP/Bklk/yR1kv+q9f//q+r4/57m9v+m5vb/qej2/67p9/+z6/j/tOr3/9n///+7v8H/Ew8O/yglJP8dGBf/GhUU/0dRVP+w2d//0v///7/u+f+97vn/u+35/7nt+f+26/j/suv4/7Dq9/+t6ff/qen3/6fo9/+j5vb/oOb1/57l9f+f5fb/puv8/6bz//+P5v3/X8Pa/yqIof80d4v/lrC4/+Dn6uP///9D////Bv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTX2T/wZIZP8ldZP/qvX//6fp+P+b5fb/o+b2/6no9v+u6ff/s+v4/7fs9//H9///4u/z/ygmJv8cHBz/MDAw/y4uLP8cFhb/Jycm/6TJz//U////wfD5/7/u+f+87vn/uO34/7Xs+P+y6/j/rur3/6rp9/+n6Pf/pOf3/6Hm9f+d5fb/m+X1/5jj9f+W4/X/m+b3/5/t//+U7P//b9Pq/zWas/9nkZ7/o7e/qsXT2Anw9PVM////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cU19k/8GSGT/JnaT/6n1//+i6Pf/m+T2/6Hn9v+n5/b/ren3/7Lr+P+47ff/vfD7//L///9TT0//AAAA/wwMDP8kJCT/LzEx/yEfH/8hHh//o8bO/9H////C8Pn/v/D5/7vu+P+37fj/tO34/7Dr9/+s6vf/qOn3/6Xo9/+i5/b/nub1/5vl9f+Y5PX/lOP1/5Lh9P+Q4fT/kuL1/5bo+/+V7///TK3F/4eos/+9zNIr3+fpTP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FNfZL/Bkhj/yd2kv+p9///n+j3/5bl9v+f5/b/puf2/6vp9/+y6/j/uO34/7ru+P/V+v//1uHh/7KurP94eXn/FhUV/x0dHf8wMTH/Hxoa/zI3Nf/J8vr/zPv//8Lw+f+/7vn/uu/4/7ft+P+z7Pj/r+v3/6rq9/+m6Pf/ouf3/57m9v+b5vX/l+X1/5Ti9f+R4fT/juH1/4zg9P+J3/P/jOL1/43m/P91t8j/////qv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTH2S/wVHY/8odpH/q/f//5zn9/+X5Pb/neb2/6Tn9v+p6Pb/sOr4/7ft+P+97vj/we/5/9X9///q/////f///87Pzv8mIyP/ICAg/zIyMv8WEBD/Znd5/97////E8fr/wvD5/73v+P+67vj/te34/7Hs+P+s6vf/qOn3/6Tp9v+f5/b/m+X1/5jl9f+U4/X/keL0/43h9P+L4PP/iN/z/4Xe8/+I4fj/b9Dm/+bx9Mf///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUx9k/8FR2P/KHeS/6r1//+Z5/f/lOT2/5vl9v+i5/b/qej2/7Dq+P+27Pj/vO74/8Lv+f/H8fr/yPL6/8Tz/P/9////sLGy/w8ODv8tLi7/KScm/xwaGv+52t3/1f///8bx+v/C8Pn/vvD5/7nu+f+17fn/r+z3/6rq9/+l6ff/oOj2/53m9f+X5vX/lOP1/5Di9P+M4fT/ieHz/4bf8/+D3vP/gd70/3DU7P/D6PL/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FMf5L/BEZj/yh1kf+q9///l+f3/5Lk9v+a5ff/oOf2/6jn9/+v6vj/tu34/7zu+P/D7/n/yPL6/9Hz+//I8vr/zvn///z///9IRET/Ghoa/zAxMf8WEBD/bX1//+H////K8/v/xfL6/8Lw+f+87/j/t+75/7Ps+P+t6/f/p+r3/6Po9/+e5vX/mOX1/5Tj9P+Q4vT/jOH0/4jf8/+F3/P/gN3z/37e8v9w1+//l9Xk/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xTH6S/wRGY/8pdZL/q/b//5Pm9v+R4/X/mOb2/6Dn9v+n6Pb/rur3/7bt+f+87vj/wu/5/8jx+v/O9Pv/zvT7/8Xw+//2////oaOj/xAQEP8xMjL/Ix8f/y0uMP/Q9Pv/0/v//8jy+v/E8vn/wPD5/7rv+f+27fj/r+z3/6rq9/+l6ff/n+f2/5rm9f+V4/X/kOL0/4vh9P+I4PP/hN7z/4Dd8/983PL/cNjw/43V5v/+/v44////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUt/kv8DR2P/KXiS/6v1//+R5/f/kOP1/5fl9v+e5/f/p+n3/67r+P+17Pn/u+75/8Hw+f/J8vr/zvP7/9L0+//J8/r/3v///+Pp6f8lJCT/Jicn/y4uLv8RDg3/nbO0/+T////L8/r/yPP6/8Px+v++8Pr/ue75/7Pt+P+s6/f/p+n3/6Ho9v+b5vb/luX1/5Hi9P+M4fT/h9/z/4Le8/9/3fL/e9zy/23Y8f+K1uj//v7+OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FLfZL/A0dj/yl4kf+q9f//kOf3/4/j9f+X5vb/nuf3/6bp9v+t6vf/tez4/7vu+f/C8Pn/yfL6/8/0+v/T9Pv/z/T6/9L4///8////UE5P/xwcHP8xMTH/Dw0L/2t4ev/o////0fb8/8z0+v/G8/r/wfH6/7zv+f+17fj/r+z4/6nr+f+i6ff/nef2/5fl9f+S4/X/jOL1/4fg9P+D3vT/fd3z/3nb8v9s1/D/i9bo//7+/jj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xS3yS/wNGY/8qd5L/q/f//4zl9/+N5PX/leX1/53n9/+l6fb/rev3/7Tt+P+77vj/wfD5/8ny+v/P9Pv/1fX8/9L1+//Q9v3/+P///46Mjf8UFBT/MDEx/xwbGv84PD3/4////9f8///P9fv/yvT7/8Xz+/+/8fr/uO/5/7Lu+f+r7Pj/per3/5/o9/+Y5vb/k+X1/43j9f+H4fT/gt/z/37e8/953PP/adjy/4nX6P/+/v44////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp8kv8CRmL/KneS/6z3//+L5ff/jOT1/5Xm9v+d5/b/pOn3/63r+P+07fn/uu75/8Lw+v/I8/r/zvX7/9b2/P/X9vz/zvb8//P///+6ubn/FxcX/y8vL/8mJCT/Gxka/8fh5P/j////0/f8/871/P/J9Pz/w/L7/7zx+f+17/n/r+35/6jq+P+h6ff/muf2/5Tl9f+O4vX/iOD0/4Le9P993vP/d9zz/2jY8f+H1uj//v7+OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKfJH/AUdi/yp2kv+t9///iub3/4vk9f+V5vb/nOf2/6To9/+s6/j/s+35/7vu+f/C8Pn/yfL6/8/1+//W9fz/2vf8/9P2/P/n////3eHh/ywrK/8nKCj/LS0t/xMPD/+luLv/7f///9X2/P/S9fz/zPX8/8bz+//A8fr/uPD5/7Lu+f+q6/j/o+n3/5vn9v+V5fX/j+L1/4jg9P+D3vT/fd3z/3fb8/9n1/H/htbo/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSn6R/wFGYP8rd5D/rPf//4rl9/+L4/X/k+b1/5zn9v+l6Pb/rOv3/7Tu+P+77/j/wvH5/8nz+v/P9fv/1vf8/934/f/Z9/z/3fv///n///8/PT3/ISEh/zAyMv8KBwf/e4iJ//X////Z+Pz/1fb8/9D2+//J9Pv/xPL6/7zx+v+07/n/rO34/6Xq+P+e5/f/luX1/5Dk9f+J4fT/gt7z/3vd8/922/L/Zdfx/4XV5v////84////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp7kf8BRGH/K3WR/634//+I5vf/h+P1/5Ll9f+c6Pb/puj2/63r+P+z7fn/u+/5/8Hw+f/J8/r/0fX8/9f3/P/e+P3/3vn9/9n5/f//////bGlp/xwcHP8xMjL/FhQS/1JYWf/t////3/r+/9j4/P/T+Pz/zfb7/8bz+/+/8vr/t+/5/6/s+P+o6vf/n+j3/5jm9v+Q5fX/iuP0/4Pg8/973fP/dNzy/2TX8P+E0+T/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKe5H/AURh/yx3kf+u+P//iOf3/4rk9f+U5fX/nej2/6Xp9/+t6/j/tO35/7zv+f/C8fn/yvP6/9H1/P/Y9/z/3/n9/+P6/f/c+v3//P///52gn/8WFhb/MDAw/yEhIf8sLi//5v3+/+b////b+P3/1vj8/9D2/P/K9Pv/wvP7/7vw+f+y7fj/quv3/6Hp9/+a5/b/k+X1/4vi9P+D4PP/fN7z/3Tb8v9j1/L/gtDi/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSnyS/wFGYv8rdpL/r/j//4rn9/+L5PX/leb2/57o9v+m6vf/ruv4/7Xu+f+88Pn/w/H6/8vz+v/S9vv/2fj8/+D5/f/o+/7/5f////X////Exsf/FhQU/y0tLf8pKSn/FxUV/8bb3f/t////3vr9/9n4/f/U9vz/zPX7/8Tz+/+98Pn/tO74/6zs+P+k6vf/nOj2/5Tl9v+L4/P/g+Dz/3ve8v9z2/L/Ytfz/4HR4v////84////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp+kf8BRmL/LXiS/7H4//+K5/f/juT2/5bm9v+f5/b/p+r3/6/s+P+17vn/vfD5/8Ty+v/M9Pr/0/b7/9r4/P/h+/7/4/j6/+D29///////8vb1/zIyMv8mJib/LS0t/xMREf+bqav/9f///+D7/f/b+f3/1ff8/871+//H9Pv/v/L6/7bw+f+u7Pf/per3/5zn9v+U5Pb/jOH0/4Lg8/963vL/ctzx/2DX8v+B0eP/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKe5L/AUVj/y14k/+x+P//i+f3/47k9v+W5vb/n+j2/6jq9/+v7Pj/te75/73v+f/E8vr/zPT6/9P2+//a+Pz/6v///97n6P8xMTL/eYOE/93l5v9WV1f/IiIi/y8vL/8RDw//c3x9//j////j/P7/3fn9/9f3/P/Q9fv/yfT7/8Hy+v+48Pn/r+33/6bq9/+e6Pb/leX2/4zj9f+C4PP/et7y/3Hc8f9g1/H/gtLk/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSn6S/wFGYv8teZP/svj//4vn9/+O5fb/mOb2/6Do9v+o6ff/sOv4/7fu+f+97/n/xPL6/8z0+//T9fr/2fj8/+b////7/v7/Kykp/woIB/8sLCz/MjMz/y4uLv8wMDD/GhkZ/05TVP/s////5f3//975/f/Z+Pz/0/b7/8v1+//D8/r/u/D5/7Pt+f+p6vf/oOn2/5fl9v+N5PT/g+Hz/3re8/9x3PL/X9fy/4PU5f////84////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp8kv8BR2P/LXqT/7H4//+K5/j/jeX2/5fm9v+f6Pb/qOr3/6/s+P+27/n/vPD5/8Px+v/L8/v/0vX7/9n3/P/j+////P///01MTP8dHR3/Kysr/ysrK/8uLi7/Li4u/ycnJv8uLzD/4fr9//n////p////3Pn9/9T3+//N9fr/xfP6/73w+f+17vn/q+z3/6Lp9v+Z5fb/j+P1/4Tg9P973vP/ct3y/1/X8f+D1uf/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKfJL/AUdi/y15k/+x+P//iuf4/4zl9v+W5vb/n+f2/6fp9/+u7Pj/tu/5/7vw+f/D8fr/yvP7/9H1+//Z9/z/4fv+//////9XVlb/AAAA/xgYGP8nJyf/Li4u/y4uLv8tLS7/IyMj/0RHR/+ToaP/0uvs/+/////k////z/X7/8fz+v++8fn/tu74/6zs+P+j6ff/mub3/4/j9f+F4fX/fN/z/3Ld8v9f1/H/g9bn/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSnyT/wFGZP8teZb/sfj//4nm9/+M5Pb/lub2/57n9v+m6ff/ruv4/7Xt+f+67/n/wPH6/8nz+v/Q9Pv/1/f7/935/P/x////5+fn/4WEhP8yMjL/DQ0N/yEhIf8vLy//Li4u/y4uLv8kIyP/GhcX/ysqK/9dZWf/qcHE/9j+///I8/v/v/H5/7fu+f+u7Pn/pen3/5vn9v+Q5PX/huH0/3ze9P9y3PL/X9jx/4TW5/////84////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp9kf8BSGf/LX2Y/7H3//+I5vf/i+T1/5Pm9v+c5/b/pOn2/6zq9/+z7fn/ue/5/7/w+f/H8/r/zvT7/9X3+//d+Pz/4Pn8//X//////////////7y8vP8zMzP/JCQk/y4uLv8uLi7/LC4u/y8vL/8pKCj/ExEP/xUSE//Q9Pn/zvj//8Dw+f+47vn/ruz4/6Xp9/+b5/b/kOP1/4Xh9P973vT/dNzy/1/Y8f+E1uj/////Qv///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKfpX/AUlo/y1+mf+w+f//h+b3/4jk9f+R5vb/mef3/6Ho9v+q6/f/sez4/7bu+f+97/n/w/H6/8vz+v/T9vv/2/f8/+D4/P/l+v3/5/v9//b/////////dnl5/xYUFP8wMDD/LS0t/yUlJf8PDw//HRwc/yMiIv8hIB//vNvg/9P9///B8fr/ue/4/6/s+P+l6ff/m+b2/4/j9f+F4vT/e9/0/3Hc8v9e2PD/gNXo/////3L///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSn+W/wFLav8tf5n/sPf//4Pm9/+F4/X/j+X2/5fm9v+e5/f/p+r2/6/s+P+07fj/u+/5/8Lx+f/I8/r/0PX7/9f2/P/e9/z/4/r9/+j7/f/r/P7//////5+io/8WFRX/Ly8v/ykpKf8oKSn/bm9u/yYmJv8CAAD/AAAA/6S+w//Y////wvH6/7ru+f+w6/j/pur3/5rn9v+P5PT/hOH0/3ne8/9w3PP/Xdfw/3zV5/////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUp/lP8BTW3/LYGc/6/3//9/5vf/g+P1/4zl9f+T5vb/nOj2/6Tq9/+s7Pf/s+z4/7jv+f+/8Pn/xvP6/830+//V9fz/2/f8/+H5/P/n+v3/6/v9///////U1tX/FhYW/ysrK/8pKSn/FBQU/9Le3//9////nqGh/zY0M/+Jn6P/2f///8Lv+f+67/n/sOz4/6Xp9/+Z5vb/j+P1/4Th8/953vP/b9zy/1vX8P971ef/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FKgZb/AVBx/y2Dnv+u9///fOX2/4Dj9f+K5PX/keX2/5jn9/+g6ff/p+v3/7Dr9/+27fn/vO/5/8Px+v/K8/v/0vX7/9j2+//f+Pz/5Pr9/+n7/f/1////9/n6/zc3N/8jIyP/Ly8v/xMREf99jZD/9f////b////r////zu/0/833/f/C8fn/uu75/6/r+P+j6fb/meb2/43j9f+D4fT/eN7z/23c8/9a1/H/e9Xn/////3H///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xSoKX/wFSdf8thaP/rff//3rl9v984vX/heT2/43l9f+T5vb/m+j3/6Tq9/+r6/f/s+z4/7rt+f/A8Pn/x/L7/870+//V9fv/3Pf8/+L5/f/n+v3/6/3+//////9vbW3/ERER/zI0NP8YFBT/Ulla/+7////Q9fz/1fj//9X5/f/J8vr/wfD6/7ju+P+t6/j/oun3/5fm9v+L4/b/gOD0/3be8/9s3PP/Wdfw/3vU6f////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cUqCmf8BVHr/Loim/6z3//925Pb/eeL1/4Hj9v+I5PX/j+b1/5fm9v+f6ff/pur3/67r9/+27fj/ve/5/8Tx+v/L8/r/0vT7/9j3+//e+Pz/5Pn9/+b6/f//////u729/w8PD/8uLi7/JCIi/yosLf/P7fD/2////9D0+//P9Pr/yPL6/7/w+v+27fj/q+r4/6Do9/+V5vb/ieT1/3/h8/903vP/advy/1fX8P961Oj/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///3FLhZz/AVh+/y6Kqv+r+P//ceT2/3Xh9P9+4vX/hOT2/4zl9v+S5vb/mej2/6Dp9/+p6vf/sOz4/7ju+f+/8Pr/x/L6/83z+v/U9Pv/2/f8/+H4/P/l+f3/8v////3+/v86Ojr/HR0d/y8uLv8UEA7/lquv/+X////O9Pv/zPP6/8bx+v+88Pn/s+z4/6jr9/+e6Pf/kub2/4fj9f984PP/cd3z/2bb8v9V1/H/edTp/////3H///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9xT4mg/wBagf8uj67/rPf//23j9v9x4PT/eeL0/4Hj9f+H5fX/juX1/5Xm9v+c6Pb/o+r3/6rr9/+y7fn/u+/5/8Lw+f/K8vr/0fP7/9f2+//d9/z/4/n8/+X5/f//////l5aV/woKCv8wMDD/Hxsb/z5ERf/a////1Pr//8jw+v/C8fr/uu75/7Dt+P+m6vf/nOj2/5Dl9f+E4vT/ed/z/2/c8v9l2/L/UNbw/3vV6f////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cV2Uq/8CYIf/KImq/674//9q4fb/bOD0/3bi9P984/X/guT1/4nl9v+Q5vX/l+j2/57p9v+k6vf/rOz4/7Tu+f+97/n/xfH5/83z+v/U9fv/2vb7/+D4/P/k+fz/8/////f5+v8zMTL/HR0d/zAwMP8VERH/gJWY/+X////K+P//ve75/7bt+P+u7Pj/o+n3/5jn9v+N5fX/guL0/3ff8/9t3fL/Y9vy/1HW8f941en/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP7+/nFpnLH/EGuQ/xd4nv+v9v7/cuT3/2Xf9P9w4fX/d+P0/37j9f+E5PX/i+X2/5Hm9v+X6Pb/n+n3/6bq+P+u7fn/tu75/77v+f/G8vr/zvP6/9T1+//b9vz/4fj8/+P5/f//////u7u6/w0NDf8pKSr/Kiop/x8cG/+En6L/z////83///++/v//qev4/6Dp9/+V5/b/iuP2/3/i9P903/T/atzz/2DZ8v9N1PH/ddXo/////3H///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD9/v5xfKm7/yZ7nv8Jc53/kuPw/5Hu/f9a3PP/bOD0/3Lh9P944vT/f+P0/4Tl9f+L5fX/kub2/5no9/+f6ff/qOr4/6/t+P+27fj/v/D6/8fy+v/O8/r/1fX7/9v2/P/g+Pz/5/3///////90dHT/BgYG/y8vL/8qKSj/GxcX/0lTV/93lZr/jby//6vz//+c6Pj/keX1/4fj9f984PP/cd3z/2fb8v9c2fH/SdXw/3bW6f////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////VavH0v87iKb/C3Ca/1Gwy/+6////YN70/2Pg9P9t4PT/c+H0/3rj9P+A5PX/huT1/4zm9v+T6Pf/men3/6Hq9/+o6/j/sO34/7jv+f/A8fr/yPL6/8/0+//V9vv/2/f8/+D4/P/w/////////0pKSv8DAgL/Kysr/y4uLv8mIiH/EQgH/yEgI/+f5fT/nO/+/4zl9f+C4/X/d+Dz/23e8/9k2/L/Wdnx/0fW8P931un/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///znO3eT/Vpew/yyEpv8NeaL/oOfz/5/z/v9V3PH/Y+D0/2/h9P904vX/e+P1/4Hj9f+G5Pb/jeb2/5Po9v+Z6ff/oer4/6js+P+w7fn/uPD5/7/x+v/H8vr/zvT6/9T1+//Z9vz/2/f8//P////6////WlhY/wICAv8dHR3/Li4u/y0uLv8WDg7/fbjE/5v2//+H5PX/fuL1/3Pf9P9p3PL/YNry/1bY8f9F1u//d9fq/////3H///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A9/n6qninvP9Fkq7/EnWe/yaRtf+9+v//nvP+/13e8v9c3fT/aeH0/3Pi9P974/X/geT2/4fl9v+O5/b/k+j2/5rp9v+i6vj/qez5/7Du+f+37/n/v/H6/8by+v/N9Pv/0/b7/9j2/P/Y9/z/8P////////+NjY3/FBMT/wIAAP8VFhb/DAMB/0lrcf+X+///geT2/3jh9f9u3vT/ZNzz/1za8v9R2PH/Qtbw/3fX6v////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///1W809z/VJSt/zWJq/8DbZv/Lpe2/7Xw+//J////nvH+/3rn9/9q4PP/ad/0/3bj9f9/5Pb/huX2/43o9v+U6Pb/m+n3/6Lr+P+p7fj/r+75/7fv+v++8Pr/xfL6/8v1+//Q9fv/1PX8/9b3+//i/P///////9bd3f93eHj/KiMi/wwDAP8hLS7/huj6/3zl+/9x3/T/aN7z/1/b8/9W2fL/Tdfx/z/V8P941+v/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A/f7+qoiwv/9CiKX/IHqh/wBmk/8PeKL/YrXM/6nl7//N+f//yv///672/v+J6fj/duP2/3bi9f9+5vb/i+f2/5Ho9v+a6vf/oez4/6fs+P+u7vn/te/5/7vx+f/C8vr/yPP6/8z0+//R9fv/0/b7/9X3/P/i////1P///9D5+f+51dr/hcXP/3jh9P9z4fX/at7z/2Lc8v9Z2vL/Udjx/0jW8P881O//edvs/////3H///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///x38/f2qlrjH/0KFof8PapH/AF+I/wBchv8BZ5D/JIOl/2qyx/+r4Oz/2f///9j///+6+f//me35/4Lm9v+A5fb/ieX3/5fq+P+e6/j/p+z5/63t+f+z7/n/ufD6/77x+v/C8vr/x/P6/8z1+v/O9Pv/0/X7/7jv+/+G6/7/i/L//4Tw//9y4fX/a9/z/2Pd8/9a2/L/U9nx/0zX8P9E1fD/OtTw/3vc7f////9x////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Hf///47h6+7jkLXE/0iIof8bbYz/Al6D/wBZg/8AV3//AWSL/yN+oP9qs8j/rNvm/93////j////yfz//6fw+/+O6fj/jej4/5Xr+P+i7Pj/qu74/6/v+f+18Pn/uvD6/7/x+v/D8vr/xfP7/8jz+//S9/v/qe35/2nf8v9q3/T/at/0/2Pe8/9c3fP/VNry/03Y8f9H1/D/PtXw/zfU7/9+3O3/////cf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Hfz9/Y74+vuq0ODl/5i5yP9Lhp7/G2mI/wBZff8AVHv/AFN5/wBehP8jeZr/YavB/6vZ4//f////7P///9T+//+y8vv/muv5/5Xp+f+f7fn/qu/5/7Hv+f+28Pr/ufD6/7rx+v+/8vr/wvL6/832+/+e6vf/Xdzz/17d8/9a3PP/U9vy/03Z8f9H1/H/Qdbx/znU8P810+//f9zt/////17///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///zn+/v6O9fj5qtvm6uOdu8n/SIOb/xhmhf8BVnj/AFF2/wBTef8AWIL/Inqc/16kvf+t2eT/4Pv9//L////b////ufT//6Pt+f+c6/n/pu75/67v+f+y8Pr/tvD6/7fx+v+68fr/x/P6/47n9v9L2vL/Tdry/0zZ8f9H2fH/Qtbx/z3V8f8y0/D/NNPv/4Pd7v////9L////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8d////cvf5+qrj7O/joL3J/0eCmf8YZIT/BVl7/wBSd/8AVnv/AFuC/yN8nP9cobj/qNnk/933+f/t////3P///7v0//+p8Pr/ouz6/6fu+v+s7/n/sO/6/7Lw+v+98vr/gub2/0LY8v9A2PH/Qdfw/zzV8P831PD/L9Lw/zXT8P+I3+7/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////Hf///3L+/v6q7vP1x63G0f9VjaD/IGqG/wdZfP8AWHr/AFh9/wReg/8ie5r/WaC2/5vQ3v/W9vr/5v///9v///+/9///qPH6/6Hs+f+g7vn/qe/6/7Tx+f+A5fb/O9fx/zXW8P841fD/NdXw/y7T8P841PD/jODv/////zj///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///9y/v7+qufu8ce4zdb/V42h/yNrh/8LXn//AVl7/wBXff8JYYb/G3KT/1Sguf+Px9j/zfb6/+P////b////wPn//6fw+v+d7fj/o+34/33m9v832vL/LdXx/zbV8P8t1O//Qdjw/4zf7v////84////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////cv7+/qrq8PPHtMzT/2iYqv8haIf/B1p9/wNafv8AV3z/B2CF/xhvkv9GmrP/h8PU/8Px+P/d////1////775//+v8fr/g+j3/zbZ8P8i1PD/KNXx/2Pf8/+w6fT/////OP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///z/+/v5x9vn6hNDe5P99p7f/KG2J/whae/8BV3r/AVp8/wBdgv8ScJP/N46s/3y/0f+16vL/2P///97///+2+f//Zub3/2bo+v9z3u7/9fz9x////xD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8s////Xvr7/Jfc5+vjlLXE/zp6lP8YZYP/B1p9/wNZf/8CWYD/DWuQ/y6Fpf9yvc//r9/p/7zy+v+c4e3/6fj84////zL///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////E////279/f5Y7vP1WMTW3v+ErL3/U42k/0CDnP8yepf/KHGR/yNwkP9jnLD//P39Zf///xb///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AA==");
   if(!res)
      Print("Error: ",notify_icon.GetLastError());

//--- show icon
   notify_icon.Show();

//--- run timer
   EventSetMillisecondTimer(500);

//--- done
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnTimer()
  {
   notify_icon.DoTimer();
  }
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   ArraySetAsSeries(close,true);
   ArraySetAsSeries(time,true);

//--- few bars for calculation
   if(rates_total<50)
      return (0);

   int limit;
   if(prev_calculated==0)
     {
      //--- first calc
      limit=rates_total-2;
      ArrayInitialize(SarBuffer,EMPTY_VALUE);
      time_alert=time[0];
      notify_icon.Balloon.Show("SAR started on "+_Symbol+" "+TimeframeToString()+".",BALLOON_TITLE,NIIF_USER,ICON_LARGE,2500);
     }
   else
     {
      //--- regular calc
      limit=rates_total-prev_calculated;
     }

//--- get SAR values
   if(CopyBuffer(sar_handle,0,0,limit+1,SarBuffer)!=limit+1)
      return(0);

//--- main cycle
   for(int i=limit; i>=0 && !_StopFlag; i--)
     {
      if(close[i]>SarBuffer[i])
         ColorBuffer[i]=0;
      else
         ColorBuffer[i]=1;
     }

//--- set icon
   if(SarBuffer[0]<close[0])
     {
      if(notify_icon.Tag()!=1)
        {
         notify_icon.Tag(1);
         notify_icon.Icon.LoadFromBase64("Qk02EAAAAAAAADYAAAAoAAAAIAAAACAAAAABACAAAAAAAAAQAAASCwAAEgsAAAAAAAAAAAAA////AKCak/+gmpP/nl0U/55dFP+eXRT/nl0U/55dFP+eXhX/nl4V/55eFf+eXhX/nl4V/55eFf+eXhX/nl4V/55eFf+eXhX/nl4V/55dFP+eXRT/nl0U/55fFf+eXxX/nl4V/55eFf+eXhX/nl4V/55eFf+gmpP/oJqT/////wD///8AoJqT/6Cak/+eXRT/nl0U/55dFP+eXRT/nl0U/55eFf+eXhX/nl4V/55eFf+eXhX/nl4V/55eFf+eXhX/nl4V/55eFf+eXhX/nl0U/55dFP+eXRT/nl8V/55fFf+eXhX/nl4V/55eFf+eXhX/nl4V/6Cak/+gmpP/////AP///wCgXxb/oF8W//+HD///hw///4cP///Dh///w4f//8eO///Hjv//2bL//9my///Zsv//6dT//+nU///y5P//8uT//+nU///p1P//2bL//9my///Zsv//x47//8eO///Dh///w4f//4cP//+HD///hw//oF8W/6BfFv8AAAAD////AKBfFv+gXxb//4cP//+HD///hw///8OH///Dh///x47//8eO///Zsv//2bL//9my///p1P//6dT///Lk///y5P//6dT//+nU///Zsv//2bL//9my///Hjv//x47//8OH///Dh///hw///4cP//+HD/+gXxb/oF8W/wAAAAL///8AoF8W/6BfFv//hw///4cP//+HD///w4f//8OH///Hjv//x47//9my///Zsv//2bL//+nU///p1P//8uT///Lk///p1P//6dT//9my///Zsv//2bL//8eO///Hjv//w4f//8OH//+HD///hw///4cP/6BfFv+gXxb/AAAAAv///wCjYhf/o2IX//+HD///hw///4cP/w9XZf8PV2X/AE5i/wBOYv8ATmL/AE5i/wBOYv//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//4cP//+HD///hw//o2IX/6NiF/8AAAAC////AKNiF/+jYhf//4cP//+HD///hw//D1dl/w9XZf8ATmL/AE5i/wBOYv8ATmL/AE5i//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//hw///4cP//+HD/+jYhf/o2IX/wAAAAL///8ApmQX/6ZkF//9hg///YYP//2GD///p03//6dN//+nTf//p03/B1Rm/wdUZv8HVGb//4cP//+HD///p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+HD///hw///4cP/6ZjF/+mYxf/AAAAAv///wCmZBf/pmQX//2GD//9hg///YYP//+nTf//p03//6dN//+nTf8HVGb/B1Rm/wdUZv//hw///4cP//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//4cP//+HD///hw//pmMX/6ZjF/8AAAAC////AKlmGf+pZhn//4cP//+HD///hw///6dN//+nTf//p03//6dN//+HD///hw///4cP/w5MXP8OTFz/+5Yz//uWM///p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//hw///4cP//+HD/+pZhj/qWYY/wAAAAL///8AqWYZ/6lmGf//hw///4cP//+HD///p03//6dN//+nTf//p03//4cP//+HD///hw//Dkxc/w5MXP/7ljP/+5Yz//+nTf//p03//6dN//+nTf//p03//6dN//+nTf//p03//6dN//+HD///hw///4cP/6lmGP+pZhj/AAAAAv///wCsaBr/rGga//+HD///hw///4cP//+0af//tGn//7Rp//+0af//p03//6dN//+nTf8VRlL/FUZS//+nTf//p03//7Rp//+0af//tGn//7Rp//+0af//tGn//7Rp//+0af//tGn//4cP//+HD///hw//rGcZ/6xnGf8AAAAC////AKxoGv+saBr//4cP//+HD///hw///7Rp//+0af//tGn//7Rp//+nTf//p03//6dN/xVGUv8VRlL//6dN//+nTf//tGn//7Rp//+0af//tGn//7Rp//+0af//tGn//7Rp//+0af//hw///4cP//+HD/+sZxn/rGcZ/wAAAAL///8ArGga/6xoGv//hw///4cP//+HD///tGn//7Rp//+0af//tGn//6dN//+nTf//p03/FUZS/xVGUv//p03//6dN//+0af//tGn//7Rp//+0af//tGn//7Rp//+0af//tGn//7Rp//+HD///hw///4cP/6xnGf+sZxn/AAAAAv///wCwaxv/sGsb//+HD///hw///4cP//+0af//tGn//7Rp//+0af/5sGf/+bBn//mwZ/8mV2L/Jldi/7F/TP+xf0z//8OH///Dh///w4f//8OH///Dh///w4f//8OH///Dh///w4f//4cP//+HD///hw//sGsb/7BrG/8AAAAC////ALBrG/+waxv//4cP//+HD///hw///7Rp//+0af//tGn//7Rp//mwZ//5sGf/+bBn/yZXYv8mV2L/sX9M/7F/TP//w4f//8OH///Dh///w4f//8OH///Dh///w4f//8OH///Dh///hw///4cP//+HD/+waxv/sGsb/wAAAAL///8AtG4d/7RuHf//hw///4cP//+HD///w4f//8OH/+62f//utn//QF5i/0BeYv9AXmL/KUlR/ylJUf8qTFT/KkxU/zhbYv84W2L/vpJn/76SZ/++kmf//8OH///Dh///w4f//8OH//+HD///hw///4cP/7RuHf+0bh3/AAAAAv///wC0bh3/tG4d//+HD///hw///4cP///Dh///w4f/7rZ//+62f/9AXmL/QF5i/0BeYv8pSVH/KUlR/ypMVP8qTFT/OFti/zhbYv++kmf/vpJn/76SZ///w4f//8OH///Dh///w4f//4cP//+HD///hw//tG4d/7RuHf8AAAAC////ALdwHv+3cB7//4cP//+HD///hw///9Kl///Spf/7z6P/+8+j/9+3kf/ft5H/37eR/7eXd/+3l3f/L0ZM/y9GTP/Rq4f/0auH//PInf/zyJ3/88id///Spf//0qX//9Kl///Spf//hw///4cP//+HD/+3cB7/t3Ae/wAAAAL///8At3Ae/7dwHv//hw///4cP//+HD///0qX//9Kl//vPo//7z6P/37eR/9+3kf/ft5H/t5d3/7eXd/8vRkz/L0ZM/9Grh//Rq4f/88id//PInf/zyJ3//9Kl///Spf//0qX//9Kl//+HD///hw///4cP/7dwHv+3cB7/AAAAAv///wC3cB7/t3Ae//+HD///hw///4cP///Spf//0qX/+8+j//vPo//ft5H/37eR/9+3kf+3l3f/t5d3/y9GTP8vRkz/0auH/9Grh//zyJ3/88id//PInf//0qX//9Kl///Spf//0qX//4cP//+HD///hw//t3Ae/7dwHv8AAAAC////ALlxH/+5cR///4cP//+HD///hw///+DB///gwf//4MH//+DB///gwf//4MH//+DB//nbvf/5273/Sltf/0pbX/+Ug3L/lINy//PVt//z1bf/89W3/+7Rtf/u0bX/79G1/+/Rtf//hw///4cP//+HD/+5cR//uXEf/wAAAAL///8AuXEf/7lxH///hw///4cP//+HD///4MH//+DB///gwf//4MH//+DB///gwf//4MH/+du9//nbvf9KW1//Sltf/5SDcv+Ug3L/89W3//PVt//z1bf/7tG1/+7Rtf/v0bX/79G1//+HD///hw///4cP/7lxH/+5cR//AAAAAv///wC7ciD/u3Ig//+HD///hw///4cP///t2v//7dr//+3a///t2v//7dr//+3a///t2v//7dr//+3a/9rKu//ayrv/V2Bh/1dgYf9KVFf/SlRX/0pUV/9GUFP/RlBT///t2v//7dr//4cP//+HD///hw//u3Ig/7tyIP8AAAAC////ALtyIP+7ciD//4cP//+HD///hw///+3a///t2v//7dr//+3a///t2v//7dr//+3a///t2v//7dr/2sq7/9rKu/9XYGH/V2Bh/0pUV/9KVFf/SlRX/0ZQU/9GUFP//+3a///t2v//hw///4cP//+HD/+7ciD/u3Ig/wAAAAL///8AvXQh/710If//hw///4cP//+HD///9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw//+HD///hw///4cP/710If+9dCH/AAAAAv///wC9dCH/vXQh//+HD///hw///4cP///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D///fw///38P//9/D//4cP//+HD///hw//vXQh/710If////8A////AL10If+9dCH//4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD/+9dCH/vXQh/////wD///8AvXQh/710If//hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP/710If+9dCH/////AP///wC9dCH/vXQh//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw///4cP//+HD///hw//vXQh/710If////8A////ALu5t/+7ubf/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+7ubf/u7m3/////wD///8Au7m3/7u5t/+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/710If+9dCH/vXQh/7u5t/+7ubf/////AA==");
        }
     }
   else
     {
      if(notify_icon.Tag()!=-1)
        {
         notify_icon.Tag(-1);
         notify_icon.Icon.LoadFromBase64("Qk02EAAAAAAAADYAAAAoAAAAIAAAACAAAAABACAAAAAAAAAQAAASCwAAEgsAAAAAAAAAAAAA////AIyXmv+Ml5r/BSWY/wUlmP8FJZj/BSWY/wUlmP8GJpj/BiaY/wYmmP8GJpj/BiaY/wYmmP8GJpj/BiaY/wYmmP8GJpj/BiaY/wUlmP8FJZj/BSWY/wYlmP8GJZj/BiaY/wYmmP8GJpj/BiaY/wYmmP+Ml5r/jJea/////wD///8AjJea/4yXmv8FJZj/BSWY/wUlmP8FJZj/BSWY/wYmmP8GJpj/BiaY/wYmmP8GJpj/BiaY/wYmmP8GJpj/BiaY/wYmmP8GJpj/BSWY/wUlmP8FJZj/BiWY/wYlmP8GJpj/BiaY/wYmmP8GJpj/BiaY/4yXmv+Ml5r/////AP///wAHJ5r/Byea/wBA//8AQP//AED//4el//+Hpf//h6X//4el//+twf//rcH//63B///R3f//0d3//+Lx///i8f//0d3//9Hd//+twf//rcH//63B//+Hpf//h6X//4el//+Hpf//AED//wBA//8AQP//Byea/wcnmv8AAAAD////AAcnmv8HJ5r/AED//wBA//8AQP//h6X//4el//+Hpf//h6X//63B//+twf//rcH//9Hd///R3f//4vH//+Lx///R3f//0d3//63B//+twf//rcH//4el//+Hpf//h6X//4el//8AQP//AED//wBA//8HJ5r/Byea/wAAAAL///8AByea/wcnmv8AQP//AED//wBA//+Hpf//h6X//4el//+Hpf//rcH//63B//+twf//0d3//9Hd///i8f//4vH//9Hd///R3f//rcH//63B//+twf//h6X//4el//+Hpf//h6X//wBA//8AQP//AED//wcnmv8HJ5r/AAAAAv///wAIKJ3/CCid/wBA//8AQP//AED//wBUcf8AVHH/AE5i/wBOYv8ATmL/AE5i/wBOYv9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/AED//wBA//8AQP//CCid/wgonf8AAAAC////AAgonf8IKJ3/AED//wBA//8AQP//AFRx/wBUcf8ATmL/AE5i/wBOYv8ATmL/AE5i/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f8AQP//AED//wBA//8IKJ3/CCid/wAAAAL///8ACSmg/wkpoP8AP/3/AD/9/wA//f9ehfn/XoX5/16F+f9ehfn/BlRn/wZUZ/8GVGf/D0n3/w9J9/9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/wBA//8AQP//AED//wkqoP8JKqD/AAAAAv///wAJKaD/CSmg/wA//f8AP/3/AD/9/16F+f9ehfn/XoX5/16F+f8GVGf/BlRn/wZUZ/8PSff/D0n3/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/AED//wBA//8AQP//CSqg/wkqoP8AAAAC////AAsspP8LLKT/AED//wBA//8AQP//XoX5/16F+f9ehfn/XoX5/w9J9/8PSff/D0n3/w5MXP8OTFz/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f8AQP//AED//wBA//8KKqT/Ciqk/wAAAAL///8ACyyk/wsspP8AQP//AED//wBA//9ehfn/XoX5/16F+f9ehfn/D0n3/w9J9/8PSff/Dkxc/w5MXP9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/wBA//8AQP//AED//woqpP8KKqT/AAAAAv///wAMLqf/DC6n/wBA//8AQP//AED//16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f8VRlL/FUZS/16F+f9ehfn/gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//AED//wBA//8AQP//Cy2n/wstp/8AAAAC////AAwup/8MLqf/AED//wBA//8AQP//XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/XoX5/xVGUv8VRlL/XoX5/16F+f+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//4Cg//8AQP//AED//wBA//8LLaf/Cy2n/wAAAAL///8ADC6n/wwup/8AQP//AED//wBA//9ehfn/XoX5/16F+f9ehfn/XoX5/16F+f9ehfn/FUZS/xVGUv9ehfn/XoX5/4Cg//+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//wBA//8AQP//AED//wstp/8LLaf/AAAAAv///wANL6v/DS+r/wBA//8AQP//AED//5+3//+ft///n7f//5+3//+ft///n7f//5+3//8lV2P/JVdj/0FbrP9BW6z/n7f//5+3//+ft///n7f//5+3//+ft///n7f//5+3//+ft///AED//wBA//8AQP//DS+r/w0vq/8AAAAC////AA0vq/8NL6v/AED//wBA//8AQP//n7f//5+3//+ft///n7f//5+3//+ft///n7f//yVXY/8lV2P/QVus/0FbrP+ft///n7f//5+3//+ft///n7f//5+3//+ft///n7f//5+3//8AQP//AED//wBA//8NL6v/DS+r/wAAAAL///8ADzGv/w8xr/8AQP//AED//wBA//+AoP//gKD//3eV7f93le3/NVtp/zVbaf81W2n/KUlR/ylJUf8qTFT/KkxU/zNZZf8zWWX/XXW6/111uv9ddbr/gKD//5+3//+ft///n7f//wBA//8AQP//AED//w8xr/8PMa//AAAAAv///wAPMa//DzGv/wBA//8AQP//AED//4Cg//+AoP//d5Xt/3eV7f81W2n/NVtp/zVbaf8pSVH/KUlR/ypMVP8qTFT/M1ll/zNZZf9ddbr/XXW6/111uv+ft///n7f//5+3//+ft///AED//wBA//8AQP//DzGv/w8xr/8AAAAC////ABAzsv8QM7L/AED//wBA//8AQP//n7f//5+3//+dtPv/nbT7/4qf3f+Kn93/ip/d/2+Asv9vgLL/L0ZM/y9GTP+AlM7/gJTO/5eu8v+XrvL/l67y/5+3//+ft///n7f//5+3//8AQP//AED//wBA//8QM7L/EDOy/wAAAAL///8AEDOy/xAzsv8AQP//AED//wBA//+ft///n7f//520+/+dtPv/ip/d/4qf3f+Kn93/b4Cy/2+Asv8vRkz/L0ZM/4CUzv+AlM7/l67y/5eu8v+XrvL/n7f//5+3//+ft///n7f//wBA//8AQP//AED//xAzsv8QM7L/AAAAAv///wAQM7L/EDOy/wBA//8AQP//AED//5+3//+ft///nbT7/520+/+Kn93/ip/d/4qf3f9vgLL/b4Cy/y9GTP8vRkz/gJTO/4CUzv+XrvL/l67y/5eu8v+ft///n7f//5+3//+ft///AED//wBA//8AQP//EDOy/xAzsv8AAAAC////ABE0tf8RNLX/AED//wBA//8AQP//vc7//73O//+9zv//vc7//73O//+9zv//vc7//7nJ+f+5yfn/R1pg/0daYP9pc43/aXON/7PD8v+zw/L/s8Py/7C/7f+wv+3/sMDu/7DA7v8AQP//AED//wBA//8RNLX/ETS1/wAAAAL///8AETS1/xE0tf8AQP//AED//wBA//+9zv//vc7//73O//+9zv//vc7//73O//+9zv//ucn5/7nJ+f9HWmD/R1pg/2lzjf9pc43/s8Py/7PD8v+zw/L/sL/t/7C/7f+wwO7/sMDu/wBA//8AQP//AED//xE0tf8RNLX/AAAAAv///wASNbf/EjW3/wBA//8AQP//AED//9jk///Y5P//2OT//9jk///Y5P//2OT//9jk///Y5P//2OT//7fE2P+3xNj/U19i/1NfYv9KVFf/SlRX/0pUV/9GUFP/RlBT/9jk///Y5P//AED//wBA//8AQP//EjW3/xI1t/8AAAAC////ABI1t/8SNbf/AED//wBA//8AQP//2OT//9jk///Y5P//2OT//9jk///Y5P//2OT//9jk///Y5P//t8TY/7fE2P9TX2L/U19i/0pUV/9KVFf/SlRX/0ZQU/9GUFP/2OT//9jk//8AQP//AED//wBA//8SNbf/EjW3/wAAAAL///8AEze5/xM3uf8AQP//AED//wBA///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//wBA//8AQP//AED//xM3uf8TN7n/AAAAAv///wATN7n/Eze5/wBA//8AQP//AED//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//7/z//+/8///v/P//AED//wBA//8AQP//Eze5/xM3uf////8A////ABM3uf8TN7n/AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8TN7n/Eze5/////wD///8AEze5/xM3uf8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//xM3uf8TN7n/////AP///wATN7n/Eze5/wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//wBA//8AQP//Eze5/xM3uf////8A////ALO2t/+ztrf/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf+ztrf/s7a3/////wD///8As7a3/7O2t/8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/xM3uf8TN7n/Eze5/7O2t/+ztrf/////AA==");
        }
     }

//--- do alert up
   if(close[1]>SarBuffer[1] && 
      close[0]<SarBuffer[0])
     {
      if(time_alert!=time[0])
        {
         time_alert=time[0];
         notify_icon.Balloon.Show("SAR goes DOWN on "+_Symbol+" "+TimeframeToString()+".",BALLOON_TITLE,NIIF_USER,ICON_LARGE,2500);
        }
     }

//--- do alert down
   if(close[1]<SarBuffer[1] && 
      close[0]>SarBuffer[0])
     {
      if(time_alert!=time[0])
        {
         time_alert=time[0];
         notify_icon.Balloon.Show("SAR goes UP on "+_Symbol+" "+TimeframeToString()+".",BALLOON_TITLE,NIIF_USER,ICON_LARGE,2500);
        }
     }

//--- done
   return(rates_total);
  }
//+------------------------------------------------------------------+
string TimeframeToString(ENUM_TIMEFRAMES tf=PERIOD_CURRENT)//Convert timeframe to string
  {
   if(tf==PERIOD_CURRENT)
      tf=_Period;
   return StringSubstr(EnumToString(tf),7);
  }
//+------------------------------------------------------------------+

La biblioteca funciona en el simulador de estrategias. Asimismo, su código es compatible con MQL4. La biblioteca puede ser posteriormente desarrollada añadiendo cierta funcionalidad para la animación del icono. Espero que la comunidad MQL haga su contribución en este aspecto.

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

Momentum YTG Momentum YTG

Indicador Momentum en forma de histograma de color.

Vortex Vortex

Indicador de "Technical Analysis of Stocks & Commodities" (enero, 2010).

Vortex Indicator System Vortex Indicator System

Sistema comercial basado en las señales del indicador Vortex.

Current Next Futures Current Next Futures

Script con tres funciones independientes para determinar el futuro actual del mercado FORTS.