Как в MQL5 проследить за историей торговли

 

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

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

 

revers45:

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

https://www.mql5.com/ru/docs/constants/structures/mqltradetransaction


Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торговой транзакции
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торговой транзакции
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торговой транзакции - Документация по MQL5
 
Спасибо за ссылку, но документацию я смотрел, потому и спросил - как, в надежде на то что кто то имеет уже соответствующий опыт, поскольку в структурах и кодах я не смог определить однозначно, соответствующей комбинации сигналов.
А экспериментировать с этим на собственном опыте, методом проб и ошибок, согласитесь проблематично.
 
revers45:
Спасибо за ссылку, но документацию я смотрел, потому и спросил - как

я и ответил - так

https://www.mql5.com/ru/docs/constants/structures/mqltradetransaction

все вполне однозначно.

---

что вам неясно из показанной структуры события и кода примера ниже?

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торговой транзакции
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торговой транзакции
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торговой транзакции - Документация по MQL5
 
sergeev:

я и ответил - так

https://www.mql5.com/ru/docs/constants/structures/mqltradetransaction

все вполне однозначно.

---

что вам неясно из показанной структуры события и кода примера ниже?

Интересует например, в какой последовательности и сколько событий OnTrade и сколько(типа) OnTradeTransaction будет получено в результате удаления из истории одной сделки?
Только если точно не уверены и вам придется домысливать, то что конкретно не указано и\или уже указано в документации, то лучше не отвечайте, потому что я и сам придумаю)
 
revers45:
А экспериментировать с этим на собственном опыте, методом проб и ошибок, согласитесь проблематично.
А придется...
 
revers45:

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

Я бы не полагался на события терминала. Хотите все контролировать - ведите свою базу сделок и периодически сравнивайте ее с текущим списком из МТ.

Иначе любая пауза в работе (или потеря связи) сведет ваш контроль на нет. 

Документация по MQL5: Программы MQL5 / События клиентского терминала
Документация по MQL5: Программы MQL5 / События клиентского терминала
  • www.mql5.com
Программы MQL5 / События клиентского терминала - Документация по MQL5
 
komposter:

Я бы не полагался на события терминала. Хотите все контролировать - ведите свою базу сделок и периодически сравнивайте ее с текущим списком из МТ.

Иначе любая пауза в работе (или потеря связи) сведет ваш контроль на нет. 

Согласен с вами, что явный парсинг надежнее, но потребует ресурсы особенно если выполнять его часто. И это для того чтобы отловить, надеюсь достаточно редкое событие, и оперативно на него среагировать.
Возможно я сгущаю, т.к. пока с этим не сталкивался, но мне кажется что такое событие, при определенных условиях, может вызвать "цепную реакцию" в неттинговой модели, где отмена одного,допустим выполненного по не рыночной цене ордера, повлечет пересчет всей цепочки ордеров по данному инструменту - позиции, вплоть до открытых.
 
revers45:
Согласен с вами, что явный парсинг надежнее, но потребует ресурсы особенно если выполнять его часто. И это для того чтобы отловить, надеюсь достаточно редкое событие, и оперативно на него среагировать.
Возможно я сгущаю, т.к. пока с этим не сталкивался, но мне кажется что такое событие, при определенных условиях, может вызвать "цепную реакцию" в неттинговой модели, где отмена одного,допустим выполненного по не рыночной цене ордера, повлечет пересчет всей цепочки ордеров по данному инструменту - позиции, вплоть до открытых.

Ваша задача решается так: пишите неторгующий советник и ставите его на VPS.

Советник читает историю от последней даты в файле до текущего времени и делает дописывание в бин-файл состоящий из массива структур, последняя ячейка структуры заполняется лишь датой. Чтение-запись производится по торговому событию.

Далее читаете всю сторию (или участок нужной глубины) и идёт сравнивание истории сделок и лог файла, и если есть нестыковки то отправляете PUSH-уведомление или письмо на почту.

Можно на VPS не ставить, а запускать советник для проверки со своего компа раз в сутки при входе. Тогда и уведомления не нужны, можно просто в принты выводить. Но сделки отменённые в течение этих суток что прошли с последней синхронизации будут теряться(так вы фактически оставляете окно для чистки в сутки). Хотя если вы торгуете руками то можете закинуть сов на график в параллельную работу и спокойно торговать, выключив терминал будете спокойны что история всех ваших сделок залогирована.

 
Urain:

Ваша задача решается так: пишите неторгующий советник и ставите его на VPS.

Советник читает историю от последней даты в файле до текущего времени и делает дописывание в бин-файл состоящий из массива структур, последняя ячейка структуры заполняется лишь датой. Чтение-запись производится по торговому событию.

Далее читаете всю сторию (или участок нужной глубины) и идёт сравнивание истории сделок и лог файла, и если есть нестыковки то отправляете PUSH-уведомление или письмо на почту.

Можно на VPS не ставить, а запускать советник для проверки со своего компа раз в сутки при входе. Тогда и уведомления не нужны, можно просто в принты выводить. Но сделки отменённые в течение этих суток что прошли с последней синхронизации будут теряться(так вы фактически оставляете окно для чистки в сутки). Хотя если вы торгуете руками то можете закинуть сов на график в параллельную работу и спокойно торговать, выключив терминал будете спокойны что история всех ваших сделок залогирована.

Спасибо, но если делать своё хранилище торговой истории, то не бин файл, а стандартная база данных, чтобы обеспечить необходимую защиту, скорость доступа и средства восстановления, а это уже достаточно серьезная разработка.
Однако все эти данные уже хранятся в базе на сервере брокера и я надеялся, что благодаря поддержке событий в МТ5, имеется простое решение этой задачи, которое легко можно было бы внести, в качестве дополнительных возможностей любого советника.
 
А что брокер может менять историю сделок в терминале?)
Причина обращения: