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

 

Hola.¿Cómo puedo averiguar el precio del objeto más cercano al precio actual por la parte del nombre, al principio de "R"

Los objetos son barras horizontales (OBJ_TREND) con nombres "R 11", "R 7"...

... no muestra nada de eso.

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

.

 
lil_lil:

Hola.¿Cómo se encuentra un objeto por la parte del nombre que empieza por "R"?

no lo encuentra así.

.

La ayuda dice:

StringFind

Buscar una subcadena en una cadena.

intStringFind(
cadena_valor, // cadena que buscamos
cadenamatch_substring, //buscado
intstart_pos=0// en qué posición comenzar la búsqueda
);

Parámetros

valor_de_cadena

[in] Cadena para buscar en.

match_substring

[in] Match_substring a buscar.

start_pos=0

[in] Posición en la cadena donde debe iniciarse la búsqueda.

Valor devuelto

Devuelve el número de posición en la cadena donde comienza la subcadena a buscar, o -1 si no se encuentra ninguna subcadena.

 
Artyom Trishkin:

La referencia dice:



Gracias, pero ¿en qué línea estamos mirando?

 
lil_lil:

Gracias, pero ¿en qué línea estamos mirando?

Nombre del objeto.
 
Artyom Trishkin:
Nombre del objeto.
"Cadena a buscar": ¿qué debo escribir aquí?
priceR = ObjectGet(StringFind( 1,"R",0) ,OBJPROP_PRICE1);

. no hay nada.

 
¿Qué y en qué caso devuelve StringFind()? He dado una referencia completa a la función desde la ayuda (aunque la ayuda está al alcance de tu mano en el MetaEditor - sólo tienes que poner el cursor en la función y pulsar F1)
 
Artyom Trishkin:
¿Qué y en qué caso devuelve StringFind()? He dado una nota completa de la función desde la ayuda (aunque la ayuda está al alcance de tu mano en el meta-editor - sólo tienes que poner el cursor en la función y pulsar F1).
La ayuda está abierta, no entiendo en qué línea buscar, no se sabe nada todavía, salvo que el nombre tiene "R".
 
lil_lil:
La ayuda está abierta, no entiendo en qué línea hay que buscar, no se sabe nada todavía, salvo que hay una "R" en el nombre.

//--- показываем список объектов 
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);
     }
  }

Así.

 
Alekseu Fedotov:

Ahí lo tienes.


Gracias.

 

Saludos. La ayuda está recibiendo un error de retorno de volumen:

Tengo un array creado. Oferta, fecha y volumen..:

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

ulong mass_volume[];

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


Marcas: Acceso inválido a la matriz

Razón de la queja: