把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 文件。
列
| 文件 | 列 | 说明 |
|---|---|---|
| bars | bucket_ts_ns, bucket_utc, symbol, timeframe, source, open, high, low, close, volume, delta, delta_high, delta_low, trades, levels | bucket_ts_ns 是K线开盘的纳秒纪元时间;bucket_utc 是同一时刻的 ISO 8601 UTC 写法。source 是每一行的缓存来源:live、ohlcv、aggtrades、tick,或某个桥接的名称。 |
| levels | bucket_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线和价位数据。