Примеры: MagicNumber – "магический" идентификатор ордера

 

New article MagicNumber – "магический" идентификатор ордера has been published:

Статья посвящена бесконфликтной торговле нескольких экспертов на одном терминале МТ 4. Она научит эксперта управлять только "своими" ордерами, не модифицируя и не закрывая "чужие" (открытые вручную или другими экспертами) позиции. Статья рассчитана на пользователя, обладающего базовыми навыками работы с терминалом и программирования на MQL 4.

Author: Andrey Khatimlianskii

 

Предлагаю для создания уникального MagicNumber использовать функцию TimeLocal(), которая вызывается при инициализации эксперта в функции init(). Значение функции TimeLocal() и присваивается целой переменной magik. Поскольку старт экспертов и инициализация их переменных на одном компьютере может производиться только последовательно, переменной magik будет присваиваться уникальный номер, что и требуется для работы с любым количеством запущенных экспертов...

 
NPV:

Предлагаю для создания уникального MagicNumber использовать функцию TimeLocal(), которая вызывается при инициализации эксперта в функции init(). Значение функции TimeLocal() и присваивается целой переменной magik. Поскольку старт экспертов и инициализация их переменных на одном компьютере может производиться только последовательно, переменной magik будет присваиваться уникальный номер, что и требуется для работы с любым количеством запущенных экспертов...

Во-первых, за одну секунду может инициализироваться хоть 100 экспертов - и у них получится одинаковый меджик.
А во-вторых, как эксперт "узнает" открытую ранее позицию? Если после каждого запуска будет новый меджик, он будет "терять" старые позиции.
 
komposter:
NPV:

Предлагаю для создания уникального MagicNumber использовать функцию TimeLocal(), которая вызывается при инициализации эксперта в функции init(). Значение функции TimeLocal() и присваивается целой переменной magik. Поскольку старт экспертов и инициализация их переменных на одном компьютере может производиться только последовательно, переменной magik будет присваиваться уникальный номер, что и требуется для работы с любым количеством запущенных экспертов...

Во-первых, за одну секунду может инициализироваться хоть 100 экспертов - и у них получится одинаковый меджик.
А во-вторых, как эксперт "узнает" открытую ранее позицию? Если после каждого запуска будет новый меджик, он будет "терять" старые позиции.


Как можно за одну секунду запустить 100 экспертов, если их можно запускать только последовательно?!... Ведь они запускаются на разных таймфреймах...
И какую "открытую ранее позицию" должен узнавать эксперт? Эксперт запускается один раз на одном таймфрейме и работает пока его не закроет хозяин. Все это время он открывает и закрывает только свои позиции с уникальным меджиком, остальные же позиции пропускаются при переборе открытых позиций перед их закрытием. Что можно потерять при этом...?
 
NPV писал(а):
Как можно за одну секунду запустить 100 экспертов, если их можно запускать только последовательно?!...
Например, загрузив терминал.
Если запустить несколько экспертов а потом перезапустить терминал, они начнут работать практически одновременно.

NPV писал(а):
И какую "открытую ранее позицию" должен узнавать эксперт? Эксперт запускается один раз на одном таймфрейме и работает пока его не закроет хозяин. Все это время он открывает и закрывает только свои позиции с уникальным меджиком, остальные же позиции пропускаются при переборе открытых позиций перед их закрытием. Что можно потерять при этом...?

Опять же, если эксперт откроет позицию, а потом терминал перезагрузится (например, электричество отключат), он уже не найдет открытую позицию, т.к. сгенерируется новый мейджик.
 
komposter:
NPV писал(а):
Как можно за одну секунду запустить 100 экспертов, если их можно запускать только последовательно?!...
Например, загрузив терминал.
Если запустить несколько экспертов а потом перезапустить терминал, они начнут работать практически одновременно.

NPV писал(а):
И какую "открытую ранее позицию" должен узнавать эксперт? Эксперт запускается один раз на одном таймфрейме и работает пока его не закроет хозяин. Все это время он открывает и закрывает только свои позиции с уникальным меджиком, остальные же позиции пропускаются при переборе открытых позиций перед их закрытием. Что можно потерять при этом...?

Опять же, если эксперт откроет позицию, а потом терминал перезагрузится (например, электричество отключат), он уже не найдет открытую позицию, т.к. сгенерируется новый мейджик.

Да, согласен, в этом случае мое предложение не работает... Вы правы, нужно учитывать возможные сбои...
Причина обращения: