How to import Coinbase, Kraken and Binance trades into a trading journal (CSV)
By Overfit Labs · Updated · Educational only, not financial advice.
Typing every fill into a journal by hand is the fastest way to stop journaling. Every major exchange lets you download your trade history as a CSV file, and a journal can turn that file into closed trades with entry, exit, fees and P&L. You don't need to give anyone an API key to do it.
1. Export the right file
Menu names change, so look for a trade history or transaction history export in CSV format. Pick a date range that starts before your oldest open position, or the sells won't have a matching buy.
- Coinbase: a transaction history statement from the Statements / Reports area of your account settings. The file starts with a few title lines, then a header with columns such as
Timestamp,Transaction Type,Asset,Quantity Transacted,Price Currency,Price at Transaction,Subtotal,Total (inclusive of fees and/or spread)andFees and/or Spread. Buy, Sell and Advanced Trade Buy/Sell rows are trades; Send, Receive, Convert, staking and rewards rows aren't. - Kraken: History → Export → Trades, as CSV. The download is a zip with
trades.csvinside: one row per execution withtxid,ordertxid,pair,time(UTC),type,price,cost,feeandvol. Kraken notes thatcostexcludes fees and that one order can have several executions sharing anordertxid. - Binance: Orders → Spot Order → Trade History → Export Trade History (not Order History, which includes orders that never filled). Columns:
Date(UTC),Pair,Side,Price,Executed,Amount,Fee, with the coin written after each amount, like0.01000000BTC. Older exports useMarket,Type,Amount,Total,Fee Coin.
Keep the file exactly as downloaded. Opening it in a spreadsheet and saving again can turn 2026-09-01 10:00:00 into 9/1/26 10:00 and round small quantities.
2. How fills become trades
An exchange records fills; a journal records trades. Getting from one to the other takes three steps:
- Group partial fills. One order can fill in many pieces. Pieces with the same order ID (Kraken) or the same market, side and minute (exports without an order ID) are one order.
- Match sells to buys first-in, first-out (FIFO). Each sell closes your oldest unsold coins of that market first. Selling 0.015 BTC after buying 0.01 at $60,000 and 0.01 at $62,000 closes all of the first buy and half of the second, for an average entry of about $60,667.
- Add the fees from both sides. P&L = sell proceeds − sell fee − cost of the matched coins − their share of the buy fees.
Worked example (Coinbase-style numbers): buy 0.01 BTC for a $580.00 subtotal plus $3.48 fee, later sell 0.01 BTC for $598.00 minus $3.59 fee. P&L = 598.00 − 3.59 − 580.00 − 3.48 = $10.93, with $7.07 in fees. Without the fees it would look like $18.
3. Things that trip imports up
- Sells with no buy in the file. Coins bought before the export's start date, or deposited from another wallet, have no price in the file. A good importer reports these instead of guessing. Export a longer range.
- Coins still held. Open positions aren't closed trades yet. Import again after you sell.
- Fees in another coin. Binance can charge fees in BNB. The file has no BNB price, so that fee can't be turned into dollars from the file alone.
- Fee taken from the coin you bought. On Binance a BTC fee on a BTC buy means you received slightly less BTC. The importer should reduce the quantity, not add a dollar fee.
- Pairs quoted in crypto. ETH-BTC P&L is in BTC. Keep those apart from a dollar journal.
- Time zones. All three exchanges export UTC. A trade closed at 01:00 UTC is still "yesterday" evening in New York, so the journal should place it by your local time.
- Duplicates. Importing overlapping date ranges shouldn't double-count. Each trade needs a stable ID.
4. After the import
Imported trades carry the numbers, not the thinking. Add the setup, the R-multiple (your planned risk), whether you kept your rules, and one line on why you took it. That's what turns a trade list into a trading journal you can review each week. Check exits with MFE and MAE.
Do it in Daily Edge
The free exchange CSV import reads Coinbase (transaction history and Advanced fills), Kraken trades.csv and Binance spot trade-history files in your browser. The file is never uploaded and there are no API keys. You get a preview of closed trades with fees and P&L, coins still open and anything skipped, then pick what to add. Re-importing the same file adds nothing twice. Spot only. It's a journal record, not tax software, and not financial advice.