Пропущенная свеча сама по себе не объясняет, произошел сбой у поставщика или рынок был закрыт. Сначала сопоставьте выгрузку с заданным окном времени и правилами формирования свечей. Здесь есть локальная проверка CSV: пустые места в равномерной сетке, повторные отметки времени, конфликтующие цены и некорректные строки. Инструмент не создает котировки. Его отчет помогает решить, что выяснить до исторического теста стратегии.

Что выяснить до подсчета пропущенных свечей?

Запишите инструмент, поставщика, сторону цены и интервал. Свечи Bid, Ask и средней цены представляют разные ряды: обозначения EUR/USD недостаточно. Сравнивайте время открытия сопоставимых свечей. Выгрузка со временем закрытия будет выглядеть смещенной относительно выгрузки со временем открытия даже при корректных ценах.

Проверка принимает заголовок timestamp,open,high,low,close. В каждой следующей строке ровно пять полей через запятую. В ценах используется десятичная точка без разделителей тысяч. Поля в кавычках, дополнительные столбцы и разделители «;» требуют предварительного преобразования. Неподдерживаемый формат отклоняется: инструмент не угадывает смысл выгрузки.

Укажите полную отметку, например 2026-10-12T08:00:00Z или 2026-10-12T10:00:00+02:00. Это один момент времени. Секунды обязательны, допустимы до трех цифр долей секунды. Время без смещения не определяет часовой пояс сервера. Приписать Z к местному времени — изменить его смысл, а не перевести в UTC. Для правил конкретного поставщика см. параметры выравнивания свечей OANDA.

Отдельно задайте первое и последнее ожидаемое время открытия. Обе границы включены: с 08:00 до 08:11 при минутном шаге ожидаются двенадцать отметок. Сетка начинается от первой границы, последняя должна точно в нее попадать. Модель описывает равные интервалы прошедшего времени. Календарный месяц или местные сутки с переходом на летнее время нельзя автоматически заменить фиксированными 1440 минутами.

Как запустить проверку и воспроизвести пример?

Загрузите подготовленный CSV, задайте целый шаг от 1 до 1440 минут и обе границы. Обработка идет в браузере: содержимое файла не отправляется и не сохраняется в постоянном хранилище. Предел файла — 2 МиБ, строк и ожидаемых мест сетки — по 100 000. Более длинный период разделите на документированные непересекающиеся окна.

Для цены допустимы не более 15 значащих цифр и 48 символов в поле. Более точная запись признается некорректной: округление не должно скрывать конфликт.

Проверьте CSV

Файл и ожидаемая сетка

Границы включены; укажите секунды и Z либо смещение, например +02:00. Это время открытия свечи, а не ее закрытия.

Для проверки файла и подготовки отчета нужен JavaScript. Примеры CSV и ручной разбор доступны ниже.

Скачать полный учебный CSV · Скачать диагностический учебный CSV

Оба файла содержат вымышленные данные от 12 октября 2026 года, а не котировки брокера. Дата примера не означает дату проверки рынка.

Вымышленная выгрузка: двенадцать строк не доказывают полноту

Учебные файлы синтетические: это не котировки брокера и не данные счета. Задайте M1, с 08:00 до 08:11 UTC. Чистый файл содержит двенадцать разных отметок без пустых мест. В диагностическом файле двенадцать строк, но только восемь допустимых мест сетки заняты.

Прокрутите таблицу вправо, чтобы увидеть все столбцы →

Ожидаемый результат диагностического файла
НаходкаСмысл в этом примере
4 пустых местаНет допустимой свечи в 08:03, 08:04, 08:10 и 08:11.
2 повторные строкиОтметки 08:02 и 08:06 встречаются повторно.
1 группа конфликта ценДве допустимые свечи 08:06 содержат разные OHLC.
1 некорректная строкаHigh свечи 08:04 ниже ее Open.
1 строка вне сетки и 1 нарушение порядка времени08:07:30 не принадлежит M1; строка 08:08 стоит после 08:09.

Самые длинные пробелы содержат по два ожидаемых времени открытия. При равенстве выводится первый: 08:03–08:04. Это не измеренная длительность сбоя. Причину отсутствия данных нужно выяснять по сведениям вне файла.

Вымышленная сетка M1: занято восемь мест из двенадцати

Прокрутите схему вправо, чтобы увидеть ее целиком →

Сетка M1: занято 8 из 12 местНет правильных записей для 08:03, 08:04, 08:10 и 08:11. На 08:06 приходятся две свечи с разными ценами. Подписи и пояснение дублируют значение цвета.Сетка M1: занято 8 из 12 мест✓08:00✓08:01✓08:02×08:03×08:04✓08:05?08:06✓08:07✓08:08✓08:09×08:10×08:11✓ Есть запись× Нет записи? Конфликт цен

Открыть схему целиком

Восемь разных допустимых отметок занимают сетку, но в одной остается конфликт цен. За двенадцатью строками скрываются четыре пустых места.

Что исследовать вместо автоматического исправления?

Покрытие считает разные допустимые отметки, а не строки. Идентичный дубликат не добавляет покрытия. Разные допустимые OHLC с одной отметкой занимают одно место и дополнительно создают конфликт. Поэтому ноль пробелов не доказывает пригодности данных. Сверьте цены с источником и сохраните обе версии: проверка не выбирает более высокую, новую или удобную цену.

Некорректная запись не добавляет покрытия. Цены должны быть конечными; High не ниже Open, Close и Low, а Low не выше остальных цен. Строки вне окна и вне сетки также не улучшают результат. Подсчитываются все находки, но выводятся только двадцать примеров каждой группы, чтобы поврежденная выгрузка не перегружала страницу.

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

Не заполняйте пустое место последней ценой только ради непрерывного графика. Это создает синтетические свечи и может изменить индикаторы и исполнение стопов. Сортировка не разрешает конфликт OHLC. Сохраните исходную выгрузку и отдельный журнал исправлений с причиной и источником каждой замены.

Доказывают ли полные OHLC, что MT5 использовал записанные тики?

Нет. Свечи не описывают всю последовательность цены. MetaQuotes описывает генерацию тиков, когда минутная свеча есть, а ее тиков нет. Полная сетка M1 не доказывает, что использовались только записанные наблюдения. Проверьте журнал тестера, доступный период тиков и выбранную модель.

Сравните запрошенные и фактические даты теста. Документация подготовки истории объясняет сдвиг начала при недостаточной истории. При выгрузке через CopyRates сравните запрошенное и полученное количество: загрузка может еще продолжаться. Практика тестирования MT4 и MT5 разбирает настройки платформы, а методика тестирования стратегии связывает проверки с валидацией.

Что сделать с отчетом о данных?

  1. Сохраните исходную выгрузку, настройки и отчет. Добавьте инструмент, сторону цены, часовой пояс и источник календаря сессий. Тогда другой человек сможет повторить проверку, а не сравнивать необъяснимые графики с разными предпосылками.
  2. Исследуйте самый длинный пробел и каждую группу конфликтующих цен. Сопоставьте записи источника и журнал загрузки. Документируйте подтвержденную закрытую сессию либо получите исправленную выгрузку. Повторите то же окно, сохранив прежний отчет.
  3. Проведите короткий визуальный тест на принятом интервале. Проверьте сигналы у отмеченных пробелов, расходы на спред и порядок исполнения. При разработке отдельного движка продолжите проверками данных и сигналов в Python (на английском). Отчет не прогнозирует будущую доходность.

Практический случай: три записи одного момента

В отдельном вымышленном CSV три строки используют 08:00:00Z, 10:00:00+02:00 и 03:00:00−05:00 одной даты 12 октября 2026 года. В файле минус смещения — обычный символ «-». Это одна отметка UTC. OHLC записаны как 1.1/1.2/1.0/1.15, затем с четырьмя и двумя десятичными знаками; численно цены одинаковы. Дата относится к синтетическому примеру, не к проверке источников.

Скачать три синтетические строки. Задайте M1, начало 2026-10-12T08:00:00Z и конец 2026-10-12T08:02:00Z. Ожидаются три места, занято одно, пусты два; повторных строк две, конфликтов цен ноль. Разное текстовое оформление времени и цены не превращает один момент в три свечи.

Верните конец окна к 08:11 для исходных чистого и диагностического файлов. Иначе вы сравните разные постановки проверки. Пример проверяет нормализацию момента и числовое равенство, а не надежность источника или качество бэктеста.