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

 
DanilaMactep:

J'ai vu plus d'une fois de telles variables modifiées sans aucun problèmedans des tutoriels vidéo.

J'aimerais le voir aussi, puis-je avoir un lien ?

DanilaMactep:

Veuillez donner des conseils clairs et judicieux

Post#13247

 

Pouvez-vous me dire comment trouver un objet par un nom qui n'est pas complet ?

L'indicateur crée des objets et leur donne un nom

HlineCreate(0,"Min"+rand(),...);

Trouver l'objet et le supprimer si son prix est inférieur au prix actuel.

 
MakarFX:

Pouvez-vous me dire comment trouver un objet par un nom qui n'est pas complet ?

L'indicateur crée des objets et leur donne un nom

J'ai besoin de trouver un objet et de le supprimer si son prix est inférieur à celui de l'objet actuel.

C'est le cas ?

StringFind

Recherche d'une sous-chaîne dans une chaîne de caractères.

intStringFind(
stringstring_value,//string string que nous recherchons
stringmatch_substring,//ce que nous recherchons
intstart_pos=0// quelle position pour commencer la recherche
) ;

Paramètres

valeur_chaîne

[in] Chaîne à rechercher.

correspondance_sous-chaîne

[in] Sous-chaîne de correspondance à rechercher.

start_pos=0

[in] Position dans la chaîne de caractères où la recherche doit être lancée.

Valeur retournée

Renvoie le numéro de position dans la chaîne où commence la sous-chaîne à rechercher, ou -1 si aucune sous-chaîne n'est trouvée.

 
Vitaly Muzichenko:

Ça ?

Probablement pas...

ou plutôt, je ne sais pas comment le lier à la recherche d'objets.

J'essaie.

 for(int i=0;i<ObjectsTotal();i++)
     ObjectDelete(0,"Min"+IntegerToString(i));

mais ça ne marche pas.

 
MakarFX:

Probablement pas...

ou plutôt, je ne sais pas comment le lier à une recherche d'objet.

J'essaie toujours.

mais cela ne fonctionne pas.

for(int i=0;i<ObjectsTotal();i++) {
 if(StringFind(получим имя объекта,"Min")>-1) { // ObjectName
   ObjectDelete(0,"полученное имя");

stringObjectName(
intobject_index// numéro dans la liste des objets
) ;

 

Je suggère ceci :

int obj_total=ObjectsTotal(); 
 
   for(i=obj_total-1;i>=0;i--) 
     { 
      string name=ObjectName(i); 
      if(StringFind(name,"Min",0)!=-1)
        {
        ObjectDelete(name);
        } 
     } 
 
Vitaly Muzichenko:


Alekseu Fedotov:

Merci, je vais essayer les deux maintenant)

 

Je l'ai fait comme ça.

 for(int a = 0; a<ObjectsTotal() ;a++)
  {
   if(ObjectGet(ObjectName(a),OBJPROP_PRICE1)>iHigh(Symbol(),PERIOD_D1,1))
   if(ObjectDelete(ObjectName(a)))Print("Delete");
  }

Fonctionne parfaitement !

Merci à tous)

 

Bonjour. Question sur le coût de l'article. C'est ce que je fais :

MarketInfo("EURCAD",MODE_TICKVALUE) 
MarketInfo("USDCAD",MODE_TICKVALUE)

J'obtiens les mêmes valeurs sur ces deux paires. C'est comme ça que ça marche ? Ou est-ce un problème ?

 
MakarFX:

Je l'ai fait comme ça.

Fonctionne parfaitement !

Merci à tous)

Le cycle doit être inversé. Sinon, il y aura des questions sur les raisons pour lesquelles cela n'a pas fonctionné parfaitement.

Raison: