Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 421

 

Здравствуйте. Как узнать цену объекта ближайшего к текущей цене по части имени, в начале "R"

Объекты - горизонтальные отрезки (OBJ_TREND) с именами "R 11", "R 7"...

так не показывает ничего.

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

.

 
lil_lil:

Здравствуйте. Как найти объект по части имени, в начале "R"

так не находит

.

Справка гласит:

StringFind

Поиск подстроки в строке.

int  StringFind(
   string  string_value,         // строка, в которой ищем
   string  match_substring,  // что ищем
   int     start_pos=0            // с какой позиции начинать поиск
   );

Параметры

string_value

[in]  Строка, в которой производится поиск.

match_substring

[in]  Искомая подстрока.

start_pos=0

[in]  Позиция в строке, с которой должен быть начат поиск.

Возвращаемое значение

Возвращает номер позиции в строке, с которой начинается искомая подстрока, либо -1, если подстрока не найдена.

 

 
Artyom Trishkin:

Справка гласит:


 


Спасибо, а в какой строке ищем?

 
lil_lil:

Спасибо, а в какой строке ищем?

Имя объекта.
 
Artyom Trishkin:
Имя объекта.
"Строка, в которой производится поиск"- что здесь писать?
priceR = ObjectGet(StringFind( 1,"R",0) ,OBJPROP_PRICE1);

.нет ничего

 
Что, и в каком случае возвращает StringFind() ? Я же привёл полную сноску по функции из справки (хотя справка у вас в метаедиторе прямо под рукой - только курсор на функцию поставить и нажать F1)
 
Artyom Trishkin:
Что, и в каком случае возвращает StringFind() ? Я же привёл полную сноску по функции из справки (хотя справка у вас в метаедиторе прямо под рукой - только курсор на функцию поставить и нажать F1)
Справка открыта, я не понимаю в какой строке искать, ещё ничего не известно, кроме того что в имени есть "R".
 
lil_lil:
Справка открыта, я не понимаю в какой строке искать, ещё ничего не известно, кроме того что в имени есть "R".

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

Как то так.

 
Alekseu Fedotov:

Как то так.


Спасибо.

 

Приветствую. Помогите ругается на возврат объема:

У меня создан массив. Бид, дата и объем.:

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

ulong mass_volume[];

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


Помечает: Invalid Array access

Причина обращения: