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

 
Nerd Trader #:
Oui en effet autant que 8 pièces, mais le graphique ne montre pas que le prix est de 0 n'a pas d'importance, la ligne s'accroche toujours au curseur (le suit)

N'utilisez pas ObjectDelete car la ligne s'éloigne à chaque fois vers "0".

meilleur
      ObjectSetString(0,"line 1",OBJPROP_NAME,line_name);
      ObjectSetInteger(0,line_name,OBJPROP_COLOR,clrRed);
 
MakarFX #:

N'utilisez pas ObjectDelete car la ligne s'éloigne à chaque fois vers "0".

meilleur
J'ai l'option de renommage et oui cela fonctionne. Dans le cas de ObjectDelete(), pourquoi les lignes vertes et rouges sont-elles créées en une seule instance et ne clignotent-elles pas ? Et la ligne jaune (Stop Loss) si elle est déjà là est pourquoi elle prolifère infiniment quand elle est en dessous de Bid ?
 

0 signifie faux. Tout ce qui est différent de 0 estvrai. Mais quelqu'un a-t-il pensé à la lisibilité d'un tel code, où toutes sortes de conditions sont mélangées ?

if(!ObjectFind("Buy Stop"))

Il ne s'agit pas d'une valeur booléenne. Mais on peut facilement le transformer en booléen :

bool objectExist(const long _chartID, const string _name) { return(ObjectFind(_chartID, _name) >= 0); } // чётко определим условие существования объекта!
if (!objectExist(0, "Buy stop"))
  Print("Error! Object not found.")

L'essentiel est donc d'avoir une bonne approche de l'écriture du code. Alors vousn'aurez jamais de tels problèmes.

 
Nerd Trader #:
J'ai l'option de renommage et oui cela fonctionne. Dans le cas de ObjectDelete() pourquoi les lignes vertes et rouges sont créées en une seule instance et ne clignotent pas ? Et la ligne jaune, si elle en a déjà une, pourquoi se multiplie-t-elle à l'infini ?

Ces lignes sont sous votre contrôle.

if(id==CHARTEVENT_OBJECT_CLICK){

Et les lignes qui clignotent réagissent à tout événement OnChartEvent, car

if(ObjectGetInteger(0,"Button Stop Order",OBJPROP_STATE))
 
Mihail Matkovskij #:

0 signifie faux. Tout ce qui est différent de 0 estvrai. Mais quelqu'un a-t-il pensé à la lisibilité d'un tel code, où toutes sortes de conditions sont mélangées ?

Il ne s'agit pas d'une valeur booléenne. Mais on peut facilement le transformer en booléen :

L'essentiel est donc d'avoir une bonne approche de l'écriture du code. Alors vousn'aurez jamais de tels problèmes.

return(ObjectFind(_chartID, _name) >= 0)

Et si l'objet est "0" dans la fenêtre principale, il retournera false ?

 
MakarFX #:

Et les lignes qui clignotent réagissent à tout OnChartEvent, car.

Je lui ai dit : bouton enfoncé - création de la ligne, bouton relâché - suppression (idem pour les autres types d'objets pouvant être liés). Mais il a dit : ce n'est rien, je ferai tout "normalement". :)

 
Nerd Trader #:

Et si l'objet est "0" dans la fenêtre principale, il retournera false ?

C'est ce qui peut vaincre votre réticence à lire la documentation !

https://www.mql5.com/ru/docs/objects/objectfind

https://docs.mql4.com/ru/objects/objectfind

Valeur de retour

En cas de succès, la fonction renvoie le numéro de la sous-fenêtre (0 signifie fenêtre principale du graphique) où se trouve l'objet trouvé. Si aucun objet n'est trouvé, la fonction renvoie un nombre négatif. Pour obtenir plus d'informations sur l'erreur, appelez la fonctionGetLastError().

Документация по MQL5: Графические объекты / ObjectFind
Документация по MQL5: Графические объекты / ObjectFind
  • www.mql5.com
ObjectFind - Графические объекты - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
MakarFX #:

Ces lignes sont sous votre contrôle.

Et les lignes qui clignotent réagissent à tout événement OnChartEvent, car

ainsi que la ligne verte, en général toutes les lignes réagissent également au mouvement du curseur. Je viens de réaliser que les trois lignes sont créées dans la zone de dispersion parce que la ligne jaune "Sell Stop" a la condition if(price > Ask) pour la ligne verte "Buy Stop" (price < Bid) et pour la ligne grise "not allowed"(price > Bid && price < Ask ).
 
Nerd Trader #:

Et si l'objet est "0" dans la fenêtre principale, cela renverra-t-il false ?

bool FindObject(string name)
  {
   if(ObjectFind(0,name)) return(false);
   return(true);
  }
 
Mihail Matkovskij #:

Je lui ai dit : bouton enfoncé - création de la ligne, bouton relâché - suppression (idem pour les autres types d'objets auxquels on peut s'attacher). Mais il a dit : ce n'est rien, je vais le faire correctement. :)

Vous voulez dire le changement de couleur via la propriété ? J'ai une telle option, j'ai besoin de comprendre pourquoi elle ne fonctionne pas.

Mihail Matkovskij #:

Voici quelque chose qui pourrait vaincre votre réticence à lire la documentation !

https://www.mql5.com/ru/docs/objects/objectfind

https://docs.mql4.com/ru/objects/objectfind

Alors qu'est-ce qui ne va pas quand l'objet dans la fenêtre principale est "0" votre fonction retournera false ? Expliquez le point avec >= 0... ou égal à zéro
Raison: