Подскажите с кодом. - страница 2

 
Vladimir Karputov:

В тестере

      datetime time_create=(datetime)ObjectGetInteger(0,name,OBJPROP_CREATETIME);


возвращает дату создания линии из реальной жизни, то есть "D'2016.11.13 15:57:29'".

 

Всего лишь нужно было запустить советник в режиме тестирования на истории  и отследить возвращаемые параметры. Смотрите, я на локализацию проблемы потратил всего пять минут. 

 

Добавлено:

ошибку описал в теме MetaEditor build 1470

Пишу в МТ4, данная кнопка не активна.
 
Ooops:
Пишу в МТ4, данная кнопка не активна.

Как говорится - сравните две разницы :) . Я в МТ5 за пять минут, благодаря режиму "Отладка на истории" смог локализовать проблему. Вы же в "4" обречены были искать эту проблему неделями.

Отсюда вопрос: Вы всё еще сидите на "4"? 

 
Банальный вопрос, есть советник, есть индикаторы написанные для мт4, для мт5 их надо переписывать?
 
Ooops:
Банальный вопрос, есть советник, есть индикаторы написанные для мт4, для мт5 их надо переписывать?
Да, нужно. И индикаторы и советники. Переписывайте сами. Если не желаете (или не можете) сами - тогда через Фриланс.
 
Мда, неполучится тогда перейти, слишком много надо переписывать, сам не смогу. Буду пытать решить проблемы в мт4
 
Ooops:
Мда, неполучится тогда перейти, слишком много надо переписывать, сам не смогу. Буду пытать решить проблемы в мт4
Главное начать, а там всё пойдёт, как по маслу. И многие пользователи уже потихонечку перешли, остальные в процессе.
 
Честно говоря все выходные бьюсь с этой проблемой удаления линий. Может есть еще какие то варианты
 
Ooops:
Честно говоря все выходные бьюсь с этой проблемой удаления линий. Может есть еще какие то варианты

вот такой вариант, так как я не знаю какие именно линии вы создаете, то проверку на наличие линии вставите сами.

void DeleteAllTimeout()
  {
   int total=ObjectsTotal(0);

   for(int i=total-1; i>=0; i--)
     {
      string name=ObjectName(0,i);
      datetime time_create = StringToTime(StringSubstr(name,0,19));
      if(TimeCurrent()>=time_create+24*60*60*2)
        {
         ObjectDelete(0,name);
        }
     }
  }


 ...

 

Объект, созданный программно или вручную, имеет время создания, определяемое через OBJPROP_CREATETIME, равное возвращаемому функцией TimeLocal().

После перезапуска терминала время создания объекта становится равным 1970.01.01 00:00:00 /*<= если объект не пересоздаётся после перезапуска */

Это не баг, а давнее свойство. Гляньте примечания к таблице в п.3.2 этой статьи (и саму таблицу).

Посмотреть время создания каких-либо объектов на графике (до и после перезапуска терминала) можно с помощью прилагаемого в конце той статьи индикатора с именем id_name_object. Описание назначения приведённого индикатора - в п.5 статьи. Сразу после описания его назначения - скрин его информационной панели. Для компиляции требуется наличие файла objectcreateandset.mqh в папке Include (он прилагается там же, либо можете скачать этот файл с функциями из CodeBase).

 

P./S.: Упомяну ещё, что в конце этой статьи есть скрипт с именем test_get_objprop_createtime. Приведу по нему цитату из этой же статьи, выделив зелёным жирным шрифтом то, для чего упоминаю сейчас и о нём:

"...создает на графике кнопку, определяет время ее создания и выводит его на печать через Print() в журнал вкладки Эксперты. Далее он определяет и выводит на печать в ту же вкладку терминала различные виды времени: локальное время компьютера, расчетное текущее время торгового сервера, последнее известное время сервера по времени прихода последней котировки, время по GMT. Затем "замирает" на 10 секунд, после чего удаляет созданную им кнопку с графика, завершая на этом свою работу."

Для его компиляции так же нужен файл objectcreateandset.mqh в папке Include терминала.

 
P.S.: В статье приводятся примеры применения времени создания объектов для их удаления. Приводится пример функции (есть она и в коде упоминаемого мной выше индикатора id_name_object). Но это для объектов, которые пересоздаются их программой-создательницей после перезапуска терминала (например, для объектов панели или иных графических объектов(линий и т.д.), учёт которых программа-создатель ведёт и после их создания).
Причина обращения: