Librerías: Easy Canvas - página 16

 

Saludos, Nikolay.

Mientras utilizaba la librería me encontré con un problema: si se utilizan varios programas con iCanvas en un terminal, después de recargar el terminal las imágenes empiezan a cambiar espontáneamente de una a otra. Al principio busqué las razones en mi código, pero no encontré nada. Entonces uno de mis clientes se dio cuenta accidentalmente de que los nombres de los objetos iCanvas coinciden en diferentes gráficos.

Miré cómo se genera el nombre de objeto para iCanvas y encontré lo siguiente:

Name+=IntegerToString(GetTickCount());

Esta forma de cargar el terminal conduce a los mismos nombres de objeto en diferentes gráficos, si estamos hablando de Asesores Expertos, porque todos los Asesores Expertos en el terminal reciben el mismo valor GetTickCount() al cargar. Los indicadores no tienen este problema.

Para resolver el problema, sugiero este método de generar un nombre de objeto único:

   Name += IntegerToString(ChartID()) + IntegerToString(GetTickCount());

Aquí la unicidad está garantizada por las siguientes consideraciones:

  1. Los indicadores obtienen diferentes valores de GetTickCount() incluso si todos ellos se lanzan en el mismo gráfico. Por lo tanto, este método funciona para ellos.
  2. Los Asesores Expertos obtienen el mismo valor de GetTickCount(), pero como un Asesor Experto sólo puede estar en un gráfico, su objeto es único debido al identificador del gráfico.
 
Ihor Herasko Utilizando la librería me he encontrado con un problema: si en un terminal se utilizan varios programas con iCanvas, después de recargar el terminal las imágenes empiezan a cambiar espontáneamente de una a otra. Al principio busqué las razones en mi código, pero no encontré nada. Entonces uno de mis clientes se dio cuenta por casualidad de que los nombres de los objetos iCanvas coinciden en diferentes gráficos.

Miré cómo se genera el nombre del objeto para iCanvas y encontré lo siguiente:

Esta forma de cargar el terminal conduce a los mismos nombres de objeto en diferentes gráficos, si estamos hablando de Asesores Expertos, porque todos los Asesores Expertos en el terminal reciben el mismo valor GetTickCount() al cargar. Los Indicadores no tienen este problema.

Para resolver el problema, sugiero este método de generar un nombre de objeto único:

Aquí la unicidad está garantizada por las siguientes consideraciones:

  1. Los indicadores obtienen diferentes valores de GetTickCount() aunque se ejecuten todos en el mismo gráfico. Por lo tanto, este método funciona para ellos.
  2. Los Asesores Expertos obtienen el mismo valor de GetTickCount(), pero como un Asesor Experto sólo puede estar en un gráfico, su objeto obtiene unicidad debido al ID del gráfico.

Estoy de acuerdo.
¡Gracias, Igor!
He subido la versión corregida.

Qué raro, pensaba que así se formaba el nombre. :))

 
Última versión 1.49
Archivos adjuntos:
iCanvas.mqh  58 kb
 
versión actualizada a 1.49
acortado el nombre del recurso, porque era demasiado largo.
 

 Nikolai Semko #:
 обновил версию до 1.49
 укоротил имя ресурса, т.к. нарвался на слишком длинное имя

Buenas tardes!
En el archivo iCanvas.mqh (en el enlace a la versión MT5) hay "#property version "1.09"...
¿Dónde puedo descargar la última versión real?
Y sobre la versión para MT4 también una pregunta - en el archivo descargado la versión "#property version "1.47"
- ¿es la última paraMT4? Y si no - ¿dónde puedo descargar laúltima versión real?

Gracias.

 
Maksims Ignatovs #:

Buenas tardes!
En el archivo iCanvas.mqh (en el enlace a la versión MT5) hay "#property version "1.09"...
¿Dónde puedo descargar la última versión real?
Y sobre la versión para MT4 también una pregunta - en el archivo descargado la versión "#property version "1.47"
- ¿es la última paraMT4? Y si no - ¿dónde puedo descargar laúltima versión real?

Gracias.

Saludos!
Debes estar descargando un archivo zip. No lo descargues nunca. Es un error de MQ. Cuando actualizo la versión, el archivo zip no se sobrescribe y no tengo acceso a él.
Haz clic en el propio archivo iCanvas.mqh o cópialo desde el visor.



 
Nikolai Semko #:

Saludos!
Debe estar descargando un archivo zip. No lo descargues nunca. Se trata de un error de MQ. Cuando actualizo la versión, el archivo zip no se sobrescribe y no tengo acceso a él.
Haz clic en el propio archivo iCanvas.mqh o cópialo desde el visor.



Gracias.
 


Gracias por compartirlo.
Llevo tiempo pensando en crear una herramienta de este tipo, y ahora puedo utilizar tu código como base para la mía.

Buen trabajo.
 
Guilherme Mendonca #:


Gracias por compartirlo.
Llevo tiempo pensando en crear una herramienta de este tipo, y ahora puedo utilizar tu código como base para la mía.

Buen trabajo.
Muchas gracias.
 
Última versión 1.53
Archivos adjuntos:
iCanvas.mqh  71 kb