Supported brokers/thinkorswim trading journal

A thinkorswim trading journal that shows what your mistakes cost.

thinkorswim shows every fill in the Account Statement and what you made in the Monitor tab. It does not tell you which trades broke your rules, which spreads were never your setup, or what holding losers past your stop has cost you this year. Actal takes one export from the Account Statement and does that part. Rules checked on every trade, a grade on execution, mistakes added up in dollars, one thing to fix each week.

Free during beta · No card · Built from vendor docs

Does thinkorswim have a trading journal?

Not a real one. The Tools tab has thinkLog, where you can write notes, and Monitor has the Account Statement with every fill and a Profits and Losses section. There is no grade, no mistake tags, no rules and no way to see what a habit has cost you over a month. The usual way to journal thinkorswim trades is to export the Account Statement into a journal or a spreadsheet, and that file is exactly what Actal reads.

What changes

Where thinkorswim traders get stuck, and what a week with Actal looks like.

Today

The Account Statement lists every fill. It does not tell me which trades were my setup and which ones I took because I was bored at 11:30.

With Actal

Every trade gets a grade on execution with your own setup as the checklist, kept apart from the P&L. After twenty trades you can see which wins were luck and which losses were good trades.

Today

I sold a put spread and let it expire. My spreadsheet still has it open, because there was no closing trade to type in.

With Actal

Both legs come in as one trade, named by its shape: a put vertical with its net credit. Once expiry has passed, an option still open closes at $0, so the credit you kept is the result.

Today

My rule is two 0DTE trades a day. thinkorswim will happily send the fifth one at 2:45.

With Actal

Rules are checked on every import: max trades, daily loss, size and a cooldown after a loss. The broken one is the first thing you see, in red, on the day it happened.

Today

I hold losers past my stop and cut winners early. I know it. I have written it in thinkLog more times than I can count.

With Actal

A mistake is a tag with a running dollar cost. Held past stop shows what it has cost you this month, and the most expensive mistake becomes the one thing you work on this week.

Today

Every journal wants a stop price to work out R. My spreads do not have a stop, they have a max loss.

With Actal

A long option or a defined-risk spread uses the most it could lose as its risk, so R works for verticals, butterflies and iron condors without typing anything.

Today

A margin account, an IRA and paperMoney. Three statements, and the same mistake in all of them.

With Actal

All accounts side by side, one dashboard, one execution score. A habit that shows up in every account is obvious in a week.

Charts, scans, the option chain, the Analyze tab and your thinkLog notes stay in thinkorswim. Actal does not replace them. It needs one export from the Account Statement and grades what they cannot.

Export in a minute

How to get the file out of thinkorswim.

Written from thinkorswim's own documentation and checked against real files where we have them. The same guide shows on the import page and next to any error.

One section of the statement

The Account Statement has several sections, from cash to P&L. Actal reads the Account Trade History block, with the time, side, quantity, open or close, symbol, expiry, strike and price of every fill, and rebuilds the round trips from it.

Options by series, spreads as one trade

Every strike and expiry is its own instrument, grouped under the underlying like SPY options, so different strikes never net against each other. Legs opened together and closed together become one trade, named by its shape: vertical, iron condor, butterfly, straddle, calendar.

Expired options close at $0

The trade history has no row for an expiration. Once its expiry has passed, an option still open is closed at $0 at 4 pm New York time on its expiry day, so a credit you kept counts as the win it was.

Commission, set once

thinkorswim keeps commissions in another section of the statement. The preview asks for your round-trip commission per contract and applies it to futures and options. Stock trades come in without commission.

Account Statement export
  1. 1Open Monitor > Account Statement and set the date range (up to a year).
  2. 2Make sure the Account Trade History section is shown with Exec Time, Side, Qty, Pos Effect, Symbol, Type and Price visible (gear icon to customise).
  3. 3Click the menu icon at the top right of the statement and choose Export to file, saving as CSV.
Columns to expect: A section titled "Account Trade History" with: Exec Time, Spread, Side, Qty, Pos Effect, Symbol, Exp, Strike, Type, Price, Net Price.
  • The statement has several sections; only the Account Trade History block is read. Futures, stock, ETF and option rows are imported.
  • Options: each series is its own instrument at 100 per point (options on futures at the future's), grouped as "SPY options". Expirations aren't in the trade history, so an option still open after its expiry closes at $0 on expiry day. If one was assigned or exercised instead, that trade's exit is different. Spread legs opened and closed together become one trade.
  • Exec Time is US Eastern by default; set your profile timezone to America/New_York or the zone thinkorswim shows.
  • Commissions sit in another section of the statement, so the per-contract default is applied to futures and options. Stock trades import without commission.
  • Verified against a real export of stock trades. Futures rows use the same columns with /MNQU6:XCME style symbols.
Other ways to get the file
One file per account

Each account has its own statement. Switch accounts at the top of the Account Statement, export each one, and import it into its own account in Actal.

paperMoney

Practice trades import the same way, as long as the export has the Account Trade History section. Put them in their own account in Actal so practice grades never mix with live ones.

schwab.com history

schwab.com can export your transaction history as a CSV from Accounts, History. There is no ready-made importer for that file, so it goes through the column mapper. The thinkorswim statement is the better file: Actal reads it directly, options and spreads included.

After the import

Every trade checked against your rules, then graded.

Daily loss limit, max trades, size and cooldowns are checked the moment the file lands. Then each trade gets a grade on execution with your own setup criteria as the checklist, a mistake tag if there was one, and the chart marked up so the lesson sticks.

Rules judged on import, broken ones first
A to F on execution, P&L in a separate column
Mistakes with a running dollar cost
One thing to fix each week
actal.io/trades/9e54…
Trade review
3 of 7 in the queue
MNQZ5Short · 4 contracts
28 Aug 10:42 → 11:07 · Apex Eval 50K
−$418.50
23,412.25 → 23,464.50 · 25 min
Add screenshot
Paste or drop a chart, then draw your entry, stop and target on it
stop moved here
▤ libraryDraw on chart
marked up
10:55 Price came back to entry and I moved the stop instead of taking the flat. Third time this month.
Rule break on this trade
Kept trading after the daily loss limit ($750) was hit
2 trades after the line, netting −$418.50.
Discipline grade
A1
B2
C3
D4
F5
D · Rules broken, position held past the plan.
Mistakes
Moved stopTraded past daily loss limitChasedRevenge
Tags
pullbackopen driveNY session
Strategy
Opening drive
State
Frustrated
Trade 3 of 7 in the queue
J / K to move · 1–5 to grade · ⏎ to save
Save & next
When the import goes wrong

Five things that happen with thinkorswim files, and the fix.

The file is not recognised

The export has no Account Trade History section. Open Monitor, Account Statement, check that Trade History is shown for your dates, and export again from the menu at the top right.

Expiry, strike or open and close are missing

Only the columns you can see are exported. Click the gear icon on the Trade History section, choose Customize, then Load Defaults, and export again.

Trades are missing

The statement covers the last 24 hours until you pick a range. Set the dates in the dropdown next to the account number and export again. Nothing you already imported is doubled.

Times are a few hours off

Exec Time has no timezone in the file and is US Eastern by default. Set your profile timezone to America/New_York, or the zone thinkorswim shows, and import again. The preview shows the times before anything is saved.

P&L does not match thinkorswim

Two usual causes. Commissions are not in the trade history, so set your commission per contract on the preview. And an option that was assigned or exercised has no row either, so it closes at $0 like an expired one. Check those few trades against your statement.

actal.io/settings/rules
Settings
Risk rules
Risk rules
Your own limits, checked against every trade automatically. Stopping at a limit is a rule kept; the trades taken after a line is crossed are what break it.
1R = $250R size
Pause
Stop for the day after losing 3R ($750)Daily loss limit
every account · hit 4×, respected 2×, last 90 days
Pause
At most 6 trades per dayMax trades per day
every account · kept every day, last 90 days
Pause
Wait 15 min after a losing tradeCooldown after a loss
every account · broken on 1 day, last 90 days
Pause
Only trade between 09:30 and 11:30Trading window
every account · kept every day, last 90 days
Pause
Stop for the day after 3 losses in a rowStop after consecutive losses
every account · hit 1×, respected 1×, last 90 days
Pause
Also for

Cash, margin, IRA and paperMoney, side by side.

Each thinkorswim account becomes an account in Actal with its own rules where they differ, and one dashboard across all of them. A habit that shows up on every account is easy to see.

Cash, margin and IRA accounts
paperMoney practice, kept apart from live
Stocks, options, futures and futures options in one journal
Questions

thinkorswim questions

In thinkorswim open Monitor, Account Statement, and pick the account and the dates. Check that the Trade History section is shown, then open the menu at the top right of the statement, choose Export to file and save the CSV. Drop it on the import page. The section is recognised, the preview shows the first trades, and you click Import.