Как узнать Magic Number-а всех активных советников - страница 2

 
YuryK1980:

Спасибо, но как я понял там идет анализ СОВЕРШЕННЫХ сделок и из них вытаскиваются магик номера, меня сделки вообще не интересуют, мне нужны номера ЭКСПЕРТОВ, причем они себя могут вообще пока никак не проявить т.е. просто следят за ценой.

Опишу ситуацию более подробно, может кто-то подскажет другое решение. Я выставляю каждую сделку вручную (в советнике настраиваю: магик номер, вход, отмена, стоп, и т.п.) эксперт только открывает/закрывает ордера, двигае стопы и ВЕДЕТ ЖУРНАЛ, магик номер эксперта является идентификотором записи в журнале, проще говоря магик номер = номер сделки.

Далее сам проблема: при добавлении эксперта на график нужно ввести магик номер, а в это время может быть открыто 4-5 сделок и надо сотреть по всем вкладкам,какая сейчас последняя сделка. Хотелось бы чтобы эксперт сам программно пробежался по всем активным советникам, и выдал самый старший номер в комменты.

А почему просто не использовать ChartID() - это уникальный номер.

И гораздо быстрее будет доступ.

 
prostotrader:

А почему просто не использовать ChartID() - это уникальный номер.

И гораздо быстрее будет доступ.

А не возникнет ли ситуация, когда случайно был закрыт чарт с экспертом? Эксперт уже открыл позиции. Как потом восстановить связь эксперт - позиции, если номер чарта нужного символа изменится?

 
YuryK1980:

Добрый день,

подскажите пожалуйста возможно ли программно узнать магик номера всех активных советников.

Сначала хотел через анализ ордеров, но советник может еще и не открыть ни одного ордера к моменту проверки, так, что данный способ не подошел.

Может есть какая переменная в терминале?

Заранее спасибо!

Сейчас решаю аналогичную проблему. Пока нашел такое решение:

Каждый из запускаемых советников записывает свой адрес в общий файл, который потом парсится другими советниками. Свой адрес советник получает через MqlInfoString(MQL_PROGRAM_PATH);

К сожалению, МТ5 в отличии от МТ4 не даёт возможность записывать свою информацию из одного советника в ресурс другого. Можно только читать. Поэтому, в МТ4 можно было бы объявить ресурс в спец. советнике, адрес которого был бы известен всем другим советникам, и они бы записывали в его ресурс свои магики.
 
Alexey Kozitsyn:

А не возникнет ли ситуация, когда случайно был закрыт чарт с экспертом? Эксперт уже открыл позиции. Как потом восстановить связь эксперт - позиции, если номер чарта нужного символа изменится?

Так он магик руками вводит.

Так что без разницы Магик или ChartID()

 

С библиотекой не разобрался, :( крутовато для меня, но на пару мыслей натолкнула. Решил проблему с такими костылями. Эксперт при инициализации выводит свой магик в комменты, и там же при инициализации считывает коменты со всех чартов, ну а вытащить номер из структуры и найти старший  дело не хитрое, к тому же у меня он идет первым номером.

Всем спасибо за участие!

 
Alexey Kozitsyn:

А не возникнет ли ситуация, когда случайно был закрыт чарт с экспертом? Эксперт уже открыл позиции. Как потом восстановить связь эксперт - позиции, если номер чарта нужного символа изменится?

В моем случае это решается во-первых вводом того  же номера советника, что и был закрыт, и указанием через флаги в каком состоянии он находится (открыта позиция, выставлен стоп и т.д.). 

Проблем больше не с случайным закрытием, а с остановками по ошибкам, мучаюсь как четко отловить открылся ордер или нет после его отправки брокеру. Но это, наверное, уже не в этой ветке обсуждение.

 
Реter Konow:
Сейчас решаю аналогичную проблему. Пока нашел такое решение:

Каждый из запускаемых советников записывает свой адрес в общий файл, который потом парсится другими советниками. Свой адрес советник получает через MqlInfoString(MQL_PROGRAM_PATH);

К сожалению, МТ5 в отличии от МТ4 не даёт возможность записывать свою информацию из одного советника в ресурс другого. Можно только читать. Поэтому, в МТ4 можно было бы объявить ресурс в спец. советнике, адрес которого был бы известен всем другим советникам, и они бы записывали в его ресурс свои магики.

Мысли в слух: Почему не использовать SocketCreate в сервисе. Который будет слушать порты и писать нужную информацию. При запросе отдавать ее экспертам. По идеи тогда можно настроить даже удаленную работу. С данной возможностью появляется довольно неограниченное поле деятельности.

 
YuryK1980:

В моем случае это решается во-первых вводом того  же номера советника, что и был закрыт, и указанием через флаги в каком состоянии он находится (открыта позиция, выставлен стоп и т.д.). 

Проблем больше не с случайным закрытием, а с остановками по ошибкам, мучаюсь как четко отловить открылся ордер или нет после его отправки брокеру. Но это, наверное, уже не в этой ветке обсуждение.

Обратите внимание на https://www.mql5.com/ru/docs/event_handlers/ontradetransaction

Документация по MQL5: Обработка событий / OnTradeTransaction
Документация по MQL5: Обработка событий / OnTradeTransaction
  • www.mql5.com
При обрабокте транзакций типа TRADE_TRANSACTION_REQUEST для получения дополнительной информации необходимо анализировать второй и третий параметры функции OnTradeTransaction() – Отправка торгового запроса на покупку приводит к цепи торговых транзакций, которые совершаются на торговом счете: 1) запрос  принимается на обработку, 2) далее для...
 

YuryK1980:

У Вас каждый эксперт имеет собственный алгоритм? Все действия в один эксперт не засунуть?

 

"Хотелось бы чтобы эксперт сам программно пробежался по всем активным советникам, и выдал самый старший номер в комменты." 

1. Как говорил старина Мюллер, советник и эксперт - одно и то же. 

2. В терминале MT не может быть более одного советника. 

3. Так, что Вам нужно? 

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