На главную

DF-ТРД-003 · Инструменты для трейдинга

Как проверить полноту CSV с торговыми операциями

Редакция Deskforge · 23 октября 2026 · 4 мин чтения
Как проверить полноту CSV с торговыми операциями
Из статьи вы узнаете
  • Как отличить целый CSV от файла, который просто открывается
  • Какие поля нужны для проверки операций
  • Как найти пропуски, дубли и обрезанный период
  • С чем сверить итоговые суммы

CSV открылся в Excel, столбцы стоят ровно, а даты похожи на правду. Можно ли сразу строить отчёт? Нет: такой файл может не содержать начало периода, комиссии, частичные исполнения или неторговые списания.

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

Если задача пока ограничивается ручным учётом, пригодится отдельная инструкция про журнал сделок трейдера. Здесь разберём другой этап — проверку входного файла до отчёта.

Что считать полной выгрузкой?

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

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

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

Для отчёта заранее выберите единицу учёта. Если расчёты строятся по исполнениям, основной набор должен состоять из сделок, а идентификаторы заявок и позиций нужны для связи записей. На странице разработки и проверки торговых инструментов тот же принцип используется для воспроизводимой проверки: сначала фиксируются данные и сценарий, затем оценивается результат программы.

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

Не оценивайте количество записей по числу видимых строк в текстовом редакторе. RFC 4180 допускает перенос строки внутри поля, если такое поле заключено в двойные кавычки. Запятые и двойные кавычки внутри значения тоже требуют специальной обработки.

Откройте файл через импорт данных и явно укажите кодировку, разделитель и признак заголовка. RFC описывает формат с запятой, но конкретный экспортёр может использовать другой разделитель. Если настройки импорта выбраны неверно, несколько полей сольются в одно или, наоборот, один комментарий распадётся на столбцы.

После импорта проверьте четыре свойства:

  • у записей одинаковое число полей;
  • заголовки не повторяются посреди файла;
  • даты, идентификаторы и числовые значения разобраны в ожидаемые типы;
  • пустое значение не превратилось автоматически в ноль.

Отдельно найдите строки, которые импортёр пропустил или поместил в один столбец. Если структура нарушена, дальнейшая сверка бессмысленна: сначала нужно повторить экспорт либо исправить параметры чтения, сохранив исходный файл без изменений.

Какие поля и операции сверять?

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

Документация MQL5 перечисляет у сделки отдельные свойства для комиссии, сбора, переноса и результата. Там же указаны неторговые типы: балансовые операции, кредит, дополнительные комиссии, проценты, дивиденды и налоги. Если выгрузить только покупки и продажи, изменение средств на счёте может не сойтись.

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

Затем сгруппируйте записи по типу и дате. Необычный ноль между активными днями, резкий обрыв в конце месяца или отсутствие целой категории — повод вернуться к фильтрам экспорта. Это не доказательство пропуска, а точка для проверки по исходной системе.

Как выполнить итоговую сверку?

Сравнивайте CSV с отчётом того же счёта за тот же период и в том же часовом поясе. Зафиксируйте правило границ: входит ли операция ровно в начальный и конечный момент. Иначе расхождение на стыке двух выгрузок будет повторяться при каждом обновлении.

Сверьте число исполнений по типам, а затем отдельные денежные итоги: комиссии, сборы, переносы, результат и балансовые изменения. Общий объём по разным инструментам складывать в одно число обычно бесполезно — лучше сравнивать его отдельно по каждому инструменту.

Проверьте связи между сущностями. У исполнения должен сохраняться идентификатор заявки, если источник его предоставляет; у связанных входов и выходов — идентификатор позиции. Запись без связи не обязательно ошибочна, но её нужно вынести в список исключений и разобрать отдельно.

В конце сохраните исходный файл, параметры импорта и короткий протокол: период, количество записей по типам, найденные дубли, необъяснённые пропуски и результаты сверки. Готовность определяется не тем, что таблица выглядит аккуратно, а отсутствием необъяснённых расхождений.

Источники


Материал носит информационный характер и описывает разработку и проверку программных инструментов. Он не является индивидуальной инвестиционной рекомендацией и не содержит предложения совершить сделку. Deskforge не является брокером, дилером, управляющей компанией или инвестиционным советником, не управляет средствами клиентов и не совершает сделок за них. Торговля на финансовых рынках связана с риском потери капитала; результаты тестирования на исторических данных и прошлые результаты не гарантируют будущих. Решение о сделках пользователь принимает самостоятельно.

Назад

Deskforge на связи

Где нас найти

Нажмите на карточку или наведите камеру на QR-код.