Сравнение двух выгрузок OHLC
Сопоставьте подготовленные CSV по моментам открытия свечей. Сначала установите продукт, поставщика, интервал и основу цены. Одинаковое название пары не подтверждает одинаковые данные; разные цены сами по себе не устанавливают ошибку поставщика или исполнение сделки.
Сравните два набора OHLC
Начальные примеры A и B полностью вымышлены. Анализ выполняется в браузере без отправки и постоянного хранения файлов. Не вводите пароли или персональные данные. Произвольные экспорты MT5 и TradingView могут требовать отдельного преобразования.
Для анализа нужен JavaScript; ручной пример доступен ниже.
Сохраните исходники и опишите подготовку
Нужен заголовок timestamp,open,high,low,close и ровно пять полей, разделенных запятыми. Цены записываются с десятичной точкой, без экспоненты; для чисел внутри CSV запятая является разделителем столбцов. Не поддерживаются поля в кавычках, «;» и дополнительные столбцы. Допустимы LF, CRLF, начальный BOM и одна завершающая новая строка. Внутренняя пустая строка считается ошибочной.
Время — настоящая календарная дата YYYY-MM-DDTHH:mm:ss, необязательно с 1–3 цифрами долей секунды, затем Z или смещение UTC до ±14:00. Смещение −00:00 не поддерживается. Метка обозначает открытие, а не закрытие свечи. Например, 08:01:00Z и 10:01:00+02:00 — один момент. Приписывание Z местному времени не переводит его в UTC.
Обе границы включены; последнее открытие должно попасть на фиксированную сетку, начатую в первом. Интервал — целое число от 1 до 1440 минут. Лимиты каждого файла: 2 MiB (2097152 байта), 100000 строк данных; сетки — 100000 мест. Цена ограничена 48 символами и поддерживаемой точностью до 15 значащих цифр. High не ниже остальных OHLC, Low не выше остальных.
Программа использует числовое представление JavaScript в этих пределах. Она не сравнивает произвольные длинные десятичные строки с неограниченной точностью. Показанная разность Close округляется до 12 значащих цифр и выражается в единицах цены. Количество пипсов требует отдельно заданного размера пипса.
Основа цены является вашей декларацией: программа не распознает Bid, Ask, Midpoint или Last из заголовка CSV. Разные основы блокируют сравнение. Не вычитайте постоянный спред, чтобы искусственно сделать файлы одинаковыми. Совпадающий UTC-формат не делает одинаковыми H4 или дневные свечи, построенные с разными началами сессии; инструмент не сдвигает и не агрегирует их.
Ручной разбор двух вымышленных файлов
A содержит открытия 08:00, 08:01, 08:02 и 08:03 UTC. B — те же моменты со смещением +02:00, кроме отсутствующего 08:02. Для обоих выберите Bid. Получаются три общих свечи: две одинаковые, одна различается; только в A — одна, только в B — ни одной.
| UTC | Close A | Close B | Наблюдение |
|---|---|---|---|
| 08:00 | 1.1001 | 1.1001 | Совпадают |
| 08:01 | 1.1002 | 1.1003 | Разность 0.0001 |
| 08:02 | 1.1003 | Нет строки | Только A |
| 08:03 | 1.1004 | 1.1004 | Совпадают |
Ожидается четыре места: в A пропусков нет, в B — один. Самая большая абсолютная разность Close: 1,1003 − 1,1002 = 0,0001 единицы цены в 08:01 UTC. Это описание файлов, а не определение правильной цены.
Упражнение: удалите 08:02 и из A. Станут ли данные полными?
Общих свечей останется три, только A и только B — ноль. Но оба набора теперь пропускают одно из четырех ожидаемых мест. Совпадение состава файлов не подтверждает полноту относительно объявленной сетки.
Упражнение: может ли быть разная свеча при нулевой максимальной разности Close?
Да. В отдельном вымышленном примере O = 100, L = 99, C = 101 в обоих файлах, но High A = 102, High B = 103. Одна общая свеча различается по High, хотя Close совпадает и его абсолютная разность равна нулю. Проверяйте все четыре цены, а не только показатель Close.
Как читать отказ и успешный отчет
Ошибочная строка, конфликт разных OHLC для одного времени или строка вне сетки блокирует сравнение — даже если она находится за выбранными границами. Одинаковые повторы занимают одно место. Возвраты времени в порядке строк считаются и показываются, но сами по себе не блокируют анализ. Правильные строки вне диапазона учитываются отдельно и не участвуют в сравнении цен.
«Одинаковая свеча» означает совпадение всех четырех поддерживаемых числовых цен на общем моменте. Отчет показывает общие, одинаковые, различные и односторонние моменты, проверки качества каждого набора и не более 20 первых различий в порядке записей A. При равной максимальной разности сохраняется первый встретившийся в A момент, а не обязательно самый ранний хронологически. Если Close нигде не различается, время максимума не задано; это не отменяет отличий High или Low.
Если общих свечей нет, начальное значение максимальной разности равно нулю, но сравнения цен нет. Даже совпадающие OHLC допускают разные последовательности тиков. Результат не устанавливает манипулирование, источник задержки, проскальзывание или реальное исполнение заявки. Сохраните исходные файлы, правила конвертации и контекст поставщика отдельно.
Любое изменение файла или настройки убирает старый отчет. Сброс возвращает настройки и очищает файлы; кнопка примера сначала возвращает его исходные настройки. TXT содержит русские пояснения, настройки и машинные ключи проверок и примеров. Он не включает все исходные котировки и не удостоверяет их подлинность.
Почему контекст поставщика важен
Документация MT5 различает формирование минутных свечей по Bid для OTC и по Last для биржевых инструментов. Это описание платформенной модели, а не доказательство основы вашего CSV. TradingView описывает различия внутридневных, дневных и реальных потоков; они не обязаны давать одинаковые экстремумы. У OANDA параметры dailyAlignment и alignmentTimezone относятся к построению свечей, хотя возвращаемое время выражено в UTC.
- MetaTrader 5: цены и построение свечей
- TradingView: потоки данных и различия периодов
- OANDA: выравнивание свечей и возвращаемое время
Дополнительный контекст — в исходном англоязычном руководстве. Для другого вопроса — изменившихся условий теста — используйте сравнение записей тестирования: одни OHLC не объясняют комиссии или модель исполнения.