Новая версия платформы MetaTrader 5 build 3180: Векторы и матрицы в MQL5 и повышение удобства работы - страница 9
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А написав заведомо код с ошибкой, и требовать от него правильного выполнения, ну не знаю, как то удивительно от вас такое слышать.
Не думаю, что следили за обсуждением, где было доказано отсутствие ошибок выполнения.
Рад был бы аудиту кода со стороны форумчан, т.к. речь идет о важной теме MT5.
Наверно потому что вы упускаете из виду, что таблица индексируется как массив с нуля.
О чём и пытается вам объяснить Алексей.
А написав заведомо код с ошибкой, и требовать от него правильного выполнения, ну не знаю, как то удивительно от вас такое слышать.
Если раньше работало, а теперь нет, то возможно пофиксили ошибку в новых билдах, и сразу вылезла ваша ошибка.
Мне кажется Алексей верно нашёл ошибку.
Да нет, с кодом все в порядке. В смысле, что ошибки там нет.
Написан сложно, как всегда, поэтому и вызывает непонимание.
Не думаю, что следили за обсуждением, где было доказано отсутствие ошибок выполнения.
Рад был бы аудиту кода со стороны форумчан, т.к. речь идет о важной теме MT5.
А ещё чудней получается если из этой строки
удалить Step() &&
И вот такой результат
Вы снова изменили смысл скрипта.
Если ничего в коде не менять, то сколько ни бейся, результат будешь получать без изменений.
А ещё чудней получается если из этой строки
удалить Step() &&
Не знаю причин, почему пытаетесь менять рабочий код. Его алгоритм расписал полностью.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Бета-версия платформы MetaTrader 5 build 3160: Векторы и матрицы в MQL5 и повышение удобства работы
fxsaber, 2022.01.26 12:24
Если ничего в коде не менять, то сколько ни бейся, результат будешь получать без изменений.
Код четко воспроизводит ситуацию, что на одно и то же место в таблице истории ордеров попадают разные ордера. Написал, почему это плохо.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Бета-версия платформы MetaTrader 5 build 3160: Векторы и матрицы в MQL5 и повышение удобства работы
fxsaber, 2022.01.25 12:46
Производительность рушится. На примитивных ТС этого не заметить. Если озвучить текущее поведение MT5 (а до b2958 работал правильно) конкурентам, найдут повод для издевок над MT5. И это будет по делу.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Бета-версия платформы MetaTrader 5 build 3160: Векторы и матрицы в MQL5 и повышение удобства работы
fxsaber, 2022.01.26 10:48
на одном и том же месте исторической таблицы могут быть разные ордера. Это архитектурная ошибка. Прошу разработчиков вернуть поведение b2958 - ордера при попадании в историческую таблицу помещаются в ее конец. Именно так происходит в Тестере.
На данный момент (b3160) один и тот же советник в Тестере и в Терминале показывает разное поведение.
А ещё чудней получается если из этой строки
удалить Step() &&
И вот такой результат
А если HistoryOrdersTotal()-1 вынести в переменную
то получим правильное значение с ошибкой.
т.е. 0-1 = -1 выход за пределы таблицы, получаем UB неопределённое поведение.
UP
Сорян, упустил что надо HistorySelect прежде вызвать, код выше с моей ошибкой.
Но смотрите какая фишка, вынес эти функции в переменные, без изменения логики кода.
и код fxSabera заработал правильно.
Короче проблема кроется в тернарном операторе. Вроде сравниваются значения одного типа,
но правильно они сравниваются только из переменных.
Если ничего в коде не менять, то сколько ни бейся, результат будешь получать без изменений.
Автоторговлю разрешили? Потому как без нее результат будет всегда одинаковый.
У меня так без автоторговли:
И вот так с автоторговлей:
смотрите какая фишка, вынес эти функции в переменные, без изменения логики кода.
Изменили логику.
Изменили логику.
Логика не нарушена, тернарное условие по прежней логике выполняется.
Отличие только в выносе в переменную, это не логика.