Цель: делать в советнике уникальные метки для групп ордеров, которые будет уникальны и после перезапуска советника. Еще можно использовать генератор случайных чисел, см. справку.
Первая мысль - это взять текущее время с миллисекундами и сунуть в комментарий каждому ордеру.
Как наиболее вменяемым и скоростным способом это можно сделать в mql4?
Как 2 пальца, Win APi использовать, но в маркет не пропустят. Или генератор случайных чисел использовать, он есть в mql4.
|
struct SYSTEMTIME { ushort wYear; ushort wMonth; ushort wDayOfWeek; ushort wDay; ushort wHour; ushort wMinute; ushort wSecond; ushort wMilliseconds; }; #import "Kernel32.dll" void GetLocalTime(SYSTEMTIME &lpSystemTime); #import
Цель: делать в советнике уникальные метки для групп ордеров, которые будет уникальны и после перезапуска советника.
Чем тогда секунды не угодили? Все равно ведь на реальном рынке не выполнят серию заявок в одну секунду.
Еще один момент: если открытие ордеров основано на показаниях какого-то индикатора, то там даже секунды не понадобятся, т. к. минимальный ТФ - М1. Я как раз пользуюсь этим обстоятельством.
Цель: делать в советнике уникальные метки для групп ордеров, которые будет уникальны и после перезапуска советника.
Первая мысль - это взять текущее время с миллисекундами и сунуть в комментарий каждому ордеру.
Как наиболее вменяемым и скоростным способом это можно сделать в mql4?
как и с любыми коментариями - есть нюанс - придётся немного муторится с частичным и встречным закрытием выискивая оригинал ордера.
Всё оказывается немножечко грустнее. Это не свободный комментарий, а служебный. Я бы этому свойству ордера дал бы название closed. Когда ордер закрывается, то система пишет туда причину закрытия. Видел там строчки "canceled", "[tp]" и "[sl]".
Тогда, при перезапуске, сможете легко собрать все группы и ничего не потеряется.
Всё оказывается немножечко грустнее. Это не свободный комментарий, а служебный. Я бы этому свойству ордера дал бы название closed. Когда ордер закрывается, то система пишет туда причину закрытия. Видел там строчки "canceled", "[tp]" и "[sl]".
комментарий задаёт пользователь, а сервер его хранит и лишь дописывает служебные данные. Не стоит конечно разбегаться и пытаться впихать невпихуемое то есть очень длиииинннуууюю строку - она будет обрезана и частично перезатёрта. Но 3-4 числа влезают запросто.
можно ещё манипулировать MAGIC ордера. Собственно единственное что из произвольных данных хранит сервер - комент и magic.
Миллисекундное время можно и самому синтезировать. Если брать упрощённый случай, когда не требуется точная синхронизация с реальным временем, то можно сделать так:
long time = (long)TimeLocal()*1000 + GetTickCount()%1000;
Всё оказывается немножечко грустнее. Это не свободный комментарий, а служебный. Я бы этому свойству ордера дал бы название closed. Когда ордер закрывается, то система пишет туда причину закрытия. Видел там строчки "canceled", "[tp]" и "[sl]".
И не нужно использовать комментарий для собственных целей. Это поле может быть затерто (изменено) сервером.
P. S. Не спрашивайте меня, зачем оно вообще нужно. Я сам не знаю )))
Миллисекундное время можно и самому синтезировать. Если брать упрощённый случай, когда не требуется точная синхронизация с реальным временем, то можно сделать так:
так нельзя.. с такой формулой секунда запросто начнётся с 900 и в ней-же при следующем обращении будет 10 мсек. То есть нарушится "поступательное" движение отсчётов времени. Это будет не время а НЁХ :-)
так нельзя.. с такой формулой секунда запросто начнётся с 900 и в ней-же при следующем обращении будет 10 мсек. То есть нарушится "поступательное" движение отсчётов времени. Это будет не время а НЁХ :-)
Да, действительно, поспешил я. Синхронизацию всё ж придётся делать
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Цель: делать в советнике уникальные метки для групп ордеров, которые будет уникальны и после перезапуска советника.
Первая мысль - это взять текущее время с миллисекундами и сунуть в комментарий каждому ордеру.
Как наиболее вменяемым и скоростным способом это можно сделать в mql4?