Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 545

 
Ihor Herasko:

Muéstrame cómo consigues ambas cosas. Hasta ahora parece que estamos hablando de lo mismo.

No, los valores son diferentes, lo he comprobado.

Lanzamos esta secuencia de comandos en el gráfico:

void OnStart()
  {
//---
   int chartHandle=ChartGetInteger(0,CHART_WINDOW_HANDLE);
   int idChart = ChartID(); 
   Alert("CHART_WINDOW_HANDLE = ",chartHandle," idChart=",idChart); 

  }

Y lo conseguimos:


 
khorosh:

No, los valores son diferentes, lo he comprobado.

Ahora veo de qué estamos hablando.

chartHandle es un descriptor de la ventana del gráfico asignada al SO. Se puede utilizar para dirigir la ventana desde otros hilos a través de WinAPI.

idChart es un identificador de gráfico interno asignado por el propio terminal. Sólo se puede utilizar para trabajar desde MQL.

 
Ihor Herasko:

Ahora está claro de qué estamos hablando.

ChartHandle es un descriptor de ventana de gráfico asignado por el SO. Se puede utilizar para dirigir la ventana desde otros hilos a través de WinAPI.

idChart es un identificador de gráfico interno asignado por el propio terminal. Sólo se puede utilizar para trabajar desde el MQL.

Lo tengo, ¡gracias!

 
Ihor Herasko:

Ahora está claro de qué estamos hablando.

ChartHandle es un descriptor de ventana de gráfico asignado por el SO. Se puede utilizar para dirigir la ventana desde otros hilos a través de WinAPI.

idChart es un identificador de gráfico interno asignado por el propio terminal. Sólo se puede utilizar desde MQL.

Entonces, si necesitas dirigirte a la ventana de otro terminal abierto, ¿hay que usar chartHandle? ¿Y cómo determinar el ID del gráfico del símbolo especificado a partir del indicador situado en el gráfico de otro símbolo? Por ejemplo, necesito que el indicador situado en el gráfico EURJPY cree un objeto en el gráfico USDJPY. ¿Cómo puedo definir un identificador de gráfico del USDJPY?

 
khorosh:

Esto significa que si quieres referirte a la ventana de otro terminal abierto, debes utilizar chartHandle ? ¿Y cómo determinar el ID del gráfico del símbolo especificado a partir del indicador situado en el gráfico de otro símbolo? Por ejemplo, necesito que el indicador situado en el gráfico EURJPY cree un objeto en el gráfico USDJPY. ¿Cómo puedo definir un identificador de gráfico del USDJPY?

En la ayuda de ChartID() creo que hay un ejemplo de enumeración de todos los gráficos terminales.
 
Artyom Trishkin:
Creo que la ayuda de ChartID() tiene un ejemplo de enumeración de todos los gráficos terminales.

No. Está vacío. Hay un ejemplo en la ayuda de ChartNext. Bien, lo tengo. No hay más preguntas. Gracias.

 
khorosh:

Entonces, si se quiere acceder a la ventana de otro terminal abierto, ¿se debe utilizar chartHandle?

Cuando se trabaja sólo en MQL, chartHandle no es necesario. Esta necesidad puede surgir al conectar una DLL.

 
¿Cómo puedo definir el índice de la ventana en la funciónObjectCreate()?

boolObjectCreate(
longchart_id,// identificador del gráfico
cadenanombre_del_objeto,// nombre del objeto
ENUM_OBJECTtipo_objeto,// tipo de objeto
intsub_window,// índice de la ventana
datetimetime1,// hora del primer punto de empate
dobleprecio1,// precio del primer punto de anclaje
...
datetimetimeN=0,// tiempo N-point binding
doublepriceN=0// precio N-punto de anclaje
);


 
khorosh:
¿Cómo definir el índice de la ventana en la funciónObjectCreate()?




No se define, se fija.

subventana

[in] Número de subventana del gráfico. 0 significa la ventana principal del gráfico. La subventana especificada debe existir, de lo contrario la función devuelve false.

 

WindowFind

WindowsTotal

Razón de la queja: