把K线导出为 CSV

Senzoukria 图表上的导出按钮会把当前已加载的K线及其逐价位数据,写成两个 gzip 压缩的 CSV 文件,存放在「文档 › Senzoukria › Exports」中,时间戳为 UTC,并标明每一行的缓存来源。

Senzoukria · 文档 · 更新于 2026 年 9 月


位置

位置
图表工具栏中的 ⇩ 按钮(Rithmic 与加密货币足迹图)
目标位置
文档 › Senzoukria › Exports(无法解析时回退到应用数据的 exports 目录)
文件
<symbol>.<timeframe>.<from>-<to>.bars.csv.gz 和 .levels.csv.gz
范围
第一根到最后一根已加载K线,含首尾;最长一年

它做什么

导出会写出缓存中属于已加载区间的内容:按K线汇总的数据(OHLC、成交量、delta、delta 最高与最低、成交笔数)以及按价位的数据(主动买量与卖量、买单笔数与卖单笔数)。它不是 tick 导出;缓存并不保存逐笔成交。之所以生成两个文件,是为了让K线和它的价位数据能按 bucket_ts_ns、symbol 和 timeframe 关联起来。

什么都没加载时按钮不可用(「尚无可导出的已加载数据」)。点击它会打开一个确认框:「把已加载的K线及其价位数据以压缩 CSV 导出到 文档 › Senzoukria › Exports?」后面跟着「立即导出」。进度显示为「正在导出… {bars} 根K线,{levels} 个价位」,可以取消;完成信息会给出数量、大小、首尾 UTC 时间戳,以及有多少根K线没有价位数据(只有 OHLC)。「在文件夹中显示」会定位到 bars 文件。

两个文件的结构
文件说明
barsbucket_ts_ns, bucket_utc, symbol, timeframe, source, open, high, low, close, volume, delta, delta_high, delta_low, trades, levelsbucket_ts_ns 是K线开盘的纳秒纪元时间;bucket_utc 是同一时刻的 ISO 8601 UTC 写法。source 是每一行的缓存来源:live、ohlcv、aggtrades、tick,或某个桥接的名称。
levelsbucket_ts_ns, symbol, timeframe, price, buy_volume, sell_volume, buy_trades, sell_trades每个成交价位一行。方向未知时该字段为空,绝不写 0。

行为

导出命令所应用的规则
规则取值作用
压缩gzip 开启文件以 .csv.gz 结尾。
绝不覆盖-2、-3 … 后缀同名的早先导出会被保留;新文件会获得带编号的名称。
流式写入每页 2,000 根K线逐页写出;缓存锁按页获取,因此导出期间图表仍可继续读取。
进度事件每 5 页一次更新K线和价位的计数。
取消在页之间会删除部分写出的文件;结果报告为已取消,绝不报告为成功。
最长窗口366 天更长的区间会被拒绝。
无法读取的价位数据会被计数价位 JSON 无法读取的K线会以空的 levels 列导出,并与「没有价位数据的K线」分开计数。

限制与陷阱

在其他软件里打开这些文件之前:

  • 单位与数据源一致:期货为合约手数,加密货币为基础币单位。文件不做任何换算。
  • 文本字段做了防电子表格公式注入处理(开头的 =、+、- 或 @ 会加上一个单引号前缀),必要时按 RFC 4180 加引号。
  • 导出覆盖的是已加载区间,而不是整个缓存。需要更多数据时,请先加载更宽的历史窗口。
  • 标记为 ohlcv 的K线没有价位数据:它们来自 OHLC 兜底,而不是 tick 重放。

其他语言版本

常见问题

文件会存到哪里?
文档 › Senzoukria › Exports。如果无法解析「文档」文件夹,就使用应用数据文件夹下的 exports 目录。完成信息会显示完整路径,「在文件夹中显示」会打开它。
为什么有些价位字段是空的而不是 0?
空字段表示该价位上那一侧是未知的。「0」和「不可用」是被刻意区分开的。
可以导出 tick 吗?
不行。缓存保存的是按K线和按价位汇总的数据。回放时段会单独保存 tick 数据,但这个按钮只导出K线和价位数据。