Для таких операций можно использовать историю сделок, понятно что советник отрисовывает только те позиции, что он сам открыл и закрыл, а значит он опирается только на данные открытых позиций и данные собственноручного закрытия. Используйте при отрисовке историю, на которую вы как раз и указываете:)
Ну да это можно сделать но просто вот можно было бы у позы иметь флаг она открыта советником или руками. Если открыта советником и закрывается руками то тогда нарисовать и стрелочку закрытия соединив пунктиром. Это не критично но логично :) а то висят стрелочки бесхозные
Магическое число можно использовать как флаг:) Уникальное собственное
число ордера. В документации фигурирует как magic number. Вся проблемма
в том, что надо вести учет ордров, используя хотябы глобальный
массив, чтобы не выполнять массу самых ненужных операций. Я
для этого умудрялся использовать глобальные переменные. Тогда по сути и магическое число никчему. А вообще по хорошему
лучше иметь не постоянный источник данных в программе на время
ее работы, то есть память процесса. Тогда вся суть отрисовки
сводится к одному, проверке разности данных. Если бы ордер мог
быть реализован как наследуемый класс таких проблемм бы небыло,
в условиях MQL это можно сделать самыми разными способами, но
только не так как делается в других высокоуровневых языках,
я даже знаю как это можно было бы реализовать на строне сервера,
но от того что я знаю как лучше сделать, лучше не будет, посему
пользуемся тем что дают:)
Предлогаю самый вещественный вариант, именовать объекты на
графике с идентификатором ордеров, то есть их номером, таким
образом по первичному объекту если он есть в наличии можно проверять
необходимость размещения остальных для того же ордера, а если
ордер закрыт и нет остальных объектов, но есть допустим стрелочка
открытия, создаем стрелочку закрытия и линию между ними. Помнится
и такой способ использовал, как нельзя кстати, необходима проверка
в каждом тике советника. Короче способов больше чем можно представить,
пользуйтесь:)
Кстати спасибо xnsnet за советы. Правда слишком много слов ;)
Выдаю как думаю, размышлять на тему мало много не остается желания, поэтому не обессудьте:)))
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Но если позиция была открыта советником и закрыта вручную, то не рисутеся символ-стрелка закрытия позиции и пунктир соединяющий открытие и закрытие. Почему так получается или так и задумано было?
Привожу скриншот на котором позиция #3054492 была открыта и закрыта стратегией, а
две последующие позиции были открыты стратегией а закрыты вручную чеерз диалог и стрелочки закрытия не рисует терминал. Так и должно быть или это как то настраивается чтобы даже если закрыл вручную то чтобы рисовало символ закрытия?