Exporting bars to CSV

The Export button on a Senzoukria chart writes the bars currently loaded, and their per-price levels, as two gzip-compressed CSV files in Documents › Senzoukria › Exports, with UTC timestamps and the cache provenance of every row.

Senzoukria · Documentation · Updated September 2026


Where to find it

Where
⇩ button in the chart toolbar (Rithmic and crypto footprint)
Destination
Documents › Senzoukria › Exports (falls back to the app data exports folder)
Files
<symbol>.<timeframe>.<from>-<to>.bars.csv.gz and .levels.csv.gz
Range
First to last loaded bar, inclusive; at most one year

What it does

The export writes what the cache holds for the loaded range: aggregates per bar (OHLC, volume, delta, delta high and low, trade count) and per price level (aggressive buy and sell volume, buy and sell trades). It is not a tick export; the cache does not keep transactions. Two files are produced so that a bar and its levels can be joined on bucket_ts_ns, symbol and timeframe.

The button is disabled while nothing is loaded (Nothing loaded to export yet). Clicking it opens a confirmation: Export the loaded bars and their price levels as compressed CSV to Documents › Senzoukria › Exports? followed by Export now. Progress reads Exporting… {bars} bars, {levels} levels and can be cancelled; the final message gives counts, size, the first and last UTC timestamps and how many bars have no price levels (OHLC only). Show in folder reveals the bars file.

Columns

Schema of the two files
FileColumnsNotes
barsbucket_ts_ns, bucket_utc, symbol, timeframe, source, open, high, low, close, volume, delta, delta_high, delta_low, trades, levelsbucket_ts_ns is the nanosecond epoch of the bar open; bucket_utc is the same in ISO 8601 UTC. source is the cache provenance per row: live, ohlcv, aggtrades, tick, or a bridge name.
levelsbucket_ts_ns, symbol, timeframe, price, buy_volume, sell_volume, buy_trades, sell_tradesOne row per traded price level. An unknown side is an empty field, never 0.

Behaviour

Rules applied by the export command
RuleValueEffect
Compressiongzip onFiles end in .csv.gz.
Never overwrite-2, -3 … suffixesAn earlier export with the same name is kept; the new one gets a numbered name.
StreamingPages of 2,000 barsWritten page by page; the cache lock is taken per page so the chart keeps reading during the export.
Progress eventEvery 5 pagesUpdates the bars and levels counters.
CancelBetween pagesPartial files are removed; the result is reported as cancelled, never as success.
Maximum window366 daysLonger ranges are refused.
Unreadable levelsCountedA bar whose level JSON cannot be read exports with an empty levels column and is counted separately from bars without levels.

Limits or pitfalls

Before opening the files elsewhere:

  • Units are the source's: contracts for futures, base units for crypto. The file does not convert them.
  • Text fields are protected against spreadsheet formula injection (a leading =, +, - or @ is prefixed with an apostrophe) and quoted per RFC 4180 when needed.
  • The export covers the loaded range, not the whole cache. Load a wider history window first if you need more.
  • Bars marked ohlcv have no levels: they came from an OHLC fallback, not from tick replay.

This page in other languages

Frequently asked questions

Where do the files go?
Documents › Senzoukria › Exports. If the Documents folder cannot be resolved, the app data folder's exports directory is used. The done message shows the full path and Show in folder opens it.
Why are some level fields empty rather than zero?
An empty field means that side is unknown for that level. Zero and unavailable are kept distinct on purpose.
Can I export ticks?
No. The cache stores aggregates per bar and per price level. Replay sessions keep tick data separately, but this button exports bars and levels only.

Keep reading