UTC timestamps read as local time
Binance's spot history is shown in UTC+0. Chart those times as local and every marker shifts by hours. Encode the offset explicitly — +00:00 — in time.
Binance trade history chart
This guide is for Binance spot and futures traders who want their real fills on the chart instead of buried in the Orders table. Export your trade history from Binance, 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 statement to review image takes minutes.
Binance exports spot and futures history separately. The steps below follow two official help-center articles: How to Download Spot Trading Transaction History Statement and How to Download My Order History for USDⓈ-M and COIN-M Futures Orders.
The same article notes the history is shown in UTC+0.
Binance's help center documents the export paths but not exact column headers, which can differ between spot and futures files — treat this as a checklist against your export's typical columns. 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 | Usually none — create your own | One stable id per round-trip trade; entry and exit fills share it. |
| symbol | Pair / market column | Spot pairs such as ETHUSDT already match K-line data; keep coin-margined symbols separate from USDT pairs. |
| event_type | Side / direction column | Normalize to lowercase buy or sell. |
| position_side | Futures direction column, if present | Spot can default to long; futures — especially hedge mode — need explicit long / short. |
| time | Fill / trade time column | Binance's help page says spot history is shown in UTC+0; write explicit offsets like +00:00. |
| price | Fill / executed price column | Use the executed price, not the order's limit price. |
| quantity | Executed amount in the base asset | Base units (1.2 ETH), not the quote total in USDT. If a futures export shows contracts, convert or stay consistent. |
| fee | Fee amount column | Optional, but useful for honest net-return journaling. |
| note | Fee currency column | Optional free text. There is no fee_asset column in KLinePic — keep the fee currency as note text such as fee_asset=USDT, or drop it. |
A complete Binance 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 BINANCE-ETH-001,ETHUSDT,buy,long,2026-05-10T09:15:00+00:00,2450.25,1.2,0.0012,fee_asset=ETH BINANCE-ETH-001,ETHUSDT,sell,long,2026-05-10T18:45:00+00:00,2528.70,1.2,3.03,fee_asset=USDT
Scaling in or out simply adds more rows with the same id. The Binance 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 |
Binance's spot history is shown in UTC+0. Chart those times as local and every marker shifts by hours. Encode the offset explicitly — +00:00 — in time.
One order can execute in several fills. Keep the rows but give them one trade_id; otherwise a single scale-in reads as five unrelated trades.
Exports often carry both the executed base amount and its quote total. quantity must be the base amount (1.2 ETH), not the USDT value of the fill.
USDT-margined and coin-margined contracts are different products with different symbols and prices. Map each to its own symbol and never merge their rows into one trade.
Hedge mode can hold long and short on the same contract at once. Without an explicit long/short, a closing buy is indistinguishable from an opening buy.
Order history records what you asked for — limit prices, canceled orders — not what executed. Drop every row without a real fill price and size.
Export your fills from Binance, map them 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. USDⓈ-M and COIN-M fills render the same way once each row has symbol, side, time, price, and size. Futures history is a separate export from spot, and derivatives rows should carry an explicit position_side.
Per Binance's help center, a spot statement covers up to a full year from a selected date after 2017-07-13, with at most five statements per month. For longer periods, export in slices and merge the files.
Binance's spot trade history help page notes the history is shown in UTC+0. Write that into time as an explicit offset such as 2026-05-10T09:15:00+00:00 so markers land on the correct candles.
No. The statement download 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 Binance trades becomes a full set of review images in one pass, via the web UI or the documented Agent API.