На самом деле это не ошибка, это ошибочный дизайн. Проблема в том, что маржа рассчитывается на уровне свойств аккаунта, тогда как она должна быть на уровне свойств символа.
Знаковое обновление библиотеки! Единственная библиотека в мире, умеющая нивелировать постоянно возникающие в MT5 рассинхронизации торгового окружения. Нескромно, но факт.
После данного обновления было сделано несколько тысяч сделок на реальных счетах у разных брокеров. Анализ показал идеальную работу механизма синхронизации.
Рекомендую его задействовать. Сделайте свои продукты еще более надежными.
// Список изменений:// 01.06.2021// Fix: Совместимость с компилятором b2449+.// Fix: Улучшена синхронизация. ByPass.mqh должен быть последней версии.// Add: OrderLots(true) - синхронизированный размер выбранной позиции с учетом всех закрывающих ее ордеров.
// Решение задачи https://www.mql5.com/ru/forum/368178/page27#comment_22565676#define MT4ORDERS_BYPASS_MAXTIME 1000000// Максимальное время (в мкс.) на ожидание синхронизации торгового окружения#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006#define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)
voidOnStart()
{
const TICKET_TYPE Ticket = OrderSend(_Symbol, OP_BUY, 1, Ask, 0, 0, 0);
MT4ORDERS::OrderSend_MaxPause = 0;
// А теперь просто закрываем 0.1 лота в случае, если объем позиции равен 1.// Цикл - для эмуляции запуска скрипта в любой момент.while (!IsStopped() && OrderSelect(Ticket, SELECT_BY_TICKET) && (OrderLots(true) == 1))
OrderClose(OrderTicket(), 0.1, OrderClosePrice(), 0);
}
По моей просьбе MetaQutoes полностью локализовала последнее обновление библиотеки на английский язык. Последняя сборка библиотеки теперь доступна на англоязычной странице с комментариями в исходном коде, переведенными на английский язык.
Это отличается от предыдущей версии, которая была доступна на англоязычной странице.
// Список изменений:// 02.11.2018// Исправление: теперь цена открытия позиции в MT4 не может быть нулевой до ее срабатывания.// Исправление: учтены некоторые редкие аспекты исполнения некоторых торговых серверов.// 26.11.2018// Исправление: Магия и комментарий закрытой позиции MT4: Приоритет соответствующих полей для открывающихся сделок выше, чем для закрывающихся.// Исправление: Редкие изменения в MT5-OrdersTotal и MT5-PositionsTotal учитываются при расчете MT4-OrdersTotal и MT4-OrderSelect.// Исправление: Библиотека не учитывает ордера, которые открыли позицию, но еще не были удалены из MT5.// 17.01.2019// Исправление: Исправлена досадная ошибка при выборе отложенных ордеров.// 08.02.2019// Добавить: Комментарий позиции сохраняется при частичном закрытии через OrderClose.// Если вам нужно изменить комментарий к открытой позиции при частичном закрытии, вы можете указать его в OrderClose.// 20.02.2019// Исправление: В случае отсутствия ордера MT5, библиотека будет ожидать синхронизации истории от существующей транзакции MT5. В случае неудачи она сообщит об этом.// 13.03.2019// Добавить: Добавлена функция OrderTicketID() - идентификатор позиции сделки MT5 или позиции MT5, а также тикета отложенного ордера MT4.// Добавить: SELECT_BY_TICKET работает для всех тикетов MT5 (и MT5-PositionID).// 02.11.2019// Исправление: Исправлены лот, комиссия и цена закрытия для позиций CloseBy.// 12.01.2020// Исправление: OrderTicketID() для сделок с балансом теперь возвращает корректное значение.// Исправление: Исправлен SELECT_BY_TICKET - выбор по OrderTicketID() (MT5-PositionID).// Исправление: Изменено название метода внутренней библиотеки для большей совместимости с макросами.// 10.04.2020// Исправление: Частично исполненный живой отложенный ордер не попадал в OrdersTotal().// 09.06.2020// Добавить: StopLoss/TakeProfit/ClosePriceRequest для закрытых позиций теперь лучше определены.// 10.06.2020// Добавить: Добавлены миллисекунды, удалено округление цены и ордера в OrderPrint().// 13.08.2020// Добавить: Добавлена возможность проверки работоспособности частей библиотеки с помощью макроса MT4ORDERS_BENCHMARK_MINTIME.// 20.08.2020// Фикс: Учет выявленных особенностей выполнения частичных заказов.// 29.08.2020// Исправление: Реализована более быстрая работа с историей сделок.// 24.09.2020// Добавить: Если вам нужно повысить приоритет ордера MT5 над позицией MT5 при выборе живого ордера MT4 по SELECT_BY_TICKET (те же самые билеты),// это можно сделать, изменив размер билета на отрицательный: OrderSelect(-Ticket, SELECT_BY_TICKET).// Добавить: Если вам нужно указать выбор только MT5-ордера при модификации живого MT4-ордера (те же тикеты),// это можно сделать, изменив размер билета на отрицательный: OrderModify(-Ticket, ...).// Добавить: OrderSelect(INT_MAX, SELECT_BY_POS) - переключение на позицию MT5 без проверки существования и обновления.// OrderSelect(INT_MIN, SELECT_BY_POS) - переключение на живой ордер MT5 без проверки существования и обновления.// Исправление: Реализована более быстрая работа с историей сделок.// 30.09.2020// Исправление: Реализована более быстрая работа с историей сделок.// 08.10.2020// Исправление: ОрдерОтправка рыночного ордера могла выполняться дольше из-за недостатка в свежем поиске сделок в MT5.// 21.10.2020// Добавить: Для обеспечения совместимости с MT4 добавлена функция OrderTicketID() - возвращает OrderTicket().// 11.11.2020// Исправление: OrderTicketID() и OrderTicketOpen() возвращают тип значения, указанный в TICKET_TYPE.// 06.12.2020// Исправление: Теперь учитываются случаи некорректных записей об исполнении SL/TP в истории торговли MT5.// Добавить: Рынок MT4ORDERS_TESTER_SELECT_BY_TICKET заставляет SELECT_BY_TICKET работать в тестере только через OrderTicketID().// 04.05.2021// Исправление: Ордера MT5, которые открывают позиции и не исчезают, больше не добавляются в список ордеров MT4.// Исправление: Ордера CloseBy MT5 больше не отображаются в списке ордеров MT4.// 12.05.2021// Добавить: Макрос MT4ORDERS_BYPASS_MAXTIME изменяет постоянно возникающие случаи рассинхронизации торговых сред в MT5.// 13.05.2021// Исправление: Исправлена ошибка в функции OrderOpenReason().// 14.05.2021// Исправление: механизм BYPASS больше не влияет на OrderSelect(INT_MAX, SELECT_BY_POS) и OrderSelect(INT_MIN, SELECT_BY_POS).// 01.06.2021// Исправление: Совместимость с компилятором сборки 2449 и выше.// Исправление: Улучшена синхронизация. ByPass.mqh должен быть последней версии.// Add: OrderLots(true) - синхронизированный размер выбранной позиции, учитывающий все ордера, которые закрывают эту позицию.
Я рекомендую использовать последнюю версию вместе с механизмом синхронизации. Тогда все проблемы, которые не может решить ни одна торговая библиотека, будут незаметны.
#define MT4ORDERS_BYPASS_MAXTIME 1000000// Максимальное время (в микросекундах) ожидания синхронизации торговой среды#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006
Для того чтобы этот механизм заработал, необходимо скачать эту библиотеку. Все сложные и эффективные проверки корректности работы торговой среды будут выполняться автоматически, не отвлекая пользователя при написании торговой логики.
По моей просьбе MetaQutoes полностью локализовала последнее обновление библиотеки на английский язык. Последняя сборка библиотеки теперь доступна на Последняя сборка библиотеки теперь доступна на английской странице с комментариями в исходном коде, переведенными на английский язык.
Последняя сборка библиотеки теперь доступна на английской странице с комментариями в исходном коде, переведенными на английский язык.
// Список изменений.// 02.11.2018// Исправление: теперь цена открытия позиции в MT4 не может быть нулевой до ее срабатывания.// Исправление: учтены некоторые редкие аспекты исполнения некоторых торговых серверов.// 26.11.2018// Исправление: Магия и комментарий закрытой позиции MT4: Приоритет соответствующих полей открывающих сделок выше, чем закрывающих. Приоритет соответствующих полей открываемых сделок выше, чем закрываемых.// Исправление: Редкие изменения в MT5-OrdersTotal и MT5-PositionsTotal учитываются при расчете MT4-OrdersTotal и MT4-OrdersTotal. OrderSelect.// Исправление: Библиотека не учитывала ордера, которые открыли позицию, но еще не были удалены из MT5.// 17.01.2019// Исправление: Исправлена досадная ошибка при выборе отложенных ордеров.// 08.02.2019// Добавление: Комментарий позиции сохраняется при частичном закрытии через OrderClose.// Если вам нужно изменить комментарий к открытой позиции при частичном закрытии, вы можете указать его в OrderClose.// 20.02.2019// Исправление: В случае отсутствия ордера MT5, библиотека будет ожидать синхронизации истории от существующей транзакции MT5. В случае неудачи, она сообщит об этом.// 13.03.2019// Добавление: Добавлена функция OrderTicketID() - идентификатор позиции сделки MT5 или позиции MT5, а также тикет отложенного ордера MT4.// Добавьте: SELECT_BY_TICKET работает для всех тикетов MT5 (и MT5-PositionID).// 02.11.2019// Исправление: исправлены лот, комиссия и цена закрытия для позиций CloseBy.// 12.01.2020// Исправление: OrderTicketID() для балансовых сделок теперь возвращает корректное значение.// Исправление: Исправлен SELECT_BY_TICKET - выбор по OrderTicketID() (MT5-PositionID).// Исправление: изменено название метода внутренней библиотеки для большей совместимости с макросами.// 10.04.2020// Исправление: частично исполненный живой отложенный ордер не попадал в OrdersTotal().// 09.06.2020// Добавление: StopLoss/TakeProfit/ClosePriceRequest для закрытых позиций теперь лучше определены.// 10.06.2020// Добавление: Добавлены миллисекунды, удалено округление цены и ордера в OrderPrint().// 13.08.2020// Добавление: Добавлена возможность проверки работоспособности частей библиотеки с помощью макроса MT4ORDERS_BENCHMARK_MINTIME.// 20.08.2020// Фикс: Учет выявленных особенностей выполнения частичных заказов.// 29.08.2020// Исправление: Реализована более быстрая работа с историей сделок.// 24.09.2020// Добавление: Если вам нужно повысить приоритет ордера МТ5 над позицией МТ5 при выборе живого ордера МТ4 с помощью SELECT_BY_TICKET (те же самые билеты), то// это можно сделать, изменив размер билета на отрицательный: OrderSelect(-Ticket, SELECT_BY_ TICKET).// Добавить: Если вам нужно указать выбор только MT5-ордера при модификации живого MT4-ордера (те же тикеты), то вы можете добавить MT5-ордер к MT5-ордеру.// это можно сделать, изменив размер билета на отрицательный: OrderModify(-Ticket, ...) .// Добавляем: OrderSelect(INT_MAX, SELECT_BY_POS) - переключение на позицию MT5 без проверки существования и обновления.// OrderSelect(INT_MIN, SELECT_BY_POS) - переключение на живой ордер MT5 без проверки существования и обновления. существование и обновление.// Исправление: Реализована более быстрая работа с историей сделок.// 30.09.2020// Исправление: Реализована более быстрая работа с историей сделок.// 08.10.2020// Исправление: OrderSend рыночного ордера мог выполняться дольше из-за недостатка в свежем поиске сделок в MT5.// 21.10.2020// Добавление: Для обеспечения совместимости с MT4 добавлена функция OrderTicketID() - возвращает OrderTicket().// 11.11.2020// Исправление: OrderTicketID() и OrderTicketOpen() возвращают тип значения, указанный в TICKET_TYPE.// 06.12.2020// Исправление: Теперь учитываются случаи некорректных записей об исполнении SL/TP в истории торговли MT5.// Добавление: Рынок MT4ORDERS_TESTER_SELECT_BY_TICKET заставляет SELECT_BY_TICKET работать в тестере только через OrderTicketID().// 04.05.2021// Исправление: Ордера MT5, которые открывают позиции и не исчезают, больше не добавляются в список ордеров MT4.// Исправление: ордера CloseBy MT5 больше не отображались в списке ордеров MT4.// 12.05.2021// Добавить: Макрос MT4ORDERS_BYPASS_MAXTIME изменяет постоянно возникающие случаи рассинхронизации торговой среды в MT5.// 13.05.2021// Исправление: Исправлена ошибка в функции OrderOpenReason().// 14.05.2021// Исправление: механизм BYPASS больше не влияет на OrderSelect(INT_MAX, SELECT_BY_POS) и OrderSelect(INT_MIN, SELECT_BY_POS).// 01.06.2021// Исправление: Совместимость с компилятором сборки 2449 и выше.// Исправление: Улучшена синхронизация. ByPass.mqh должен быть последней версии.// Добавляем: OrderLots(true) - синхронизированный размер выбранной позиции, учитывающий все ордера, которые закрывают эту позицию.
Я рекомендую использовать последнюю версию вместе с механизмом синхронизации. Тогда все проблемы, которые не может решить ни одна другая торговая библиотека, будут Тогда все проблемы, которые не может решить ни одна другая торговая библиотека, будут незаметны.
#define MT4ORDERS_BYPASS_MAXTIME 1000000// Максимальное время (в микросекундах) ожидания синхронизации торговой среды#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006
Чтобы этот механизм работал, необходимо скачать эту библиотеку. Все сложные и эффективные проверки корректности работы торговой среды будут выполняться автоматически, не отвлекая пользователя, когда торговая среда не работает. Все сложные и эффективные проверки корректности работы торговой среды будут выполняться автоматически, не отвлекая пользователя при написании торговой логики.
По моей просьбе MetaQutoes полностью локализовала последнее обновление библиотеки на английский язык. Последняя сборка библиотеки теперь доступна на английской странице с комментариями в исходном коде, переведенными на английский язык.
Это отличается от предыдущей версии, которая была доступна на англоязычной странице.
// Список изменений:// 02.11.2018// Исправление: теперь цена открытия позиции в MT4 не может быть нулевой до ее срабатывания.// Исправление: учтены некоторые редкие аспекты исполнения некоторых торговых серверов.// 26.11.2018// Исправление: Магия и комментарий закрытой позиции MT4: приоритет соответствующих полей для открывающих сделок выше, чем для закрывающих.// Исправление: редкие изменения в MT5-OrdersTotal и MT5-PositionsTotal учитываются при расчете MT4-OrdersTotal и MT4-OrderSelect.// Исправление: Библиотека не учитывала ордера, которые открыли позицию, но еще не были удалены из MT5.// 17.01.2019// Исправление: Исправлена досадная ошибка при выборе отложенных ордеров.// 08.02.2019// Добавление: Комментарий позиции сохраняется при частичном закрытии через OrderClose.// Если вам нужно изменить комментарий к открытой позиции при частичном закрытии, вы можете указать его в OrderClose.// 20.02.2019// Исправление: В случае отсутствия ордера MT5, библиотека будет ожидать синхронизации истории от существующей транзакции MT5. В случае неудачи она сообщит об этом.// 13.03.2019// Добавление: Добавлена функция OrderTicketID() - идентификатор позиции сделки MT5 или позиции MT5, а также тикет отложенного ордера MT4.// Добавьте: SELECT_BY_TICKET работает для всех тикетов MT5 (и MT5-PositionID).// 02.11.2019// Исправление: исправлены лот, комиссия и цена закрытия для позиций CloseBy.// 12.01.2020// Исправление: OrderTicketID() для балансовых сделок теперь возвращает корректное значение.// Исправление: Исправлен SELECT_BY_TICKET - выбор по OrderTicketID() (MT5-PositionID).// Исправление: изменено название метода внутренней библиотеки для большей совместимости с макросами.// 10.04.2020// Исправление: частично исполненный живой отложенный ордер не попадал в OrdersTotal().// 09.06.2020// Добавление: StopLoss/TakeProfit/ClosePriceRequest для закрытых позиций теперь лучше определены.// 10.06.2020// Добавление: Добавлены миллисекунды, удалено округление цены и ордера в OrderPrint().// 13.08.2020// Добавление: Добавлена возможность проверки работоспособности частей библиотеки с помощью макроса MT4ORDERS_BENCHMARK_MINTIME.// 20.08.2020// Фикс: Учет выявленных особенностей выполнения частичных заказов.// 29.08.2020// Исправление: Реализована более быстрая работа с историей сделок.// 24.09.2020// Добавить: Если вам нужно увеличить приоритет ордера MT5 над позицией MT5 при выборе ордера MT4 по SELECT_BY_TICKET (те же самые билеты),// это можно сделать, изменив размер билета на отрицательный: OrderSelect(-Ticket, SELECT_BY_TICKET).// Добавить: Если вам нужно указать выбор только MT5-ордера при модификации живого MT4-ордера (те же тикеты),// это можно сделать, изменив размер билета на отрицательный: OrderModify(-Ticket, ...).// Добавляем: OrderSelect(INT_MAX, SELECT_BY_POS) - переключение на позицию MT5 без проверки существования и обновления.// OrderSelect(INT_MIN, SELECT_BY_POS) - переключение на живой ордер MT5 без проверки существования и обновления.// Исправление: Реализована более быстрая работа с историей сделок.// 30.09.2020// Исправление: Реализована более быстрая работа с историей сделок.// 08.10.2020// Исправление: OrderSend рыночного ордера мог выполняться дольше из-за недостатка в свежем поиске сделок в MT5.// 21.10.2020// Добавление: Для обеспечения совместимости с MT4 добавлена функция OrderTicketID() - возвращает OrderTicket().// 11.11.2020// Исправление: OrderTicketID() и OrderTicketOpen() возвращают тип значения, указанный в TICKET_TYPE.// 06.12.2020// Исправление: Теперь учитываются случаи некорректных записей об исполнении SL/TP в истории торговли MT5.// Добавление: Рынок MT4ORDERS_TESTER_SELECT_BY_TICKET заставляет SELECT_BY_TICKET работать в тестере только через OrderTicketID().// 04.05.2021// Исправление: Ордера MT5, которые открывают позиции и не исчезают, больше не добавляются в список ордеров MT4.// Исправление: ордера CloseBy MT5 больше не отображались в списке ордеров MT4.// 12.05.2021// Добавить: Макрос MT4ORDERS_BYPASS_MAXTIME изменяет постоянно возникающие случаи рассинхронизации торговой среды в MT5.// 13.05.2021// Исправление: Исправлена ошибка в функции OrderOpenReason().// 14.05.2021// Исправление: механизм BYPASS больше не влияет на OrderSelect(INT_MAX, SELECT_BY_POS) и OrderSelect(INT_MIN, SELECT_BY_POS).// 01.06.2021// Исправление: Совместимость с компилятором сборки 2449 и выше.// Исправление: Улучшена синхронизация. ByPass.mqh должен быть последней версии.// Добавляем: OrderLots(true) - синхронизированный размер выбранной позиции, учитывающий все ордера, которые закрывают эту позицию.
Я рекомендую использовать последнюю версию вместе с механизмом синхронизации. Тогда все проблемы, которые не может решить ни одна торговая библиотека, будут незаметны.
#define MT4ORDERS_BYPASS_MAXTIME 1000000// Максимальное время (в микросекундах) ожидания синхронизации торговой среды#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006
Для того чтобы этот механизм заработал, необходимо скачать эту библиотеку. Все сложные и эффективные проверки корректности работы торговой среды будут выполняться автоматически, не отвлекая пользователя при написании торговой логики.
По моей просьбе MetaQutoes полностью локализовала последнее обновление библиотеки на английский язык. Последняя сборка библиотеки теперь доступна на английской странице с комментариями в исходном коде, переведенными на английский язык.
Это отличается от предыдущей версии, которая была доступна на англоязычной странице.
// Список изменений:// 02.11.2018// Исправление: теперь цена открытия позиции в MT4 не может быть нулевой до ее срабатывания.// Исправление: учтены некоторые редкие аспекты исполнения некоторых торговых серверов.// 26.11.2018// Исправление: Магия и комментарий закрытой позиции MT4: приоритет соответствующих полей для открывающих сделок выше, чем для закрывающих.// Исправление: редкие изменения в MT5-OrdersTotal и MT5-PositionsTotal учитываются при расчете MT4-OrdersTotal и MT4-OrderSelect.// Исправление: Библиотека не учитывала ордера, которые открыли позицию, но еще не были удалены из MT5.// 17.01.2019// Исправление: Исправлена досадная ошибка при выборе отложенных ордеров.// 08.02.2019// Добавление: Комментарий позиции сохраняется при частичном закрытии через OrderClose.// Если вам нужно изменить комментарий к открытой позиции при частичном закрытии, вы можете указать его в OrderClose.// 20.02.2019// Исправление: В случае отсутствия ордера MT5, библиотека будет ожидать синхронизации истории от существующей транзакции MT5. В случае неудачи она сообщит об этом.// 13.03.2019// Добавление: Добавлена функция OrderTicketID() - идентификатор позиции сделки MT5 или позиции MT5, а также тикет отложенного ордера MT4.// Добавьте: SELECT_BY_TICKET работает для всех тикетов MT5 (и MT5-PositionID).// 02.11.2019// Исправление: исправлены лот, комиссия и цена закрытия для позиций CloseBy.// 12.01.2020// Исправление: OrderTicketID() для сделок с балансом теперь возвращает корректное значение.// Исправление: Исправлен SELECT_BY_TICKET - выбор по OrderTicketID() (MT5-PositionID).// Исправление: изменено название метода внутренней библиотеки для большей совместимости с макросами.// 10.04.2020// Исправление: частично исполненный живой отложенный ордер не попадал в OrdersTotal().// 09.06.2020// Добавление: StopLoss/TakeProfit/ClosePriceRequest для закрытых позиций теперь лучше определены.// 10.06.2020// Добавление: Добавлены миллисекунды, удалено округление цены и ордера в OrderPrint().// 13.08.2020// Добавление: Добавлена возможность проверки работоспособности частей библиотеки с помощью макроса MT4ORDERS_BENCHMARK_MINTIME.// 20.08.2020// Фикс: Учет выявленных особенностей выполнения частичных заказов.// 29.08.2020// Исправление: Реализована более быстрая работа с историей сделок.// 24.09.2020// Добавить: Если вам нужно увеличить приоритет ордера MT5 над позицией MT5 при выборе ордера MT4 по SELECT_BY_TICKET (те же самые билеты),// это можно сделать, изменив размер билета на отрицательный: OrderSelect(-Ticket, SELECT_BY_TICKET).// Добавить: Если вам нужно указать выбор только MT5-ордера при модификации живого MT4-ордера (те же тикеты),// это можно сделать, изменив размер билета на отрицательный: OrderModify(-Ticket, ...).// Добавляем: OrderSelect(INT_MAX, SELECT_BY_POS) - переключение на позицию MT5 без проверки существования и обновления.// OrderSelect(INT_MIN, SELECT_BY_POS) - переключение на живой ордер MT5 без проверки существования и обновления.// Исправление: Реализована более быстрая работа с историей сделок.// 30.09.2020// Исправление: Реализована более быстрая работа с историей сделок.// 08.10.2020// Исправление: OrderSend рыночного ордера мог выполняться дольше из-за недостатка в свежем поиске сделок в MT5.// 21.10.2020// Добавление: Для обеспечения совместимости с MT4 добавлена функция OrderTicketID() - возвращает OrderTicket().// 11.11.2020// Исправление: OrderTicketID() и OrderTicketOpen() возвращают тип значения, указанный в TICKET_TYPE.// 06.12.2020// Исправление: Теперь учитываются случаи некорректных записей об исполнении SL/TP в истории торговли MT5.// Добавление: Рынок MT4ORDERS_TESTER_SELECT_BY_TICKET заставляет SELECT_BY_TICKET работать в тестере только через OrderTicketID().// 04.05.2021// Исправление: Ордера MT5, которые открывают позиции и не исчезают, больше не добавляются в список ордеров MT4.// Исправление: ордера CloseBy MT5 больше не отображались в списке ордеров MT4.// 12.05.2021// Добавить: Макрос MT4ORDERS_BYPASS_MAXTIME изменяет постоянно возникающие случаи рассинхронизации торговых сред в MT5.// 13.05.2021// Исправление: Исправлена ошибка в функции OrderOpenReason().// 14.05.2021// Исправление: механизм BYPASS больше не влияет на OrderSelect(INT_MAX, SELECT_BY_POS) и OrderSelect(INT_MIN, SELECT_BY_POS).// 01.06.2021// Исправление: Совместимость с компилятором сборки 2449 и выше.// Исправление: улучшена синхронизация. ByPass.mqh должен быть последней версии.// Добавляем: OrderLots(true) - синхронизированный размер выбранной позиции, учитывающий все ордера, которые закрывают эту позицию.
Я рекомендую использовать последнюю версию вместе с механизмом синхронизации. Тогда все проблемы, которые не может решить ни одна торговая библиотека, будут незаметны.
#define MT4ORDERS_BYPASS_MAXTIME 1000000// Максимальное время (в микросекундах) ожидания синхронизации торговой среды#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006
Чтобы механизм заработал, необходимо скачать эту библиотеку. Все сложные и эффективные проверки корректности работы торговой среды будут выполняться автоматически, не отвлекая пользователя при написании торговой логики.
По моей просьбе MetaQutoes полностью локализовала последнее обновление библиотеки на английский язык. Последняя сборка библиотеки теперь доступна на английской странице с комментариями в исходном коде, переведенными на английский язык.
Отличие от предыдущей версии, которая была доступна на англоязычной странице.
// Список изменений:.// 02.11.2018// Исправление: теперь цена открытия позиции в MT4 не может быть нулевой до ее срабатывания.// Исправление: учтены некоторые редкие аспекты исполнения некоторых торговых серверов.// 26.11.2018// Fix: Magic and comment of a closed MT4 position: Priority of relevant fields of opening transactions is higher than that of closing ones. Fix: Magic and comment of a closed MT4 position: Priority of the relevant fields of opening transactions is higher than that of closing// Исправление: Редкие изменения в MT5-OrdersTotal и MT5-PositionsTotal учитываются при расчете MT4-OrdersTotal и MT4- OrderSelect.// Исправление: Библиотека не учитывала ордера, которые открыли позицию, но еще не были удалены из MT5.// 17.01.2019// Исправление: Исправлена досадная ошибка при выборе отложенных ордеров.// 08.02.2019// Добавление: Комментарий позиции сохраняется при частичном закрытии через OrderClose.// Если вам нужно изменить комментарий к открытой позиции при частичном закрытии, вы можете указать его в OrderClose.// 20.02.2019// Исправление: в случае отсутствия ордера MT5, библиотека будет ожидать синхронизации истории от существующей сделки MT5. Исправление: в случае отсутствия ордера MT5 библиотека будет ожидать синхронизации истории от существующей сделки MT5.// 13.03.2019// Добавление: Добавлена функция OrderTicketID() - идентификатор позиции сделки MT5 или позиции MT5, а также тикет отложенного ордера MT4.// Добавьте: SELECT_BY_TICKET работает для всех тикетов MT5 (и MT5-PositionID).// 02.11.2019// Исправление: исправлены лот, комиссия и цена закрытия для позиций CloseBy.// 12.01.2020// Исправление: OrderTicketID() для балансовых сделок теперь возвращает корректное значение.// Исправление: Исправлен SELECT_BY_TICKET - выбор по OrderTicketID() (MT5-PositionID).// Исправление: изменено название метода внутренней библиотеки для большей совместимости с макросами.// 10.04.2020// Исправление: частично исполненный живой отложенный ордер не попадал в OrdersTotal().// 09.06.2020// Добавление: StopLoss/TakeProfit/ClosePriceRequest для закрытых позиций теперь лучше определен.// 10.06.2020// Добавление: Добавлены миллисекунды, удалено округление цены и ордера в OrderPrint().// 13.08.2020// Добавление: Добавлена возможность проверки работоспособности частей библиотеки с помощью макроса MT4ORDERS_BENCHMARK_MINTIME.// 20.08.2020// Фикс: Учет выявленных особенностей выполнения частичных заказов.// 29.08.2020// Исправление: Реализована более быстрая работа с историей сделок.// 24.09.2020// Добавить: Если необходимо увеличить приоритет ордера МТ5 над позицией МТ5 при выборе ордера МТ4 по SELECT_BY_TICKET (те же самые билеты), // Добавить: Если необходимо увеличить приоритет ордера МТ5 над// это можно сделать, изменив размер билета на отрицательный: OrderSelect(-Ticket, SELECT_BY_ TICKET).// Добавить: Если вам нужно указать выбор только MT5-ордера при модификации живого MT4-ордера (те же тикеты), вы можете использовать следующие опции.// это можно сделать, изменив размер билета на отрицательный: OrderModify(-Ticket, ...) .// Добавляем: OrderSelect(INT_MAX, SELECT_BY_POS) - переключение на позицию MT5 без проверки существования и обновления.// OrderSelect(INT_MIN, SELECT_BY_POS) - переключение на живой ордер MT5 без проверки существования и обновления.// Исправление: Реализована более быстрая работа с историей сделок.// 30.09.2020// Исправление: Реализована более быстрая работа с историей сделок.// 08.10.2020// Исправление: OrderSend рыночного ордера мог выполняться дольше из-за недостатка в свежем поиске сделок в MT5.// 21.10.2020// Добавление: Для обеспечения совместимости с MT4 добавлена функция OrderTicketID() - возвращает OrderTicket().// 11.11.2020// Исправление: OrderTicketID() и OrderTicketOpen() возвращают тип значения, указанный в TICKET_TYPE.// 06.12.2020// Исправление: Теперь учитываются случаи некорректных записей об исполнении SL/TP в истории торговли MT5.// Добавление: Рынок MT4ORDERS_TESTER_SELECT_BY_TICKET заставляет SELECT_BY_TICKET работать в тестере только через OrderTicketID().// 04.05.2021// Исправление: Ордера MT5, которые открывают позиции и не исчезают, больше не добавляются в список ордеров MT4.// Исправление: ордера CloseBy MT5 больше не отображались в списке ордеров MT4.// 12.05.2021// Добавить: Макрос MT4ORDERS_BYPASS_MAXTIME изменяет постоянно возникающие случаи рассинхронизации торговых сред в MT5.// 13.05.2021// Исправление: Исправлена ошибка в функции OrderOpenReason().// 14.05.2021// Исправление: механизм BYPASS больше не влияет на OrderSelect(INT_MAX, SELECT_BY_POS) и OrderSelect(INT_MIN, SELECT_BY_POS).// 01.06.2021// Исправление: совместимость с компилятором сборки 2449 и выше.// Исправление: Улучшена синхронизация. ByPass.mqh должен быть последней версии.// Добавляем: OrderLots(true) - синхронизированный размер выбранной позиции, учитывающий все ордера, которые закрывают эту позицию.
Таким образом, все проблемы, которые не может решить ни одна другая торговая библиотека, будут решены. Я рекомендую использовать последнюю версию вместе с механизмом синхронизации.
#define MT4ORDERS_BYPASS_MAXTIME 1000000// Максимальное время (в микросекундах) ожидания синхронизации торговой среды#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006
Для работы этого механизма необходимо скачать эту библиотеку. Все комплексные и эффективные проверки корректности работы торговой среды будут выполнены Все сложные и эффективные проверки корректности торгового окружения будут выполняться автоматически, не отвлекая пользователя при написании торговой логики.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Знаковое обновление библиотеки! Единственная библиотека в мире, умеющая нивелировать постоянно возникающие в MT5 рассинхронизации торгового окружения. Нескромно, но факт.
После данного обновления было сделано несколько тысяч сделок на реальных счетах у разных брокеров. Анализ показал идеальную работу механизма синхронизации.
Рекомендую его задействовать. Сделайте свои продукты еще более надежными.
ошибка компиляции :
на всякий случай из КБ скачал последнюю версию, видимо это: https://www.mql5.com/ru/forum/170952/page203#comment_22563132
ошибка компиляции :
на всякий случай из КБ скачал последнюю версию, видимо это: https://www.mql5.com/ru/forum/170952/page203#comment_22563132
Как решу задачу, обновлю.
По моей просьбе MetaQutoes полностью локализовала последнее обновление библиотеки на английский язык. Последняя сборка библиотеки теперь доступна на англоязычной странице с комментариями в исходном коде, переведенными на английский язык.
Это отличается от предыдущей версии, которая была доступна на англоязычной странице.
Я рекомендую использовать последнюю версию вместе с механизмом синхронизации. Тогда все проблемы, которые не может решить ни одна торговая библиотека, будут незаметны.
Для того чтобы этот механизм заработал, необходимо скачать эту библиотеку. Все сложные и эффективные проверки корректности работы торговой среды будут выполняться автоматически, не отвлекая пользователя при написании торговой логики.
Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий
Библиотеки: MT4Orders
fxsaber, 2021.06.02 10:09
По моей просьбе MetaQutoes полностью локализовала последнее обновление библиотеки на английский язык. Последняя сборка библиотеки теперь доступна на Последняя сборка библиотеки теперь доступна на английской странице с комментариями в исходном коде, переведенными на английский язык.
Последняя сборка библиотеки теперь доступна на английской странице с комментариями в исходном коде, переведенными на английский язык.
Я рекомендую использовать последнюю версию вместе с механизмом синхронизации. Тогда все проблемы, которые не может решить ни одна другая торговая библиотека, будут Тогда все проблемы, которые не может решить ни одна другая торговая библиотека, будут незаметны.
Чтобы этот механизм работал, необходимо скачать эту библиотеку. Все сложные и эффективные проверки корректности работы торговой среды будут выполняться автоматически, не отвлекая пользователя, когда торговая среда не работает. Все сложные и эффективные проверки корректности работы торговой среды будут выполняться автоматически, не отвлекая пользователя при написании торговой логики.
Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий
Библиотеки: MT4Orders
fxsaber, 2021.06.02 10:09
По моей просьбе MetaQutoes полностью локализовала последнее обновление библиотеки на английский язык. Последняя сборка библиотеки теперь доступна на английской странице с комментариями в исходном коде, переведенными на английский язык.
Это отличается от предыдущей версии, которая была доступна на англоязычной странице.
Я рекомендую использовать последнюю версию вместе с механизмом синхронизации. Тогда все проблемы, которые не может решить ни одна торговая библиотека, будут незаметны.
Для того чтобы этот механизм заработал, необходимо скачать эту библиотеку. Все сложные и эффективные проверки корректности работы торговой среды будут выполняться автоматически, не отвлекая пользователя при написании торговой логики.
Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий
Библиотеки: MT4Orders
fxsaber, 2021.06.02 10:09
По моей просьбе MetaQutoes полностью локализовала последнее обновление библиотеки на английский язык. Последняя сборка библиотеки теперь доступна на английской странице с комментариями в исходном коде, переведенными на английский язык.
Это отличается от предыдущей версии, которая была доступна на англоязычной странице.
Я рекомендую использовать последнюю версию вместе с механизмом синхронизации. Тогда все проблемы, которые не может решить ни одна торговая библиотека, будут незаметны.
Чтобы механизм заработал, необходимо скачать эту библиотеку. Все сложные и эффективные проверки корректности работы торговой среды будут выполняться автоматически, не отвлекая пользователя при написании торговой логики.
Форум о трейдинге, автоматизированных торговых системах и тестировании торговых стратегий
Библиотеки: MT4Orders
fxsaber, 2021.06.02 10:09
По моей просьбе MetaQutoes полностью локализовала последнее обновление библиотеки на английский язык. Последняя сборка библиотеки теперь доступна на английской странице с комментариями в исходном коде, переведенными на английский язык.
Отличие от предыдущей версии, которая была доступна на англоязычной странице.
Таким образом, все проблемы, которые не может решить ни одна другая торговая библиотека, будут решены. Я рекомендую использовать последнюю версию вместе с механизмом синхронизации.
Для работы этого механизма необходимо скачать эту библиотеку. Все комплексные и эффективные проверки корректности работы торговой среды будут выполнены Все сложные и эффективные проверки корректности торгового окружения будут выполняться автоматически, не отвлекая пользователя при написании торговой логики.