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

 

Bonjour, Comment trouver le prix de l'objet le plus proche du prix actuel par la partie du nom, au début de "R".

Les objets sont des barres horizontales (OBJ_TREND) avec les noms "R 11", "R 7"...

... ne montre rien de tel.

priceR = ObjectGet("R"+"" ,OBJPROP_PRICE1);

.

 
lil_lil:

Bonjour. Comment trouver un objet par la partie du nom qui commence par "R" ?

il ne le trouve pas de cette façon.

.

L'aide dit :

StringFind

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

intStringFind(
stringstring_value, // chaîne que nous recherchons
chaînematch_substring, //recherché
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.

 
Artyom Trishkin:

La référence se lit comme suit :



Merci, mais dans quelle ligne cherche-t-on ?

 
lil_lil:

Merci, mais dans quelle ligne cherche-t-on ?

Nom de l'objet.
 
Artyom Trishkin:
Nom de l'objet.
"String to be searched" - qu'est-ce que je dois écrire ici ?
priceR = ObjectGet(StringFind( 1,"R",0) ,OBJPROP_PRICE1);

. il n'y a rien.

 
Que, et dans quel cas, StringFind() retourne-t-il ? J'ai donné une référence complète à la fonction à partir de l'aide (bien que l'aide soit à portée de main dans le MetaEditor - il suffit de placer le curseur sur la fonction et d'appuyer sur F1).
 
Artyom Trishkin:
Que, et dans quel cas, StringFind() retourne-t-il ? J'ai donné une note de bas de page complète sur la fonction à partir de l'aide (bien que l'aide soit à portée de main dans le méta-éditeur - il suffit de placer le curseur sur la fonction et d'appuyer sur F1).
L'aide est ouverte, je ne comprends pas dans quelle ligne chercher, on ne sait encore rien, sauf que le nom comporte un "R".
 
lil_lil:
L'aide est ouverte, je ne comprends pas dans quelle ligne chercher, on ne sait encore rien sauf qu'il y a un "R" dans le nom.

//--- показываем список объектов 
int obj_total=ObjectsTotal();
string name;

for(i=0;i<obj_total;i++)
  {
   name=ObjectName(i);
   if(ObjectType(name)!=OBJ_TREND) continue;
   if(StringFind(name,"R",0)!=-1)
     {
     priceR = ObjectGet(name ,OBJPROP_PRICE1);
     }
  }

Comme ça.

 
Alekseu Fedotov:

Et voilà.


Merci.

 

Salutations. L'aide obtient une erreur de retour de volume :

J'ai créé un tableau. Enchère, date et volume.. :

extern ulong extreme_volume=50;
ulong volume_start=0;
ulong volume_end=0;

ulong mass_volume[];

volume_start=Volume; //Ругается на эту строку


Marques : Accès invalide au tableau