Docs Importing trades
CSV and Excel imports
Dropping a Tradovate, NinjaTrader, or generic broker export into Tradelyst.
CSV / Excel is the fastest path to backfill history. The importer recognises Tradovate and NinjaTrader exports out of the box and falls back to a generic OHLC+fills schema for anything else.
What to upload
- ▸Tradovate — Order history export. The importer maps fills to trades and pairs entries with exits.
- ▸NinjaTrader — Trade Performance → Trades grid → "Save grid as". Maps directly.
- ▸Generic CSV — any spreadsheet with columns for symbol, side, entry price, entry time, exit price, exit time. The importer asks you to map the columns on first upload.
- ▸Excel (.xlsx) — same shapes as CSV; SheetJS parses the workbook.
Dedup
Every imported trade gets a (source, externalId) pair, and the import job enforces uniqueness against that. Re-uploading the same file is safe — only new trades land. This is also what makes weekly "drop the latest export" workflows reliable.
What happens after upload
- ▸The file uploads to
/import. Validation runs first; bad rows surface inline with line numbers. - ▸The importer runs in the same request — small files (≲1k trades) typically finish in well under a second.
- ▸Result page shows added / skipped (existing) / errored counts and links straight to the trades list.
If your broker's export doesn't match any preset, share a sample CSV (any 5 rows suffice) — adding a new parser is a one-hour build once we have real fixtures.