Определение способа закрытия ордера

 
Привет! Подскажите каким образом можно узнать как был закрыт ордер, вручную или программой?
 

Если анализировать только историю счета, то никак. Ну а если посмотреть журнал экспертов на том терминале (не счете, а именно терминале), где производилось закрытие, то там будет подобная запись. Таким образом, программно только средствами MQL4 не получится узнать.

 
Ihor Herasko:

Если анализировать только историю счета, то никак. Ну а если посмотреть журнал экспертов на том терминале (не счете, а именно терминале), где производилось закрытие, то там будет подобная запись. Таким образом, программно только средствами MQL4 не получится узнать.

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

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

 
Vitaly Muzichenko:

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

Действительно, вопрос именно про закрытие. Мой косяк. Удаляю свой ответ, как нерелевантный.

 
Stanislav Korotky:

Действительно, вопрос именно про закрытие. Мой косяк. Удаляю свой ответ, как нерелевантный.

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

P.S. По принципу: отловить событие клика по терминалу, записать время в файл. Пробежать циклом по истории, и если время закрытия позиции равно (+-30сек.) времени записанному в файле, то было ручное закрытие.

Вопрос: как отловить событие клика в терминале?

 
Vitaly Muzichenko:

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

P.S. По принципу: отловить событие клика по терминалу, записать время в файл. Пробежать циклом по истории, и если время закрытия позиции равно (+-30сек.) времени записанному в файле, то было ручное закрытие.

Вопрос: как отловить событие клика в терминале?

Уже предложили решение: читать журнал экспертов. Это можно из советника делать.

 
Maksim Neimerik:
Привет! Подскажите каким образом можно узнать как был закрыт ордер, вручную или программой?

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

 
Vladimir:

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


А если открывает ордер один эксперт, а есть еще другой эксперт, который может закрыть ордер? При этом другой эксперт нет возможности доработать?

 
Ihor Herasko:

А если открывает ордер один эксперт, а есть еще другой эксперт, который может закрыть ордер? При этом другой эксперт нет возможности доработать?

О таких вещах не задумывался. Раз человек спросил "как", я и подумал, как сделать это программно. Если работает чужая программа, не создающая протокол своей работы, надо изворачиваться. На всякое "если" заранее ответить не получается.

 
Vladimir:

О таких вещах не задумывался. Раз человек спросил "как", я и подумал, как сделать это программно. Если работает чужая программа, не создающая протокол своей работы, надо изворачиваться. На всякое "если" заранее ответить не получается.


Ну вот я и предложил универсальный вариант - смотреть журналы. Если программа закрывает ордер, то об этом будет запись в журнале "Эксперты". Если вручную закрытие, то в "Экспертах" нет записи. Если же нет записи в закладке "Журнал", то закрытие произошло на другом терминале, т. е. на текущем терминале этого вообще определить нельзя.