Schwab website
Log in to schwab.com, open Accounts, and find History or Transaction History. Filter to your account and date range, then export the CSV.
Charles Schwab trade history chart
This guide is for Schwab traders — including thinkorswim users — who want each round trip drawn on real candles instead of a cropped screenshot. Export your transaction history, map the fills to a small CSV, and KLinePic renders a review image with buy/sell markers, holding window, return, max run-up, and max drawdown — no manual charting, no account required to start.
Schwab gives you two sources for trade history: the transaction history view on schwab.com, and — for thinkorswim, now part of Schwab — the platform's Account Statement. Schwab does not publish a public article documenting the website CSV's exact layout, so treat the website steps as the general shape; thinkorswim is better documented, with the Account Statement and its Trade History columns described in the official thinkManual.
Log in to schwab.com, open Accounts, and find History or Transaction History. Filter to your account and date range, then export the CSV.
Per the official manual, the Account Statement's Trade History columns include Exec Time, Side, Qty, Symbol, and Price — exactly what a review chart needs.
Keep only executed trades: a buy/sell action, ticker, quantity, fill price, and date or time. Dividends, interest, and transfers do not belong on a review chart.
Remove account numbers and personal identifiers before uploading. A review chart only needs symbol, side, time, price, and quantity.
Schwab does not publicly document the website export's column headers, so map by what each column contains — every export carries a symbol, side, time or date, price, and quantity. For thinkorswim, the notes use the Trade History columns the official thinkManual documents. The full specification is in the data protocol.
| Typical column in your export | KLinePic field | Notes |
|---|---|---|
| Order or fill identifier | trade_id |
Reuse one ID for every fill of the same round trip; a hand-made ID like SCHW-AMZN-01 works fine. |
| Ticker symbol | symbol |
Plain ticker such as AMZN; drop any company-name description column. |
| Action / side (Buy, Sell) | event_type |
Lowercase buy or sell. Skip non-trade actions; thinkorswim's equivalent is the Side column. |
| Direction context | position_side |
Regular stock purchases are long; use short for short sales. |
| Trade date / execution time | time |
ISO 8601 with an explicit offset, e.g. 2026-06-08T10:15:00-04:00. thinkorswim records an Exec Time; a date-only value still works on daily candles. |
| Fill price | price |
The price the order actually executed at — not the limit price you placed. |
| Quantity / Qty | quantity |
Shares actually executed, as a positive number. |
| Fees & commissions | fee |
Optional — use 0 if you do not track fees per fill. |
| Fee currency | note |
KLinePic has no fee-currency column. Unrecognized columns are ignored on import and listed back to you. Keep the currency as free text in the optional note field, e.g. currency=USD, only when you want it preserved. |
One row per fill, one shared trade_id per round trip. A complete AMZN swing trade is two rows:
trade_id,symbol,event_type,position_side,time,price,quantity,fee,note SCHW-AMZN-01,AMZN,buy,long,2026-06-08T10:15:00-04:00,185.20,10,0,currency=USD SCHW-AMZN-01,AMZN,sell,long,2026-06-15T14:40:00-04:00,192.50,10,0,currency=USD
From these two rows KLinePic draws entry and exit markers on real AMZN candles, shades the holding window, and computes return, max run-up, and max drawdown. The US stock CSV template is ready to edit.
How the common options compare for getting your Schwab fills onto a real candlestick chart:
| KLinePic | Manual screenshot + spreadsheet | Typical trading-journal SaaS | |
|---|---|---|---|
| Setup time | Minutes — upload or paste fills in the browser | Slow — recreate chart and annotations by hand per trade | Moderate — sign up, then import or sync broker data |
| Account required | No — render without an account | No | Usually yes |
| Output | Annotated K-line review chart with trade stats | Static screenshot plus separate spreadsheet rows | Dashboards and statistics; chart output varies |
| Buy/sell markers on real K-line | Yes — plotted from your actual fills | Only if you draw them yourself | Varies by product |
| Shareable image | Yes — the chart image is the primary output | Manual cropping and annotation each time | Usually screenshots of dashboards |
| Cost to start | Free to start; watermark-free hi-res export is paid | Free, but costs time on every single trade | Often subscription-based |
If a chart shows an entry you never made, a dividend, interest, or transfer row probably slipped through — keep only actual buy and sell executions.
A timestamp without an offset can land your marker on the wrong candle, especially near the open. Write times as ISO 8601 with an explicit offset; date-only rows are fine on daily candles.
A 100-share order filled in three chunks is three rows. Give all three the same trade_id so they render as one trade instead of three fragments.
Use the plain ticker (AMZN, AAPL). Company-name descriptions and option-contract strings will not match US stock K-line data.
Brokerage exports often mark sells with negative amounts. KLinePic expects event_type to carry the side and quantity to stay positive.
Third-party importers report that Schwab's web export caps rows per file. If a long range yields an empty CSV, re-export in shorter windows — quarter by quarter works well.
Log in to schwab.com, open the Accounts area, and look for History or Transaction History. Filter to the account and date range, then use the export control to download a CSV. Schwab does not publish a public article documenting the export's exact layout, so labels can vary.
Usually a little. Schwab activity mixes trade executions with dividends, interest, and transfers, so keep only the buy and sell fills, then map the remaining trade columns onto the KLinePic fields by what they contain: symbol, side, time, price, and quantity.
thinkorswim is part of Charles Schwab, and its official manual documents the Account Statement's Trade History section, whose columns include Exec Time, Side, Qty, Symbol, and Price. Those map directly onto KLinePic's time, event_type, quantity, symbol, and price fields.
Give every fill of the same round trip the same trade_id — rows that share a trade_id are grouped into one trade, so a scaled entry or staged exit still renders as a single review chart.
Use ISO 8601 with an explicit UTC offset, such as 2026-06-08T10:15:00-04:00 for US Eastern in summer. If your export carries only a trade date, keep it — daily candles still place the marker correctly.
US stock symbols are matched to US equity K-line data so entry and exit markers land on the correct candles.
No. KLinePic is free to start and does not require an account to render a trade review chart. Watermark-free high-resolution export is available as a paid option.
Yes. Batch rendering is supported, and a documented Agent API covers automated generation — see the guide at klinepic.com/guides/trade-review-chart-api/ and the data protocol at klinepic.com/docs.