![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
И не нужно использовать комментарий для собственных целей. Это поле может быть затерто (изменено) сервером.
P. S. Не спрашивайте меня, зачем оно вообще нужно. Я сам не знаю )))
Ну это я как бы понял уже :) Тут не хватает разработчика, чтобы объяснить, зачем это поле дано устанавливать пользователю, если система пользовательский комментарий затрёт в неожиданный момент, не описанный в документации.
Для текущих моих нужд мне важно чтобы при установке двух групп ордеров советник не сумел обеим группам одну и ту же метку сгенерировать. По этому мне в данном случае не важна синхронизация 0 миллисекунды с концом секунды.
Если брать просто datatime, то за 1 секунду алгоритм сможет обработать две группы по два ордера и всем четырём сгенерируется одинаковая метка.
По этому я сейчас делают вот так:
А потом мониторю увеличение OrderHistoryTotal() и обнаруживаю, что вытащенный из истории мой отработавший ордер в комментарии не имеет того, что я туда ему вписывал.
Видимо остаётся кодировать magic.
Думаю конвертировать int magic советника в строку и конвертировать дату с миллисекундами в строку целых чисел, а затем конкатенацию и обратно StringToInteger().
Ну это я как бы понял уже :) Тут не хватает разработчика, чтобы объяснить, зачем это поле дано устанавливать пользователю, если система пользовательский комментарий затрёт в неожиданный момент, не описанный в документации.
Думаю, что даже они не ответят. Скорее всего, задумка была одна, а в процессе разработки все поменялось. Вышла такая вот фича.
Для текущих моих нужд мне важно чтобы при установке двух групп ордеров советник не сумел обеим группам одну и ту же метку сгенерировать. По этому мне в данном случае не важна синхронизация 0 миллисекунды с концом секунды.
Кроме как для идентификации разных групп ордеров время нужно? Например, для того, чтобы потом определить, когда именно имел место первый сигнал.
Если время используется только как идентификатор, то о нем вообще можно забыть и использовать какой-нибудь свой алгоритм генерации идентификаторов ордеров. Например, индексировать. Открывается первая группа ордеров - ID = 0, вторая группа - ID = 1 и т. д. Если группа с каким-либо ID исчезает, то этот ID становится свободным и может быть использован новой группой ордеров. Или же не использовать такой ID, просто увеличивая его для каждой новой группы, пока не дойдем до переполнения.
Я когда-то думал об идее с 2-мя полями комментариев к ордеру. 1-й пользовательский, что пользователь вписал - то там и осталось. Второй - короткий, системный. Туда пишет только система. Но видимо разработчикам это не надо.
Есть еще одна идея, но у нее плохая переносимость между компьютерами.
После высталения ордера заполняем данные структуры, пихаем в массив. Храним по вкусу - на чарте в виде графических объектов, в файле, на Web-сервере.Вот кому нужно время с миллисекундами:
При желании можно аналогично сделать и микросекундное.