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

 
DanilaMactep:

Не один раз в видео уроках видел как такие переменные изменялись без каких либо проблем.

Я тоже хочу увидеть, можно ссылку?

DanilaMactep:

прошу дать реально понятный и дельный совет

Пост#13247

 

Подскажите, как можно найти объект по не полному имени?

Индикатор создает объекты и задает имя

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

надо найти объект и если его цена меньше текущей удалить

 
MakarFX:

Подскажите, как можно найти объект по не полному имени?

Индикатор создает объекты и задает имя

надо найти объект и если его цена меньше текущей удалить

Это?

StringFind

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

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

Параметры

string_value

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

match_substring

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

start_pos=0

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

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

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

 

 
Vitaly Muzichenko:

Это?

Наверно нет...

точнее я не знаю как это привязать к поиску объекта

Пока пытаюсь

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

но как-то не получается(

 
MakarFX:

Наверно нет...

точнее я не знаю как это привязать к поиску объекта

Пока пытаюсь

но как-то не получается(

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

string  ObjectName(
   int    object_index   // номер в списке объектов
   );

 

Предлагаю так:

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:

 

Спасибо, сейчас попробую оба варианта)

 

Сделал так

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

 Работает безупречно!

Спасибо всем)

 

Здравствуйте. Вопрос по стоимости пункта. Делаю так:

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

Получаю одинаковые значения на этих двух парах. Так и есть? Или глюк какой-то?

 
MakarFX:

Сделал так

 Работает безупречно!

Спасибо всем)

Цикл должен быть обратным. Иначе потом опять будут вопросы почему стало работать небезупречно

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