Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 421

 

Olá. Como descubro o preço do objeto mais próximo do preço atual pela parte do nome, no início do "R"

Os objetos são barras horizontais (OBJ_TREND) com nomes "R 11", "R 7"...

... não mostra nada parecido com isso.

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

.

 
lil_lil:

Olá. Como você encontra um objeto pela parte do nome que começa com "R"?

não o encontra dessa forma.

.

A ajuda diz:

StringFind

Procure um substrato em uma corda.

intStringFind(
string stringstring_value, // string we are looking for
stringmatch_substring, //pesquisado
intstart_pos=0// qual posição para iniciar a pesquisa
);

Parâmetros

string_value

[em] String para pesquisar.

match_substring

[em] Match_substring a ser pesquisado.

start_pos=0

[em] Posição na corda onde a busca deve ser iniciada.

Valor retornado

Retorna o número de posição no fio onde começa o substrato a ser pesquisado, ou -1 se não for encontrado substrato.

 
Artyom Trishkin:

A referência diz:



Obrigado, mas em que linha estamos procurando?

 
lil_lil:

Obrigado, mas em que linha estamos procurando?

Nome do objeto.
 
Artyom Trishkin:
Nome do objeto.
"Cordas a serem pesquisadas" - o que devo escrever aqui?
priceR = ObjectGet(StringFind( 1,"R",0) ,OBJPROP_PRICE1);

. não há nada.

 
O que, e em que caso o StringFind() retorna? Fiz uma referência completa à função da ajuda (embora a ajuda esteja na ponta dos dedos no MetaEditor - basta colocar o cursor sobre a função e pressionar F1)
 
Artyom Trishkin:
O que, e em que caso o StringFind() retorna? Eu dei uma nota de rodapé completa da função da ajuda (embora a ajuda esteja na ponta dos dedos no meta-editor - basta colocar o cursor sobre a função e pressionar F1).
A ajuda está aberta, não entendo em que linha procurar, ainda nada se sabe, exceto que o nome tem "R".
 
lil_lil:
A ajuda está aberta, não entendo em que linha procurar, ainda nada é conhecido, exceto que há um "R" no nome.

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

Assim.

 
Alekseu Fedotov:

Aí está.


Obrigado.

 

Saudações. A ajuda está recebendo um erro de retorno de volume:

Eu tenho uma matriz criada. Licitação, data e volume..:

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

ulong mass_volume[];

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


Marcas: Acesso Inválido Array

Razão: