Если анализировать только историю счета, то никак. Ну а если посмотреть журнал экспертов на том терминале (не счете, а именно терминале), где производилось закрытие, то там будет подобная запись. Таким образом, программно только средствами MQL4 не получится узнать.
Если анализировать только историю счета, то никак. Ну а если посмотреть журнал экспертов на том терминале (не счете, а именно терминале), где производилось закрытие, то там будет подобная запись. Таким образом, программно только средствами MQL4 не получится узнать.
Есть частичное решение. То, что открывается вручную, всегда имеет нулевой магик. Если магик ненулевой, значит это работа эксперта или скрипта. Но конечно они и нулевой магик тоже могут использовать - здесь неопределенность.
Скорее вопрос в том, что при работе робота закрывается сделка не роботом, а руками, именно это и нужно узнать, было ли ручное вмешательство.
Скорее вопрос в том, что при работе робота закрывается сделка не роботом, а руками, именно это и нужно узнать, было ли ручное вмешательство.
Действительно, вопрос именно про закрытие. Мой косяк. Удаляю свой ответ, как нерелевантный.
Действительно, вопрос именно про закрытие. Мой косяк. Удаляю свой ответ, как нерелевантный.
Тогда всё-же вопрос остался открытый: можно-ли узнать как-нибудь, может костыльным способом. Как-то даже никогда об этом не задумывался, но сейчас стало интересно.
P.S. По принципу: отловить событие клика по терминалу, записать время в файл. Пробежать циклом по истории, и если время закрытия позиции равно (+-30сек.) времени записанному в файле, то было ручное закрытие.
Вопрос: как отловить событие клика в терминале?
Тогда всё-же вопрос остался открытый: можно-ли узнать как-нибудь, может костыльным способом. Как-то даже никогда об этом не задумывался, но сейчас стало интересно.
P.S. По принципу: отловить событие клика по терминалу, записать время в файл. Пробежать циклом по истории, и если время закрытия позиции равно (+-30сек.) времени записанному в файле, то было ручное закрытие.
Вопрос: как отловить событие клика в терминале?
Уже предложили решение: читать журнал экспертов. Это можно из советника делать.
Привет! Подскажите каким образом можно узнать как был закрыт ордер, вручную или программой?
Раз есть программа, которая может закрыть ордер, эта же программа может и записать факт этого закрытия в свой протокол на диске. По этому протоколу и будет видно, какие ордера закрыты программно, какие вручную.
Раз есть программа, которая может закрыть ордер, эта же программа может и записать факт этого закрытия в свой протокол на диске. По этому протоколу и будет видно, какие ордера закрыты программно, какие вручную.
А если открывает ордер один эксперт, а есть еще другой эксперт, который может закрыть ордер? При этом другой эксперт нет возможности доработать?
А если открывает ордер один эксперт, а есть еще другой эксперт, который может закрыть ордер? При этом другой эксперт нет возможности доработать?
О таких вещах не задумывался. Раз человек спросил "как", я и подумал, как сделать это программно. Если работает чужая программа, не создающая протокол своей работы, надо изворачиваться. На всякое "если" заранее ответить не получается.
О таких вещах не задумывался. Раз человек спросил "как", я и подумал, как сделать это программно. Если работает чужая программа, не создающая протокол своей работы, надо изворачиваться. На всякое "если" заранее ответить не получается.
Ну вот я и предложил универсальный вариант - смотреть журналы. Если программа закрывает ордер, то об этом будет запись в журнале "Эксперты". Если вручную закрытие, то в "Экспертах" нет записи. Если же нет записи в закладке "Журнал", то закрытие произошло на другом терминале, т. е. на текущем терминале этого вообще определить нельзя.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования