Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 545

 
Ihor Herasko:

Montre-moi comment tu obtiens les deux. Jusqu'à présent, il semble que nous parlions de la même chose.

Non, les valeurs sont différentes, j'ai vérifié.

On jette ce script sur le tableau :

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

  }

Et on obtient :


 
khorosh:

Non, les valeurs sont différentes, j'ai vérifié.

Je vois maintenant de quoi il s'agit.

chartHandle est un descripteur de la fenêtre graphique attribuée au système d'exploitation. Vous pouvez l'utiliser pour adresser la fenêtre à partir d'autres threads via WinAPI.

idChart est un identifiant de carte interne attribué par le terminal lui-même. Il ne peut être utilisé que pour travailler à partir de MQL.

 
Ihor Herasko:

Il est maintenant clair de quoi nous parlons.

ChartHandle est un descripteur de fenêtre graphique attribué par le système d'exploitation. Vous pouvez l'utiliser pour adresser la fenêtre à partir d'autres threads via WinAPI.

idChart est un identifiant de carte interne attribué par le terminal lui-même. Il ne peut être utilisé que pour travailler à partir du MQL.

Je l'ai, merci !

 
Ihor Herasko:

Il est maintenant clair de quoi nous parlons.

ChartHandle est un descripteur de fenêtre graphique attribué par le système d'exploitation. Vous pouvez l'utiliser pour adresser la fenêtre à partir d'autres threads via WinAPI.

idChart est un identifiant de carte interne attribué par le terminal lui-même. Il ne peut être utilisé qu'à partir de MQL.

Donc, si vous devez vous adresser à la fenêtre d'un autre terminal ouvert, il faut utiliser chartHandle ? Et comment déterminer l'identifiant graphique du symbole spécifié à partir de l'indicateur situé sur le graphique d'un autre symbole ? Par exemple, j'ai besoin de l'indicateur situé sur le graphique EURJPY pour créer un objet sur le graphique USDJPY. Comment puis-je définir un identifiant de graphique USDJPY ?

 
khorosh:

Cela signifie que si vous voulez faire référence à la fenêtre d'un autre terminal ouvert, vous devez utiliser chartHandle ? Et comment déterminer l'ID graphique du symbole spécifié à partir de l'indicateur situé dans le graphique d'un autre symbole ? Par exemple, j'ai besoin de l'indicateur situé sur le graphique EURJPY pour créer un objet sur le graphique USDJPY. Comment puis-je définir un identifiant de graphique USDJPY ?

Dans l'aide ChartID(), je pense qu'il y a un exemple d'énumération de tous les graphiques terminaux.
 
Artyom Trishkin:
Je pense que l'aide de ChartID() contient un exemple d'énumération de tous les graphiques terminaux.

Non. C'est vide. Il y a un exemple dans l'aide de ChartNext. Ok, je l'ai. Pas d'autres questions. Merci.

 
khorosh:

Donc, si vous voulez accéder à la fenêtre d'un autre terminal ouvert, il faut utiliser chartHandle ?

Lorsque vous travaillez uniquement en MQL, chartHandle n'est pas nécessaire. Un tel besoin peut survenir lors de la connexion d'une DLL.

 
Comment spécifier l'index de la fenêtre dans la fonctionObjectCreate()?

boolObjectCreate(
longchart_id,// identifiant du graphique
chaîneobject_name,// nom de l'objet
ENUM_OBJECTobject_type,// type d'objet
intsub_window,// indice de la fenêtre
datetimetime1,// heure du premier point d'ancrage
doubleprice1,// prix du premier point d'ancrage
...
datetimetimeN=0,//liaison du point N du temps
doublepriceN=0// prix N-anchor point
) ;


 
khorosh:
Comment définir l'index de la fenêtre dans la fonctionObjectCreate() ?




Elle n'est pas définie, elle est fixée.

sous_fenêtre

[in] Numéro de la sous-fenêtre du graphique. 0 signifie la fenêtre principale du graphique. La sous-fenêtre spécifiée doit exister, sinon la fonction renvoie false.

 

WindowFind

WindowsTotal