Новая версия платформы MetaTrader 5 build 6230: больше возможностей AI - страница 17

Alain Verleyen #:

Хорошо, проблема не в самом тестере, а в записанных показаниях.

Записаны тики обычно, не думаю что с ними проблема.

Лимитные ордеры активируются по Ask/Bid тикам. Я это показывал ранее. https://www.mql5.com/ru/forum/516827/page13#comment_60585020
А стоп ордеры по Limit тикам. Думаю и те и другие должны работать по Ask/Bid тикам.

Ошибка в тестере MT5 из-за использования старых цен Ask/Bid для SL.
Ошибка в тестере MT5 из-за использования старых цен Ask/Bid для SL.
  • 2026.10.18
  • www.mql5.com
Ошибка в тестере MT5 заключается в использовании старых цен Ask/Bid для срабатывания стоп-лоссов, что приводит к положительным проскальзываниям. Пользователь предоставил доказательства и скриншоты, подтверждающие проблему, и просит исправить тестер, чтобы он использовал актуальные цены тиков.
Alain Verleyen #:

Хорошо, проблема не в самом тестере, а в записанных показаниях.

Последнее значение 98,07 активировало стоп-лосс, поэтому рыночный ордер исполняется по текущей цене предложения 98,11.

Проблема в том, что цена 98,11 не может быть текущей ценой покупки, поскольку сделка на продажу была совершена по цене 98,07.

Комментарий на картинке

Все лоты по 98.11 взяты ранее. Нам не осталось.

Но тестер нам их отдает.

Таких не обнаружил.

При этом TICK_FLAG_LAST и TICK_FLAG_VOLUME всегда вместе, что тоже правильно.

fxsaber #:
Таких не обнаружил.
Соблюдают какие то правила. Возможно чем-то объединенные тики плохи. А может просто програмистам так проще было, подумаешь несколько лишних тиков записано...
Aleksei Kuznetsov # :

Комментарий на картинке

Все лоты по 98.11 взяты ранее. Нам не осталось.

Но тестер нам их отдает.

Да, ставка должна была обновляться, но этого не происходит. Проблема в данных, а не в тестере. Каждый раз, когда меняется лучшая цена, должна отображаться отметка о ставке.

Для тестировщика была совершена продажа по цене Bid, а в момент срабатывания SL зафиксированная цена bid составила 98,11 (что неверно), поэтому тестировщик использовал её.

Я почти уверен, что можно доказать, что данные (тики) не соответствуют реальным сделкам.

fxsaber # :
Таких не обнаружил.
Именно так, и в этом проблема для тестировщика.
Alain Verleyen #:

Проблема в данных, а не в тестере.

И в Тестере тоже. Представьте, что в одну миллисекунду было одновременно 100 тиков. И 52-й тик удовлетворял отложенному ордеру. По цене какого тика надо исполнить ордер?

Я считаю, что по цене последнего - 100-го. Тестер так не считает. Так и не считает мой Virtual. Но когда идет речь про last-тики в одну миллисекунду, но правильно исполнять именно по последнему тику в этой серии с одинаковым временем.

Alain Verleyen #:

Да, ставка должна была обновляться, но этого не происходит. Проблема в данных, а не в тестере. Каждый раз, когда меняется лучшая цена, должна отображаться отметка о ставке.

А у других дилеров с биржевым исполнением как?

Добавляют к Last тикам и меняющиеся цены Ask/Bid ?

То есть так:

(Tick.flags & (TICK_FLAG_BUY | TICK_FLAG_SELL)) && (Tick.flags & (TICK_FLAG_ASK | TICK_FLAG_BID)) // true

Для меня это первая биржа, возможно вы видели другие?

Aleksei Kuznetsov # :


Это тоже можно проверить предложенным выше экспертом.
Файл с настройками no_trade.set

Отправляем торговый запрос во время когда открылась котировочная сессия (с 6:50), но еще не открылась торговая сессия. Биржа это отклонит. Тестер торгует, но не должен.


Поэтому есть предложение добавить новый флаг который указывает к какой сессии относится тик: торговая или котировочная. Тогда будет очень просто отклонять ордеры в неторговое время.

Найденная закономерность с использованием Bid>Ask в начале не торговой сессии не очень четко работает, как видно на этом примере. Решение с флагом будет давать 100% разделение сессий.

Если MQ его сделает, то можно будет сделать скрипт, которым можно быстро установить флаги в истории на серверах бирж. Ведь только они четко знают график сессий.
Например по акции Gazp 
- не торговая сессия начиналась в 9:50, торговая в 10:00
- с 2025 стало 6:50 и 7:00
- менеджер сказал, что скоро будут еще изменения

Спецификация инструмента может показывать только текущую ситуацию с сессиями, но не её изменения в прошлом. Видимо поэтому вообще установили круглосуточную торговую сессию.

Биржа показывает такое


С флагом определение торговой сессии будет работать идеально.

Это также не проблема тестировщика.

1. Брокер должен правильно настроить сессии. Как вы показали, они настроены неправильно, это не проблема MT5 и не ответственность MetaQuotes.

2. Ваш советник должен проверять сессии, тестер не делает это автоматически. Если брокер не предоставляет корректные данные, вам потребуется написать собственное решение.

Aleksei Kuznetsov #:
Лимитные ордеры активируются по Ask/Bid тикам.
Так а должны по Last - иначе не было факта сделки в истории и с чего он должен быть в тестере.