Every trade in SOAP2 is, underneath, a list of executions (fills): what was bought or sold, when, how many, at what price, with what commission. That list is the Trade Log, TLog for short. Positions, average costs, realised P&L, margin, the Risk Graph and every report are computed from it. This page explains everything you can do with it: read it, load only part of it, fix it, split it, step back through its earlier states, save snapshots of it, and see how it relates to Rewind.
The short version:
Related:
A trade's TLog grows when executions are added to it:
Each trade is one file per account under Trades\<account> in your SOAP2 data folder. The Trade Log window is the only place you see that file as rows.
The window hides rather than closes (Esc or the Hide button), so it comes back instantly and keeps its place. If you have unsaved edits when you hide it, SOAP2 asks (see Editing and saving). The toolbar shows the symbol, account, trade name and trade number, the realised P&L (Real P&L) and the Cost of the fills you have ticked.
| Column | What it is | Editable? |
|---|---|---|
| Select | Tick = this fill counts in the OA, the Risk Graph, margin and the cost shown in the toolbar. See Select. | Yes (never saved to the file) |
| Account, ConId, ExecId | Account, IB contract id and execution id of the fill. | No |
| Combo, Date | Which combo order it was part of, and when it was executed. | No |
| Expiry, Strike, Right | The option leg (a stock or future leg has no strike or right). | No |
| Buy/Sell, Qty | Direction and size of the fill. | No |
| Symbol / description | The contract as IB describes it. | No |
| Price | Fill price per unit. | Yes |
| Currency | Contract currency. | No |
| Commission | Commission charged on that fill. | Yes |
| Net | Net amount of the fill (and the realised P&L in the Aggregate view). | No |
| Notes | Free text, kept in the file. | Yes |
| Settlement Px | The settlement price for a leg that has expired. See Settlement prices. | Yes |
Quantity, side and contract are read-only on purpose: they are what IB reported. To correct a wrong fill you change its price or commission, or delete and re-enter the trade. Legs that have already expired are listed, but start unticked.
The Select tick is the single most powerful control in the window. The OA does not use "the trade file"; it uses the ticked fills. Tick everything and you see the real trade. Untick the fills you want to ignore and the position cells, average costs, realised P&L, margin and Risk Graph all recompute from the rest, immediately, with no save and no order.
Typical uses:
What SOAP2 records. The moment a partial selection is loaded, SOAP2 remembers that the OA is working from a slice of the trade and how big (for example custom selection, 3 of 7 executions). That label travels with the figures: it appears in the saved results and in what the AI Assistant reads, so nothing mistakes a what-if for the full position. The slice ends by itself when anything reloads the trade (a commit, a conversion, an import, a save): the OA returns to the full trade.
What a partial selection does not change. The file on disk, your account, and the Trade Reports window, which always reports the whole trade whatever is ticked.
Ticking is a view setting, not an edit: it never enables Save and is never written to the file.
When the trade has fills on at least two different days, the Timeline button becomes available and a slider appears along the bottom of the grid. Each notch is one day on which fills happened. Drag it and every fill dated up to and including that day is ticked, later ones unticked, and the OA follows. The right-most position is the full trade; clicking the Timeline button resets to it.
It is the quick way to say "show me the trade as it stood at the end of Tuesday", at day granularity. For finer steps (every individual change, with the exact times) use Back and Forward. As with Select, it is a view: nothing is saved and no order is sent, and it is recorded as a partial selection (a cutoff date).
Price edits matter: they change realised P&L, average cost and margin in the OA, the Trade List, the Portfolio and the reports.
An option that expired needs a settlement price to compute its final value. For an expired leg with no price recorded, SOAP2 looks up the underlying's daily close for the expiry date and fills Settlement Px for you; the Real P&L is then right without any typing. You can overwrite the value (some products settle at an opening print, for example). Prefilled values are saved quietly when you hide the window, since you did not decide them; your own edits always ask first.
The => Aggregate button swaps the fills for the net position per contract: one row per strike with its net quantity, average price, commission and realised P&L. The button always names the view a click takes you to (=> Full Trade Log when you are in the aggregate).
The Aggregate view is for reading only. Save is disabled there, so aggregate rows can never overwrite your executions. Switching away from it asks about unsaved edits first.
The hint in the status bar says it: right-click all or part of the TLog to split into subtrades. What you get depends on what is ticked:
Splitting only ever copies: the original trade is untouched. The new trades are numbered and appear in the Trade List and the OA trade selector like any other. It is how you separate a long-running position into the campaign's individual adjustments, or peel off a hedge to track on its own.
The ◀ and ▶ buttons (on the OA toolbar before TLOG, and on the Trade Log toolbar), or Alt+Left / Alt+Right, step through the states the trade has had. Full details are in Back and Forward; here is how it fits with the rest.
What is recorded. Just before SOAP2 changes the trade's log it keeps a checkpoint: when executions are added or converted, when a trade file update is written, and when you Save the Trade Log. Up to 20 checkpoints per trade, kept 30 days, in Trades\<account>\History\<trade>. A state identical to the previous one is not stored twice.
For trades that were already in your folder when this feature arrived, SOAP2 rebuilds one checkpoint for each distinct fill time at startup, so you can step through their past too (the newest always equals the live file).
What a step does. It ticks the fills that existed at that checkpoint and unticks the rest, exactly as if you had done it by hand with Select, then the OA follows. A red SIMULATION banner shows on the OA and Trade Log while a past state is on screen. Step Forward to the newest state, or make any real change (commit, convert, save), and the banner goes and the live selection returns.
Select, Timeline and Back/Forward are three ways of choosing the same thing (which fills count): by hand, by day, and by recorded state. All three are what-ifs on screen; none rewrites the trade or touches your account.
| Control | Granularity | Best for |
|---|---|---|
| Select ticks | Any combination of fills | Isolating one adjustment, hand-built what-ifs |
| Timeline | One step per day | "The trade as of that day" |
| Back / Forward | One step per recorded change | "Undo" a roll or adjustment and replay it |
The TLog says what you did. A report says how it is doing: P&L, margin and their history. SOAP2 offers them at two levels.
The Report dropdown on the OA toolbar acts on the trade selected in that OA:
A saved report is frozen: it always shows its age and never updates. It also belongs to the trade, so deleting the trade removes it (see Trade Reporting & Saved Reports for the rules, the Snapshot History comparison tab and the Totals tab).
Snapshot or checkpoint? A checkpoint (Back/Forward) stores the fills so you can replay the trade's structure. A snapshot stores the report (P&L, margin, picture). Checkpoints are automatic and expire; snapshots are yours and stay until you delete them.
Both features let you look at the past, but they travel along different axes:
| Back / Forward, Timeline, Select | Rewind | |
|---|---|---|
| What changes | Which of your fills count | The market: chain prices, Greeks, IV, sigma lines, date and time |
| What stays | Today's market data | (Your recorded fills, filtered up to the moment chosen) |
| Needs | Nothing extra | Premium; historical data (downloaded on demand) |
| Writes anything? | No | No |
Rewind also uses the TLog. While it is showing a past moment, your position, average costs and realised P&L are the ones the fills made up to that moment: early in a trade you see the smaller position you held then, and before the first fill you see nothing held. Resume Live restores the current position.
The two cannot be combined at once: Back and Forward do nothing while Rewind or CBOE playback is active, so Resume Live first. A natural workflow:
If a Rewind position ever looks off around the time of a fill, remember that fills carry their own timestamps: check them in the Date column and report anything odd with Send Feedback.
| You want to... | Use |
|---|---|
| See the Risk Graph without one adjustment | Untick its fills (Select) |
| See the trade as at the end of a given day | Timeline |
| Step back through each change like an undo | Back / Forward (Alt+Left / Alt+Right) |
| See the market and Greeks as they were on a past day | Rewind (Ctrl+Shift+R) |
| Correct a price or commission, note something | Edit the grid, then Save |
| Separate a hedge or roll into its own trade | Right-click ▶ split |
| Keep a dated record of P&L and margin | Save snapshot (Alt+V) |
| See P&L across all trades, by account or symbol | Trades ▶ Trade Reports |
| Move a trade to another account, or between PCs | Export / Import, Copy / Move |
The position in my OA does not match IB. Why?
Check the Trade Log: some fills are probably unticked (Select, Timeline or a Back/Forward step), and the OA toolbar may show a SIMULATION banner. Step Forward to the newest state, or click the Timeline button, to return to the full trade.
I unticked a fill. Is it deleted?
No. Ticks are only a view and are never saved. The fill is still in the file; tick it again.
Can I undo a Save?
Yes, indirectly: SOAP2 stored a checkpoint just before it, so Back returns to the previous state.
Why can I not edit quantity or side?
They come from IB's execution report. Fix a price or commission in the grid, or use the Trade List to delete the trade and re-create it.
Does a snapshot change if I edit the Trade Log later?
No. A saved report is frozen at the moment it was taken. Save another one to record the corrected figures.
Where is everything stored?
Trade files in Trades\<account>, checkpoints in Trades\<account>\History\<trade>, archived trades in Archived Trades, all under your SOAP2 data folder.
Go back to the main help page: SOAP2 Help Guide