Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
revers45
220
revers45  

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

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

o_o
Модератор
24390
o_o  

revers45:

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

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


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

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

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

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

---

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

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

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

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

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

---

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

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

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

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

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

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

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

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

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

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

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

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

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

revers45
220
revers45  
Urain:

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

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

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

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

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