Импорт CSV в журнал: выгрузки брокеров, сопоставление колонок и устранение дублей

Команда «Импортировать сделки из CSV» читает выгрузку брокера, сама определяет разделитель и колонки, показывает предварительный разбор сделок и записывает их в журнал. Повторный импорт того же файла обновляет существующие строки, а не плодит дубликаты.

Senzoukria · Документация · Обновлено: сентябрь 2026


Где найти

Где
Журнал → Сделки → кнопка «Импорт CSV»
Источники
Apex Trader Funding (по умолчанию), Rithmic Trader, NinjaTrader, TradingView, другой CSV
Разделитель
Запятая, точка с запятой или табуляция, определяется по первой строке
Ключ дедупликации
Колонка идентификатора сделки, если она есть, иначе «{источник}-row-{n}»

Что он делает

Диалог сообщает: «Выгрузите данные из панели брокера и перетащите файл сюда. Повторные импорты дедуплицируются автоматически.» Выберите источник, затем перетащите файл или нажмите «Выбрать файл» (.csv или текст). Разборщик снимает метку порядка байтов UTF-8, справляется с полями в кавычках, содержащими запятые, кавычки и переводы строк, и выбирает тот разделитель, который чаще всего встречается в строке заголовка.

Предпросмотр показывает имя файла, число разобранных и пропущенных строк, количество колонок, разворачиваемый список «Автосопоставление колонок» и первые 8 сделок (время, инструмент, сторона, объём, вход, выход, P&L). Кнопка называется «Импортировать N сделок». Панель результата печатает «+N новых · N обновлено» и число неудавшихся строк, если они были, а также кнопки «Импортировать ещё» и «Готово».

Сопоставление колонок

Заголовки, распознаваемые для каждого поля (регистр, пробелы, подчёркивания, дефисы, точки и косые черты игнорируются; сначала точное совпадение, затем вхождение)
ПолеПринимаемые заголовкиОбязательно
symbolsymbol, instrument, contract, tickerда
sideside, buy/sell, b/s, direction, typeда
entryPriceentry price, open price, buy price, avg entry price, fill priceда
exitPriceexit price, close price, sell price, avg exit priceнет
quantityqty, quantity, size, contracts, shares, lotsнет (по умолчанию 1)
pnlpnl, p/l, p&l, profit, net pnl, realized pnl, plнет
entryTimeentry time, open time, buy time, time, datetime, trade time, fill timeнет (по умолчанию текущее время)
exitTimeexit time, close time, sell timeнет
commissioncommission(s), fee(s)нет
accountIdaccount, account id, account numberнет
externalIdtrade id, order id, ticket id, execution id, id, fill idнет
notesnotes, 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.

Эта страница на других языках

Частые вопросы

Почему часть строк пропущена?
Строка пропускается, когда не удаётся прочитать инструмент, сторону или цену входа. Разверните список «Автосопоставление колонок», чтобы увидеть, какие колонки не определились.
Продублируются ли сделки при двойном импорте?
Нет, если в файле есть колонка идентификатора или порядок строк не изменился. Совпавшие строки обновляются и учитываются как «обновлённые».
Нужно ли для импорта подключение к брокеру?
Нет. Импорт читает локальный файл и пишет в локальную базу журнала.