UTC timestamps read as local time
Coinbase reports are typically stamped in UTC. Chart those times as local and every marker shifts by hours. Encode the offset explicitly — +00:00 — in time after you confirm the zone.
Coinbase trade history chart
This guide is for Coinbase and Coinbase Advanced Trade users who want their real fills on the chart instead of buried in a transaction report. Export your trade history from Coinbase, map the fill rows into KLinePic's CSV schema, and render a shareable review image with entry/exit (B/S) markers, holding window, return, max run-up, max drawdown, and optional indicators such as MACD.
KLinePic is free to start and needs no account to render — the loop from a Coinbase report to a finished review image takes minutes, whether you traded this morning or are revisiting fills from years back.
Coinbase does not surface a single "download trades" button in the same place for everyone — the exact menu names and paths shift over time and between the retail and Advanced Trade experiences. Rather than quote a click path that may already be stale, the notes below stay deliberately general; check Coinbase's official help center for the current wording before you export.
Wherever the button lives today, the goal is the same: a CSV with one row per executed fill that you can rename into the KLinePic schema.
Coinbase's export column headers differ between the retail transaction report and the Advanced Trade fills file, so treat this as a checklist against whatever columns your export actually contains rather than a fixed header list. The target schema is fixed: KLinePic reads trade_id, symbol, event_type, position_side, time, price, quantity, fee, note, documented in the data protocol. Extra columns are ignored on import and listed back to you; copy details such as the fee currency into note only when you want them preserved in the normalized record.
| KLinePic field | Your export's typical column | Notes |
|---|---|---|
| trade_id | Sometimes present on Advanced Trade fills; often none on transaction reports | Use one stable id per round-trip trade; entry and exit fills share it. Reuse Coinbase's id or create your own. |
| symbol | Product / pair / asset column | Coinbase uses hyphenated pairs such as BTC-USD or ETH-USD. Normalize to the symbol your K-line data expects and keep it consistent across the file. |
| event_type | Side / transaction type column | Normalize to lowercase buy or sell. Non-trade types (deposit, withdrawal, staking reward) do not belong on the chart. |
| position_side | Usually not present for spot | Coinbase spot buying and selling has no shorting, so default to long. Only set short if a row genuinely represents a short position. |
| time | Timestamp / created-at column | Coinbase reports are typically in UTC; confirm it and write explicit offsets like +00:00. |
| price | Price / price at transaction column | Use the executed fill price, not an order's requested limit price. |
| quantity | Quantity transacted / size in the base asset | Base units (0.1 BTC), not the quote total in USD. If a report shows only the quote amount, derive the base size. |
| fee | Fee / fees column | Optional, but useful for honest net-return journaling. |
| note | Fee currency or free text | Optional. There is no fee_asset column in KLinePic — keep the fee currency as note text such as fee_asset=USD, or drop it. |
A complete Coinbase round-trip trade — one buy, one sell, same trade_id — looks like this after mapping:
trade_id,symbol,event_type,position_side,time,price,quantity,fee,note COINBASE-BTC-001,BTC-USD,buy,long,2026-05-10T09:15:00+00:00,61250.00,0.1,3.06,fee_asset=USD COINBASE-BTC-001,BTC-USD,sell,long,2026-05-10T18:45:00+00:00,62880.00,0.1,3.14,fee_asset=USD
Scaling in or out simply adds more rows with the same id. The crypto exchange template ships this exact header so you can paste mapped rows straight in.
| KLinePic | Manual screenshot + spreadsheet | Typical trading-journal SaaS | |
|---|---|---|---|
| Setup time | Minutes: export, map, paste | Slow, repeated by hand per trade | Onboarding plus per-exchange import setup |
| Account required | No account needed to render | None | Usually requires sign-up first |
| Output | Annotated K-line image with trade metrics | Static screenshot plus separate numbers | Web dashboards and statistics |
| Buy/sell markers on real K-line | Yes, B/S at actual fill price and time | Drawn manually, easy to misplace | Varies by product and plan |
| Shareable image | Yes, the chart itself is the deliverable | Screenshots without computed context | Often screenshots of dashboards |
| Cost to start | Free to start | Free, but pays in time | Commonly subscription-based |
Coinbase reports are typically stamped in UTC. Chart those times as local and every marker shifts by hours. Encode the offset explicitly — +00:00 — in time after you confirm the zone.
Coinbase writes pairs as BTC-USD or ETH-USD. If your K-line data source expects a different form, normalize every row to one consistent symbol so the fills match the right market.
Reports often carry both the base amount and its USD value. quantity must be the base amount (0.1 BTC), not the dollar total of the fill.
Transaction reports mix in deposits, withdrawals, staking rewards, and transfers. None of those are trades — drop every row that has no executed buy or sell price and size.
A Convert between two assets is not the same as an order-book buy or sell. Keep converts out unless you can express them as a clean priced trade in the base asset.
Order history records what you requested — including canceled or unfilled orders — not what executed. Use the fills export and drop every row without a real fill price and size.
Export your transaction or trade history from Coinbase, map the fill rows into KLinePic's CSV fields (trade_id, symbol, event_type, position_side, time, price, quantity, fee, note), then upload or paste the CSV to render. No account is needed.
Yes. Advanced Trade fills render the same way as simple buys and sells once each row has symbol, side, time, price, and size. Normalize Coinbase's hyphenated pairs such as BTC-USD to the symbol your K-line data uses.
Coinbase typically lets you generate transaction reports over a chosen date range from your account history, but exact ranges and report types vary — check Coinbase's official help center. For long spans, export in slices and merge the files before rendering.
Coinbase reports typically timestamp activity in UTC, but confirm this against your own export. Write the offset explicitly, such as 2026-05-10T09:15:00+00:00, so markers land on the correct candles.
No. A downloaded transaction or fills report is enough; KLinePic renders from an uploaded or pasted file. For automation there is a documented Agent API and a CSV/JSON data protocol.
Yes. Batch rendering is supported — a month of Coinbase fills becomes a full set of review images in one pass, via the web UI or the documented Agent API.