如何把 Coinbase 和 Kraken 的交易记录导出为 CSV
分步骤从 Coinbase、Kraken 和券商导出交易记录,说明一份好的 CSV 应该包含什么,以及怎样避免把文件弄坏。
作者:Sonar team阅读约 7 分钟
大多数交易所和券商都允许你在账户的报表、对账单或文档栏目里,把交易记录下载为 CSV 文件。在 Kraken,你在 Documents 页面申请导出"Trades"或"Ledgers";在 Coinbase,你生成一份交易历史报表;在券商那里,你下载账户的交易或流水记录。导出全部时间范围,原始文件保持不动,再把副本导入追踪工具或表格。
这篇指南讲为什么要导出、在最常见的平台上怎么导出,以及怎样避开让 CSV 导入出错的问题。
为什么要导出交易记录
- 持仓成本和收益。 买入记录是你付了多少钱的唯一凭证。参见什么是持仓成本。
- 长期表现。 追踪工具只有拿到交易记录,才能重建你过去的组合市值。
- 报税。 报税工具和会计师通常都从这些导出文件开始。
- 更换 App。 有了 CSV,就能把历史从一个工具带到另一个工具。
- 关闭账户之前。 账户关闭后,找回历史可能很麻烦。先导出。
从 Kraken 导出
Kraken 的帮助文章《How to export your account history》介绍了流程:
- 登录后,从个人菜单打开 Documents。
- 新建导出,选择类型:Trades 或 Ledgers(见下文)。
- 选择开始和结束日期,需要的话按资产或交易对筛选。
- 格式选择 CSV。
- 提交申请,稍后回到 Documents 页面查看。
两种导出覆盖的内容不同:
- Trades: 每一笔成交,包含交易对、价格、数量和手续费。
- Ledgers: 每一次余额变动,包括充值、提现、手续费和其他变动。
Kraken 提示,生成文件可能需要几分钟,也可能更久,而且文件准备好时不会发邮件通知。订单历史无法直接导出,已成交的部分可以在 Trades 中看到。
提示: Trades 和 Ledgers 都导出。只有 Trades 会漏掉充值、提现和质押变动;只有 Ledgers 又不太容易看出买卖。
从 Coinbase 导出
Coinbase 可以在账户的报表或对账单栏目里生成交易历史报表。一般步骤:
- 在网页端登录,打开报表或对账单栏目(菜单名称会变,当前路径以 Coinbase 帮助中心为准)。
- 报表类型选择交易历史。
- 选择全部时间、全部资产和全部交易类型。
- 选择 CSV 并生成报表。
- 准备好后下载文件。
Coinbase 的 CSV 在列标题上方有几行标题文字。表格软件和一些导入工具会在这里出错,所以保持文件原样,使用能跳过这些行的导入工具。
如果你用过报表分开的旧版 Coinbase 产品,也要一并导出,免得历史出现缺口。
从券商导出
各家券商叫法不同,但流程类似:
- 打开账户的交易记录、资金流水或对账单。
- 找到下载或导出选项,选择 CSV(或 Excel,可以另存为 CSV)。
- 选择尽可能长的时间范围。有些券商限制单次导出的时间跨度,可能需要分成几个文件。
- 如果有的话,也下载持仓明细(含持仓均价)。这是把当前持仓和成本导入工具最快的方法;交易记录则补上过去的部分。
年度税务文件通常是 PDF,不适合导入。交易数据请用交易记录的导出文件。
一份好的 CSV 应该包含什么
导入之前,打开一份副本,检查每一行是否包含:
| 列 | 为什么重要 |
|---|---|
| 日期和时间 | 给交易排序,并按正确的价格估值 |
| 类型 | 买入、卖出、充值、提现、分红、手续费、转账、奖励 |
| 资产或代码 | 识别交易的是什么 |
| 数量 | 变动了多少 |
| 价格或金额 | 计算成本和卖出所得时需要 |
| 手续费 | 调整成本和所得 |
| 币种 | 价格和手续费的计价货币 |
| 账户 | 在同一个文件里区分不同账户 |
| 交易 ID | 帮助查找重复项 |
怎样保持文件干净
- 不要改原文件。 把下载的文件存好,在副本上操作。
- 用 Excel 打开时要小心。 重新保存可能改变日期格式、把长 ID 变成科学计数法、去掉开头的 0。如果必须编辑,存为 CSV 后检查结果。
- 注意编码。 有些平台导出的文件是 GBK 编码,在某些工具里中文会变成乱码。遇到这种情况,另存一份 UTF-8 编码的副本来用。
- 核对时区。 很多导出文件使用 UTC。与北京时间相差 8 小时,会影响午夜前后和年底的交易。
- 查找重复。 合并时间段重叠的导出文件时,交易 ID 很有用。
- 每年都保存。 按平台和年份归档,换工具时也能重建历史。
把 CSV 导入 Sonar
Sonar 的 CSV 导入能读取最常见平台的导出格式,其他情况也有简单格式可用:
- 根据列标题识别文件。 Sonar 为 Koinly、CoinTracker、Delta 和 Kubera 的导出文件准备了预设,还有适用于券商持仓导出的通用格式和通用交易格式。像 Coinbase 和部分券商那样在标题行上方有说明文字的,会自动跳过。
- 每一列都可以手动重新对应,所以列名不完全一致也不会卡住导入。
- 交易会被回放成持仓,数量和平均成本来自你的历史记录。持仓文件则会带着成本导入当前持仓。
- 每个资产都会仔细匹配。 Sonar 无法识别的会保留并标记,不会被丢弃。
- Sonar 只保存文件中的行号作为参考,不保存原始行,因为原始行里可能有备注或账户信息。
没有专用格式的,可以用简单格式:交易用 date,type,symbol,quantity,price,fee,account,持仓用 symbol,name,quantity,cost_basis,account。Sonar 也提供示例文件下载。
CSV 导入在所有方案中都可用,包括免费方案。如果不想反复导出,在 Starter、Standard 和 Premium 中,Plaid 支持的交易所也可以无需 API 密钥、以只读方式连接,参见 Coinbase 和 Kraken 页面,以及把交易所连接到 App 安全吗?
从 Sonar 导出
你可以随时把 Sonar 里的交易导出为 CSV,并按日期、类型和账户筛选。列包括日期(UTC)、类型、资产、名称、数量、价格、美元价值、手续费、币种、账户、来源和交易 ID,可以直接交给表格、会计师或报税工具。


常见错误
- 只导出一年。 历史更早的话,成本取决于最初那笔买入。
- 只导出交易,不导出充值和提现。 自己账户之间的转账就会看起来像卖出或新买入。
- 在表格里重新保存文件,把日期或 ID 弄坏。
- 重复导入时间段重叠的文件,数量翻倍。
- 选了 PDF 而不是 CSV。 PDF 是给人看的,不是用来导入的。
常见问题
历史记录最远能导出到什么时候?
取决于平台。很多交易所允许从开户起导出;有些券商限制单次导出的年限。尽量选最长的范围,必要时分成多个文件。
为什么交易所的导出里没有转入币的买入价?
交易所只知道自己平台上发生的事。转入没有买入价格。把你当初买入那个平台的历史也导出来,两边一起导入。
能把多个平台的导出合并成一个文件吗?
列一致的话可以。不过通常把每个平台的文件分别导入,让工具去合并会更简单。
把 CSV 交给 App 安全吗?
CSV 可能包含账号、地址和备注。只交给信任的服务,并看清它们保存什么。Sonar 只保存显示组合所需的数据,以及原始文件中的行号。
相关页面
- 用 CSV 导入投资组合,支持券商与各类应用用 CSV 导入持仓或完整交易历史。支持 Koinly、CoinTracker、Delta 和 Kubera 预设、券商导出文件,以及从电子表格粘贴的行。
- Coinbase 投资组合追踪,通过 Plaid 只读连接把 Coinbase 和钱包、其他交易所、股票放在一起追踪。付费套餐可通过 Plaid 连接,也可以导入 CSV。无需 API 密钥,也没有任何交易权限。
- Kraken 投资组合追踪,通过 Plaid 只读连接把 Kraken 和钱包、其他交易所、股票放在一起追踪。付费套餐可通过 Plaid 连接,也可以导入 CSV。无需 API 密钥,也没有任何交易权限。
- 什么是持仓成本?跨交易所如何追踪持仓成本就是你为一笔投资付出的钱,包含手续费。本文讲清它怎么计算、为什么转币会让成本丢失,以及怎样在多个账户里把它记准。