Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я так понимаю, выбран тейк, чтобы для хеджа можно было отправлять 1 запрос тейка на сервер вместо 2-отдельного лимитника и CloseBy? А для неттинга это уже без разницы.
CloseBy-операция не является торговой, поэтому нет особой разницы.
На примере этой функции покажу особенность совместного использования MT5-style и MT4-style.
Учитывайте это, если работаете с HistorySelect+MT4Orders.
В нескольких местах происходит выбор ордера по позиции. С комментарием
// Во время перебора может измениться количество ордеров
поставлена проверка, что число ордеров может поменяться. Но, строго говоря, может быть ситуация, что число ордеров не поменялось, но сами ордера поменялись, типа 1 закрыт и 1 новый открыт. И тогда нумерация посреди дела может поползти. Такая ситуация за всё время использования ни разу не происходила? Отсутствие более строгих проверок - это баг или сознательное игнорирование маловероятной ситуации, чтобы чрезмерно не усложнять код? Или я что просмотрел, и тут нет ошибки?
В нескольких местах происходит выбор ордера по позиции. С комментарием
поставлена проверка, что число ордеров может поменяться. Но, строго говоря, может быть ситуация, что число ордеров не поменялось, но сами ордера поменялись, типа 1 закрыт и 1 новый открыт. И тогда нумерация посреди дела может поползти. Такая ситуация за всё время использования ни разу не происходила? Отсутствие более строгих проверок - это баг или сознательное игнорирование маловероятной ситуации, чтобы чрезмерно не усложнять код? Или я что просмотрел, и тут нет ошибки?
Не помню. Знаю только, что делал много стресс-тестов, чтобы проверить все ситуации.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2020.04.09 05:34
На хедже позиция может состоять из нескольких IN-сделок. Это происходит при частичном исполнении.
При этом ордер, что частично исполняется, меняет свой ORDER_TIME_SETUP(_MSC) на время исполнения первой (возможно, предпоследней) сделки. Т.е. по истории нельзя будет определить, когда, например, был выставлен BuyLimit.
Как следствие, позиция на хедже может иметь дробную цену открытия, как это часто можно наблюдать на неттинге.
В этой ситуации через MT4Orders OrderOpenPrice/OrderOpenTime такой MT4-позиции будут равны соответствующим значениям первой MT5-сделки.
Т.е. дробной цены открытия позиции не будет, к сожалению. Это редкая ситуация, но имеет место быть.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: MT4Orders
fxsaber, 2020.03.18 03:47
Реджект тейка.
Такая ситуация может возникать часто:
В таких ситуациях реджекта тейка, а также в случаях, когда тейк-ордер был исполнен частично, а затем отменен, MT4Orders эти MT5-ордера не показывает. И это правильно!
Последний релизный MT5 2361 с использованием MT4Orders, реал, хедж. Несколько советников, различаются магиками. Ситуация из одного из советников.
Был выставлен ордер на BUY, тикет 216684. Через некоторое время пришла пора закрыть позицию, был выставлен лимитник на SELL для закрытия и ещё лимитник на SELL на открытие обратной позиции, тикеты 216975 и 216978. Все ордера одинаковой лотности. Когда лимитник 216978 сработал, 216684 и 216978 были схлопнуты через CloseBy и остался только 216975.
Часть лога из Журнала
Часть лога из советника
Т.е. видно, что ордера было 3. Но в процессе схлопывания 2 из них и перехода в маркет 3-го список ордеров оказался пустой, хотя должен был остаться 1. Ситуация может привести к двойному открытию позиции.
Ордера получаю через следующий код
И так вставил проверку, вдруг изменилось число во время перечисления. Но, похоже, этого не хватает. Это баг, фича или я залез в недоделанную область?
список ордеров оказался пустой, хотя должен был остаться 1. Ситуация может привести к двойному открытию позиции.
Это баг MT5.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: MT4Orders
fxsaber, 2019.11.19 07:26
Ветка большая, ниже список постов, представляющих интерес.
https://www.mql5.com/ru/forum/93352/page11#comment_4071950
ЗЫ
Это баг MT5.
А в историю ордер попадает? Явно не хватает помимо PositionsTotal, OrdersTotal распринтовки HistoryOrdersTotal. Если оно меняется и последний ордер был исполнен, значит нужно ждать изменения позиции. В любом случае дело идет к тому, что нужно иметь копию окружения и сверяться с ней, придерживаясь правила, что если где-то убудет/прибудет, то в другом месте наоборот прибудет/убудет.
А в историю ордер попадает?
Попадает, но не сразу.
Явно не хватает помимо PositionsTotal, OrdersTotal распринтовки HistoryOrdersTotal. Если оно меняется и последний ордер был исполнен, значит нужно ждать изменения позиции. В любом случае дело идет к тому, что нужно иметь копию окружения и сверяться с ней, придерживаясь правила, что если где-то убудет/прибудет, то в другом месте наоборот прибудет/убудет.
Да, только через копию.