Имена объектов

 
Здравствуйте, совсем недавно занимаюсь mql, хотел спросить есть ли какая то процедура, позволяющая генерировать уникальный порядковый номер объекта? Просто я заметил, когда вручную создаешь какие-либо объекты, то у них свои пятизначные числа.

И еще, кто-нибудь может подсказать, если нужно знать информацию о расположении зигзагов, то это решается только с помощью копирования кода этого индикатора, а затем нужно взять из его выходного массива нужные значения? А нет ли более изящного метода?

Спасибо.
 
trajor писал (а):
Здравствуйте, совсем недавно занимаюсь mql, хотел спросить есть ли какая то процедура, позволяющая генерировать уникальный порядковый номер объекта? Просто я заметил, когда вручную создаешь какие-либо объекты, то у них свои пятизначные числа.

И еще, кто-нибудь может подсказать, если нужно знать информацию о расположении зигзагов, то это решается только с помощью копирования кода этого индикатора, а затем нужно взять из его выходного массива нужные значения? А нет ли более изящного метода?

1. Есть процедура:
int GetTickCount( )
Функция GetTickCount() возвращает количество миллисекунд, прошедших с момента старта системы. Счетчик ограничен разрешающей способностью системного таймера. Так как время хранится как беззнаковое целое, то он переполняется каждые 49.7 дней.

2. Есть метод:
double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)
Расчет указанного пользовательского индикатора. Пользовательский индикатор должен быть скомпилирован (файл с расширением EX4) и находиться в директории каталог_терминала\experts\indicators.
 

Спасибо, про iCustom все предельно ясно, по поводу GetTickCount мы просто берем это число, вставляем в имя и надеемся, что не выпадет такого варианта, что имена совпадут за эти 49.7 дней?

 
trajor писал (а):

Спасибо, про iCustom все предельно ясно, по поводу GetTickCount мы просто берем это число, вставляем в имя и надеемся, что не выпадет такого варианта, что имена совпадут за эти 49.7 дней?


Ну да. Правда, есть вероятность, что число миллисекунд не изменится между двумя вызовами подряд. Можно просто писать в глобальную переменную увеличиваемые на 1-цу значения, и брать текущее.
 
trajor писал (а):

..по поводу GetTickCount мы просто берем это число, вставляем в имя и надеемся, что не выпадет такого варианта, что имена совпадут за эти 49.7 дней?


Можно попробовать так:
        double T = TimeCurrent();
        string Name = "Obj_" +  DoubleToStr(T,0);
Причина обращения: