Вопрос по отрисовке закрытых позиций "руками" и советником

 
Запустил совтеника и он открывает и закрывает позиции, рисуются символы-стрелочки открытия и закрытия, соединённые пунктирной линией.
Но если позиция была открыта советником и закрыта вручную, то не рисутеся символ-стрелка закрытия позиции и пунктир соединяющий открытие и закрытие. Почему так получается или так и задумано было?
Привожу скриншот на котором позиция #3054492 была открыта и закрыта стратегией, а
две последующие позиции были открыты стратегией а закрыты вручную чеерз диалог и стрелочки закрытия не рисует терминал. Так и должно быть или это как то настраивается чтобы даже если закрыл вручную то чтобы рисовало символ закрытия?
 

Для таких операций можно использовать историю сделок, понятно что советник отрисовывает только те позиции, что он сам открыл и закрыл, а значит он опирается только на данные открытых позиций и данные собственноручного закрытия. Используйте при отрисовке историю, на которую вы как раз и указываете:)

 

Ну да это можно сделать но просто вот можно было бы у позы иметь флаг она открыта советником или руками. Если открыта советником и закрывается руками то тогда нарисовать и стрелочку закрытия соединив пунктиром. Это не критично но логично :) а то висят стрелочки бесхозные

 

Магическое число можно использовать как флаг:) Уникальное собственное число ордера. В документации фигурирует как magic number. Вся проблемма в том, что надо вести учет ордров, используя хотябы глобальный массив, чтобы не выполнять массу самых ненужных операций. Я для этого умудрялся использовать глобальные переменные. Тогда по сути и магическое число никчему. А вообще по хорошему лучше иметь не постоянный источник данных в программе на время ее работы, то есть память процесса. Тогда вся суть отрисовки сводится к одному, проверке разности данных. Если бы ордер мог быть реализован как наследуемый класс таких проблемм бы небыло, в условиях MQL это можно сделать самыми разными способами, но только не так как делается в других высокоуровневых языках, я даже знаю как это можно было бы реализовать на строне сервера, но от того что я знаю как лучше сделать, лучше не будет, посему пользуемся тем что дают:)

Предлогаю самый вещественный вариант, именовать объекты на графике с идентификатором ордеров, то есть их номером, таким образом по первичному объекту если он есть в наличии можно проверять необходимость размещения остальных для того же ордера, а если ордер закрыт и нет остальных объектов, но есть допустим стрелочка открытия, создаем стрелочку закрытия и линию между ними. Помнится и такой способ использовал, как нельзя кстати, необходима проверка в каждом тике советника. Короче способов больше чем можно представить, пользуйтесь:)

 
Да у меня в стартегии есть свой внутренний массив позиций. Надо будет на каждном тике поверять с открытыми позициями и если какие то пропали из массива открытых позиций в МТ4 и не соответсвуют моим внутренним то я ищу по номеру тикета эти позиции в истории и если нахожу то дорисовываю на экране. в своём массиве внутреннем тоже корректно эти позиции удаляю. Это можно сделать конечно. Вообщем понятно - это фича МТ4 это не баг и это хорошо. А то подумал может быть глюк какой что не отрисовывает.
Кстати спасибо xnsnet за советы. Правда слишком много слов ;)
 

Выдаю как думаю, размышлять на тему мало много не остается желания, поэтому не обессудьте:)))

Причина обращения: