Импорт CSV в журнал: выгрузки брокеров, сопоставление колонок и устранение дублей
Команда «Импортировать сделки из CSV» читает выгрузку брокера, сама определяет разделитель и колонки, показывает предварительный разбор сделок и записывает их в журнал. Повторный импорт того же файла обновляет существующие строки, а не плодит дубликаты.
Senzoukria · Документация · Обновлено: сентябрь 2026
Где найти
- Где
- Журнал → Сделки → кнопка «Импорт CSV»
- Источники
- Apex Trader Funding (по умолчанию), Rithmic Trader, NinjaTrader, TradingView, другой CSV
- Разделитель
- Запятая, точка с запятой или табуляция, определяется по первой строке
- Ключ дедупликации
- Колонка идентификатора сделки, если она есть, иначе «{источник}-row-{n}»
Что он делает
Диалог сообщает: «Выгрузите данные из панели брокера и перетащите файл сюда. Повторные импорты дедуплицируются автоматически.» Выберите источник, затем перетащите файл или нажмите «Выбрать файл» (.csv или текст). Разборщик снимает метку порядка байтов UTF-8, справляется с полями в кавычках, содержащими запятые, кавычки и переводы строк, и выбирает тот разделитель, который чаще всего встречается в строке заголовка.
Предпросмотр показывает имя файла, число разобранных и пропущенных строк, количество колонок, разворачиваемый список «Автосопоставление колонок» и первые 8 сделок (время, инструмент, сторона, объём, вход, выход, P&L). Кнопка называется «Импортировать N сделок». Панель результата печатает «+N новых · N обновлено» и число неудавшихся строк, если они были, а также кнопки «Импортировать ещё» и «Готово».
Сопоставление колонок
| Поле | Принимаемые заголовки | Обязательно |
|---|---|---|
| symbol | symbol, instrument, contract, ticker | да |
| side | side, buy/sell, b/s, direction, type | да |
| entryPrice | entry price, open price, buy price, avg entry price, fill price | да |
| exitPrice | exit price, close price, sell price, avg exit price | нет |
| quantity | qty, quantity, size, contracts, shares, lots | нет (по умолчанию 1) |
| pnl | pnl, p/l, p&l, profit, net pnl, realized pnl, pl | нет |
| entryTime | entry time, open time, buy time, time, datetime, trade time, fill time | нет (по умолчанию текущее время) |
| exitTime | exit time, close time, sell time | нет |
| commission | commission(s), fee(s) | нет |
| accountId | account, account id, account number | нет |
| externalId | trade id, order id, ticket id, execution id, id, fill id | нет |
| notes | notes, comment, memo, tag | нет |
Разбор значений
- Сторона: B, BUY, LONG, L становятся LONG; S, SELL, SHORT, SH становятся SHORT. Любое другое значение пропускает строку.
- Числа: знаки доллара, пробелы и разделители тысяч удаляются; значение в скобках читается как отрицательное.
- Объём округляется до целого.
- Даты: всё, что принимает разборщик Date в JavaScript (ISO, ММ/ДД/ГГГГ…), плюс компактная форма ГГГГММДД ЧЧ:ММ[:СС], читаемая как UTC. На выходе — ISO 8601 в UTC.
- Строка без инструмента, стороны или цены входа считается пропущенной; пустые строки игнорируются.
Как этим пользоваться
Выгрузите список сделок из панели брокера или проп-фирмы, сохраните строку заголовка и перетащите файл. Проверьте список автосопоставления: поле, сопоставленное с «—», найдено не было, и у полученных сделок оно останется пустым. Важнее всего колонки времени и счёта: сделки, импортированные без номера счёта, попадают в корзину «Счёт не записан» в списке счетов.
Импорт — это вставка с обновлением по ключу из источника и внешнего идентификатора. Повторный импорт обновлённой выгрузки освежает совпавшие строки и считает их «обновлёнными», а не создаёт дубликаты. Если колонки идентификатора в файле нет, используется номер строки, поэтому перестановка строк между двумя выгрузками меняет то, какая сделка будет обновлена.
Ограничения и подводные камни
- Импортированные сделки сохраняют P&L из файла; ничего не пересчитывается по ценам и стоимости пункта.
- Таймфрейм, сетап, оценка, эмоция и скриншоты из CSV не читаются; добавьте их потом в форме сделки.
- Только один файл за раз. Выбор источника влияет на префикс запасного идентификатора, а не на сопоставление колонок.
- Даты без часового пояса разборщик Date трактует в локальной зоне машины; компактная форма считается временем UTC.
Связанные страницы
- Журнал: вкладка сделок
- Обзор журнала и область счёта
- Синхронизация журнала с Rithmic
- Руководство по бэктесту фьючерсов
Эта страница на других языках
Частые вопросы
- Почему часть строк пропущена?
- Строка пропускается, когда не удаётся прочитать инструмент, сторону или цену входа. Разверните список «Автосопоставление колонок», чтобы увидеть, какие колонки не определились.
- Продублируются ли сделки при двойном импорте?
- Нет, если в файле есть колонка идентификатора или порядок строк не изменился. Совпавшие строки обновляются и учитываются как «обновлённые».
- Нужно ли для импорта подключение к брокеру?
- Нет. Импорт читает локальный файл и пишет в локальную базу журнала.