Новая версия платформы MetaTrader 5 build 2360: Расширение интеграции с SQLite - страница 21
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Последняя релизная версия MT5 2361.
Очень неприятный косяк с потерей позиций, порой приводит к невозможности узнать, сколько позиций открыто, что ведёт к двойному открытию.
Как это выглядит внешне:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Библиотеки: MT4Orders
traveller00, 2020.04.15 09:44
Последний релизный MT5 2361 с использованием MT4Orders, реал, хедж. Несколько советников, различаются магиками. Ситуация из одного из советников.
Был выставлен ордер на BUY, тикет 216684. Через некоторое время пришла пора закрыть позицию, был выставлен лимитник на SELL для закрытия и ещё лимитник на SELL на открытие обратной позиции, тикеты 216975 и 216978. Все ордера одинаковой лотности. Когда лимитник 216978 сработал, 216684 и 216978 были схлопнуты через CloseBy и остался только 216975.
Часть лога из Журнала
Часть лога из советника
Т.е. видно, что ордера было 3. Но в процессе схлопывания 2 из них и перехода в маркет 3-го список ордеров оказался пустой, хотя должен был остаться 1. Ситуация может привести к двойному открытию позиции.
Ордера получаю через следующий код
И так вставил проверку, вдруг изменилось число во время перечисления. Но, похоже, этого не хватает.
Описание ситуации изнутри
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Непонятная ситуация при срабатывании отложенных ордеров.
fxsaber, 2018.11.26 13:37
Еще бывает такая ситуация:
Например, нет ни позиций, ни ордеров - PositionsTotal = 0, OrdersTotal = 0.
Выставляете маркет-ордер. При этом PositionsTotal = 0, OrdersTotal = 1.
Маркет-ордер исполнился - OrdersTotal = 0. Но PositionsTotal = 0!
всегда так МТ работал с принтами - "проглатывает" часть принтов если было много вывода на одном тике
можно паузу Sleep() поставить между итерациями цикла в Вашем коде
ну или смотрите в самом файле лога через правую КМ открыть, в файле пропусков принтов пока никто не замечал
В посте приведена часть лога именно из файла. Вопрос не в пропуске в логе. Вопрос в том, что вызван один Print из советника. Я ожидаю, что он одной пачкой и будет в логе/файле. Но он прерывается другими Print-ами, разделить потом такую кучу становится трудно.
Очень неприятный косяк с потерей позиций, порой приводит к невозможности узнать, сколько позиций открыто, что ведёт к двойному открытию.
Вряд ли это будет исправлено в ближайший год. Нужно писать свой обход.
Почему здесь отсутствует галка по-умолчанию?
В заголовке чарта сделали показ тикера и описания в одну строку.
Места хватило.
Почему здесь отсутствует галка по-умолчанию?
Риск малый для тех, кто использует это апи
С многострочным принтом разберемся
Спасибо.
Последняя релизная версия MT5 2361.
Очень неприятный косяк с потерей позиций, порой приводит к невозможности узнать, сколько позиций открыто, что ведёт к двойному открытию.
Как это выглядит внешне:
Описание ситуации изнутри
Проверим, но причина в асинхронности транзакций.
Вы сначала получаете подтверждение сделки, а затем транзакцию изменения позиции. Это две разные последовательно приходящие транзакции.
Даже если между ними микросекунда, а вы сразу же проверяете позицию, то есть вероятность влезть между этими событиями. Плюс не забывайте про сетевую задержку.
Обходной путь - перепроверять позицию несколько раз, если вы сразу же анализируете позиции.
Проверим, но причина в асинхронности транзакций.
Вы сначала получаете подтверждение сделки, а затем транзакцию изменения позиции. Это две разные последовательно приходящие транзакции.
Даже если между ними микросекунда, а вы сразу же проверяете позицию, то есть вероятность влезть между этими событиями. Плюс не забывайте про сетевую задержку.
Обходной путь - перепроверять позицию несколько раз, если вы сразу же анализируете позиции.
В момент активации отложенного ордера такой код с завидной регулярностью печатает количество ордеров 0. В чём может быть проблема? Похожая на потерю позиции, о которой Вы говорите, или я что-то не так делаю?