Разработчикам: прокомментируйте Исправление котировок задним числом

 

Для МТ4 актуальна следующая проблема

Источник головной боли: индикатор, который перерассчитывается только на последнем экстремуме. Мы с автором этого индикатора пытались понять, почему иногда он начинает сбоить:

Скорее всего это вызвано исправлением котировок задним числом, а логика индикатора естественно к этому не готова. Вот тот же участок, но через пару минут.

Не вооружённым глазом видно, что котировки уже совсем другие:

Как быть подготовленным к этому? Встроенных средств я как понимаю для этого нет?

На форуме МТ4 IgorM высказал предположение о синхронизации задним числом, я согласен с его точкой зрения.

Можно от Вас получить комментарии - как, через какое время и сколько баров при этом синхронизируется?

Почему нет для этого специальной функции или же почему эту ситуацию не обрабатывает IndicatorCounted() ?


И соответственно как дела с этим обстоят у МТ5 ?

 

Промолчать ведь всегда проще?

 
Я не разработчик, но мне вот интересно, вы вообще в курсе, что на многих биржах (как пример CME или ММВБ) данные за прошедшую торговую сессию могут корректироваться после закрытия? И это не редкость. Ничего криминального в этом нет. Тут главное что, трейдеры там понимают (те которые разобрались в этом) почему это происходит, и понимают, что циферки корректирует не программа а сама биржа (в вашем случае - дц).
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
  • www.mql5.com
Получение рыночной информации / SymbolInfoSessionQuote - Документация по MQL5
 
HideYourRichess:
Я не разработчик, но мне вот интересно, вы вообще в курсе, что на многих биржах (как пример CME или ММВБ) данные за прошедшую торговую сессию могут корректироваться после закрытия? И это не редкость. Ничего криминального в этом нет. Тут главное что, трейдеры там понимают (те которые разобрались в этом) почему это происходит, и понимают, что циферки корректирует не программа а сама биржа (в вашем случае - дц).

Вы перечитайте пожалуйста... Я не про сами коррективы, а про механизмы отслеживания этих корректив.

Иначе нужно на каждом тике/баре пересчитывать весь буфер индикаторный полностью.

В МТ4 при определённых алгоритмах и ситуациях это приводит в фатальному сбою.

 

Индикаторы уведомляются терминалом об серьезных изменениях в истории чартов вызовом OnCalculate с prev_calculated=0.

Если история докачалась или изменилась, то счетчик ранее просчитанных баров сбрасывается в ноль.

Это и в МТ4 и в МТ5 работает.

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
Renat:

Индикаторы уведомляются терминалом об серьезных изменениях в истории чартов вызовом OnCalculate с prev_calculated=0.

Если история докачалась или изменилась, то счетчик ранее просчитанных баров сбрасывается в ноль.

Это и в МТ4 и в МТ5 работает.


Выделенное красный - это ключевые слова как я понимаю?

В МТ4 проблема полностью доказана: https://www.mql5.com/ru/forum/131128

Не хотелось бы её повторения в МТ5...

А что делать, если изменения не серьёзные на взгляд терминала? Дайте рекомендации.

Ещё раз: ох уж эта функция IndicatorCounted()! Попила кровушки! Будьте бдительны! Индикаторы врут! - MQL4 форум
  • www.mql5.com
Ещё раз: ох уж эта функция IndicatorCounted()! Попила кровушки! Будьте бдительны! Индикаторы врут! - MQL4 форум
 
AlexSTAL:

А что делать, если изменения не серьёзные на взгляд терминала? Дайте рекомендации.

Пришло любое исправление/докачка любого бара в истории - вот и серьезное изменение.

Все что не является последовательным накоплением текущего бара, считается серьезным изменением и сбрасывает счетчик prev_calculated. В МетаТрейдер 5 уровень контроля синхронизированности истории практически параноидальный, поэтому любые изменения в истории сразу же отслеживаются.

 
Renat:

Пришло любое исправление/докачка любого бара в истории - вот и серьезное изменение.

Все что не является последовательным накоплением текущего бара, считается серьезным изменением и сбрасывает счетчик prev_calculated. В МетаТрейдер 5 уровень контроля синхронизированности истории практически параноидальный, поэтому любые изменения в истории сразу же отслеживаются.

Получается, что тестирование экспертов на истории происходит не на реальных исторических данных, а на исправленных (серьезно измененных). Как сильно могут отличаться результаты эксперта при прогоне на серьезно измененной истории от реальной?
 
Jager:
Получается, что тестирование экспертов на истории происходит не на реальных исторических данных, а на исправленных (серьезно измененных). Как сильно могут отличаться результаты эксперта при прогоне на серьезно измененной истории от реальной?

Похоже, Вы сами себя загоняете в какие-то придуманные материи.

Боюсь, у меня нет времени объяснять азы.

 
Renat:

Похоже, Вы сами себя загоняете в какие-то придуманные материи.

Боюсь, у меня нет времени объяснять азы.

Предполагаю ответ на данный вопрос мог быть интересен многим. Может найдется время написать ссылку на азы?
 

Ну как, по вашему, возможно исправление истории котировок "передним" числом? :)

Если ДЦ поменял историю, что ж тут поделаешь, история синхронизируется. А как же иначе то?



Причина обращения: