SOAP2Docs ← Website
SOAP2 top banner # SOAP2 Quick Help Guide **Latest:** [Release Notes](./ReleaseNotes.md.html) SOAP2 (Simple Options Analysis Platform) is a Windows desktop app for options analysis and trade workflow on **Interactive Brokers (TWS)** via the IB API. SOAP2 is **not affiliated** with Interactive Brokers. Note: SOAP2 is in **early access** – expect bugs and rough edges. Please provide feedback to help improve! - SOAP2 does not provide backtesting or strategy optimization (yet) – SOAP2 is focused on live analysis and trade preparation. --- ## Start Here (60 seconds) 1. If not done already: install SOAP (or unzip and update/repair with the provided MSI file). 2. Install/launch **IB Trader Workstation (TWS)** (latest stable version). 3. In TWS: **Global Configuration → API → Settings**: - Enable **ActiveX and Socket Clients** - Preferably keep **Read-Only API** : **unchecked** (not to constrain features) - Port is typically **7496** (paper) or **7497** (live). SOAP uses either port. - SOAP default client id is typically **9**. 4. Launch SOAP → click the **IB connection** button (red IB icon) → **TWS → Connect** - SOAP will attempt to start TWS if not already running, and show the login form. 5. Click the **green Arrow** button to open a new **Options Analysis (OA)** window → pick an **expiry** → **Confirm Expiry** (or press **Enter**) --- ## Table of Contents - [Message Log (diagnostics)](#message-log-diagnostics) - [Installation prerequisites](#installation-prerequisites) - [Connection prerequisites (TWS)](#connection-prerequisites-tws) - [Core concepts](#core-concepts) - [What is an OA?](#what-is-an-oa) - [Multi-display support](#multi-display-support) - [Tickers (watchlist)](#tickers-watchlist) - [Accounts](#accounts) - [Trades](#trades) - [Basic usage](#basic-usage) - [Changing strike intervals](#changing-strike-intervals) - [Data usage limits (IB pacing)](#data-usage-limits-ib-pacing) - [Licensing & editions](#licensing--editions) - [Keyboard shortcuts](#keyboard-shortcuts) - [Checking Executions and Allocating them to Trades](#checking-executions-and-allocating-them-to-trades) - [Importing trades from ONE](#importing-trades-from-one) - [Closing SOAP2](#closing-soap2) - [Troubleshooting](#troubleshooting) - [Providing feedback / bug reports](#providing-feedback--bug-reports) - [Glossary](#glossary) - [Community](#community) --- ## Message Log (diagnostics) The **Message Log** helps diagnose connection/data issues and captures important runtime messages. - Icon: **notepad** on the top toolbar (left of the **Wheel** icon) - Saved automatically to your SOAP data folder as: `MessageLog.txt` When reporting issues, include `MessageLog.txt` (and a screenshot if relevant). See the Troubleshooting section of the Settings menu for reporting details. --- ## Installation prerequisites - Windows 10 or later (64-bit) only: .NET 10 may allow porting SOAP2 to other non-MS platforms in the future. - 8 GB RAM minimum (16 GB or more recommended) - SOAP2 runs on **.NET 10** (runtime included in installer), but you can also install the runtime separately if needed: - https://dotnet.microsoft.com/en-us/download/dotnet/10.0/runtime - Latest stable IB TWS: - https://www.interactivebrokers.ie/en/trading/trading-platforms.php?p=ibkr-desktop#platform-tabs - IB API: included with SOAP2 (no separate install required) Installation prerequisites are displayed during setup. SOAP may be able to run on Linux via Wine, but this is not supported and may require additional configuration. --- ## Connection prerequisites (TWS) SOAP2 connects to **Trader Workstation (TWS)** using the IB API. It also works with the IB Gateway. In TWS's top menu: **Global Configuration → API → Settings** Recommended local settings: - Socket port: `7496` or `7497` (SOAP2 default client id is typically **9**) - ✅ Enable **ActiveX and Socket Clients** (necessary) - ✅ Download open orders on connection (optional) - ✅ Download trades on connection (optional) - ⛔ **Read-Only API**: **unchecked** (very much recommended) - Allow connections from localhost only: optional (tunnel connections have not been fully tested) - Expose entire trading schedule to API: optional (recommended) If TWS is not running, SOAP2 can start it and show the login form. To (re)connect from SOAP2: use the **IB** button → **TWS → Connect**. The Offline mode is possible, but not recommended without an initial successful IB connection (some features rely on initial sync). NB: a tunnel connection generally uses localhost, however the TWS is not local. The tunnel fakes the local connection to allow API access. Tunnel connections have not been fully tested, so use with caution and report any issues. ![IB Configuration](./img/TWSAPI.png) IB API documentation (error codes): - https://ibkrcampus.com/campus/ibkr-api-page/twsapi-doc/#error-handling (new) - https://interactivebrokers.github.io/tws-api/message_codes.html (old yet valid) ### Order safety note SOAP2 can prepare orders and send them to TWS, but **automatic transmission is disabled** for safety. Prepared orders appear in the **TWS API** tab; you can then review and transmit them manually. --- ## Core concepts ### General look and feel - The main window includes a watchlist, account/trade management, and a list of open OAs. See the top toolstrip: - The top-left dropdown is for selecting the symbol (ticker). - The top-right dropdown is for selecting the account. - The green Arrow button opens a new OA for the selected symbol/account. Top toolstrip - The bottom-left OA icon list shows open OAs (click to switch between them). - The bottom bar also shows session status and data usage per category (e.g., Live, TLog, other background data). Bottom status bar - The bottom-left list shows open OAs (click to switch between them). - It also shows session status and data usage per category (e.g., Live, TLog, other background data). More details on the toolstrips: Top: [Top Toolstrip](./toolstrip_tutorial.md.html) Bottom: [Status Bar](./bottomtoolstrip_tutorial.md.html) --- ### What is an OA (“Options Analysis”)? OAs are where you analyze options chains and prepare trades. Trades are saved per account and can be loaded into OAs for analysis/preparation. An **OA** is a window tied to a specific: - **Symbol** - **Account** - **Trade** Internally this is a **SAT** triplet (Symbol-Account-Trade). There can be multiple OAs for the same symbol/account if analyzing multiple trades, but each OA is tied to a single trade. How to create one: - Select a **Symbol** from the watchlist (top-left dropdown). - Click the **green Arrow** button on the main toolbar. - The default is a **Model Trade** (a simulation not saved to the account until committed). - Select an **expiry** to populate the chain and enable the risk graph. The correct trading class is generally auto-detected, but you can override it in the OA settings if needed. Note: The Symbol is determined from the main SOAP container window. It is then set at OA creation and cannot be changed later. To analyze a different symbol, create a new OA. OAs are listed in: - the OA dropdown (top of OA window) - the bottom-left list in the main window Related: - [OptionsChain (OA Window) Guide](./optionschain_overview.md.html) - [Handling expiries in SOAP2](./optionschain_expiries.md.html) - [Commit Window (Order Preparation)](./commit_overview.md.html) - [Settings Menu](./settings_tutorial.md.html) - [Rewind — Historical OA Playback (Premium)](./rewind_user_guide.md.html) ### Multi-display support [Using SOAP on multiple displays](./multi_monitor_quick_reference.md.html) ### Settings All SOAP2 settings are under the **Wheel** icon (except for IB connection settings). - [Settings Menu – Configuration & Symbol Management](./optionschain_expiries.md.html) ### Tickers (watchlist) The default watchlist includes: `SPX`, `RUT`, `NDX`, `SPY`, `IWM`, `QQQ` (restored at startup if inadvertently deleted). You can manage symbols in **Settings → Symbols** : The watchlist you can use depends on your IB market data subscriptions: - https://www.interactivebrokers.com/en/accounts/trading-and-market-data.php Unsubscribed symbols may show limited delayed data or no data at all. Error messages in the Message Log may indicate subscription issues. Open the Watchlist window via the **glasses** icon: Top toolstrip Notes: - Multi-currency support exists, but only **USD** is enabled currently. - Futures / FX are not fully supported yet. Currently testing the feature for index futures. **Removing symbols:** Pressing **Delete** on a symbol in the Watchlist grid, or in the "Add to Watchlist" search results, closes any open OA windows for that symbol. From the search results grid, Delete removes the symbol entirely (including its saved settings/chain files) after a confirmation prompt — this works whether or not the symbol had been added to the Watchlist yet. A small set of default symbols (`SPX`, `SPY`, `NDX`, `QQQ`, `RUT`, `IWM`) cannot be removed this way. **Temporarily hiding a symbol:** In the Live Watchlist (glasses icon), pressing **Delete** on a ticker row disables that symbol for the current session only — it closes its OAs and stops its data, but the Watchlist itself is not saved, so the symbol comes back on the next run. Use this to work with a reduced set of symbols without permanently changing your Watchlist. The Live Watchlist also shows a **Last Update** column with the time of each row's most recent quote. More: - [More on Symbol Settings](./symbolsettings.md.html) ### Accounts A **Demo Account** is always available for testing/demos. Create/manage accounts: - Accounts form (Alt-C key combination), or - Settings → Accounts ### Trades Trades are saved per account (text files in account folders). The Demo Account includes sample trades. Trades are listed in the Trade List form (Alt-T key combination) where you can view, rename, delete, and import/export them. - [Trade List Guide](./TradeList.md.html) Two common modes: - **Model Trade** — simulation (not saved until Commit). Unlimited legs. - **Recorded Trade** — saved trade. Limits/behavior: - Recorded combo commit supports up to **6 legs** (Commit is disabled above that number, except for straight conversion by passing IB) - Trades without a Trade Log are cleaned at startup - Recorded trades with Trade Logs are kept Related: - [Commit Window (Order Preparation)](./commit_overview.md.html) ### Checking Executions and Allocating them to Trades Executions filled by IB are retrieved in the **Orders** window's Execs tab, then booked into a trade either directly from there (right-click a ticked execution → pick a trade, or **New Trade**) or via the fuller **Trade Allocations** window. Trade Allocations has its own Symbol selector and auto-loads execs on open, lets you tick/untick which fills (or combo legs) actually get allocated, collates combo (BAG) legs, and can register a brand-new trade on the fly while allocating. - [Checking Executions and Allocating them to Trades](./executions_allocation.md.html) ### Importing trades from ONE Trades must first be exported from ONE in the Report section → Export Trades (Excel or CSV format). Then, in SOAP2, use the **Trades** menu item, then "Import". The import process reads ONE's export files and creates corresponding trades in SOAP2. --- ## Basic usage ### Quick Start (example) 1. Pick `SPY` (default) 2. Pick **Demo Account** (default) 3. Open an OA (green Arrow, or select existing OA) 4. Pick an expiry → **Confirm Expiry** (or press **Enter**) Tutorial: - [Using the Top Toolstrip – Quick Tutorial](./toolstrip_tutorial.md.html) - [OptionsChain (OA Window) Guide](./optionschain_overview.md.html) - [Commit Window (Order Preparation)](./commit_overview.md.html) ### Changing strike intervals - Show/hide strike interval panel: **Alt+Down** / **Alt+Up** - Toggle minimum strike interval filter: **Ctrl+M** ## Navigating SOAP - There are toolbars and keyboard shortcuts for most actions (see below). - Tooltips show shortcut hints (hover over buttons to see them). - Most forms have a **Exit** button to return to the higher level window. Pressing Esc also works in most cases. ### Data usage limits (IB pacing) IB restricts API pacing (max requests per second or minute). SOAP2 reduces load by requesting data mainly for **visible** strikes on data grids. If you open many OAs or scroll aggressively: - you may see delays or temporary pacing blocks - reduce the number of open OAs and let data catch up --- ## Licensing & editions SOAP2 is distributed in several editions (Beta, Freeware, Regular, Premium, WhiteLabel), shown in square brackets in the Message Log at startup. - [Licensing & Editions – User Guide](./licensing_user_guide.md.html) --- ## Keyboard shortcuts Shortcuts are shown in tooltips and documented here: - [Keyboard Shortcuts](./keyboard_shortcuts.md.html) Tip: press **F12** to show an in-app shortcuts window (no browser needed). --- ## Closing SOAP2 Recommended shutdown sequence: 1. Disconnect IB (IB red circle button) 2. Exit SOAP2 (same button to first close OAs then shutdown) This helps ensure: - data is saved properly - OA windows close cleanly Offline mode is possible, but not recommended without an initial successful IB connection (some features rely on initial sync). NB: Clicking on the bottom left IB button will attempt to reconnect, not disconnect. To disconnect, use the top toolbar IB button. --- ## Troubleshooting - Use the **Message Log** and attach the `MessageLog.txt` file in the SOAP data folder. - Severe crashes may also occasionally produce `CrashReport.txt` in the same data folder. Help The Message Log may contain sensitive information (e.g. account numbers, partial API keys) – review and redact before sharing. The Crash Report, if any, is only edited before closing. It is therefore not available from within SOAP. [SMTP setup for GMail](./emailsetup.md.html) --- ## What SOAP doesn't do (yet) - No concurrent loading of multiple trades on a single OA. You can open multiple OAs for the same symbol, but each OA is tied to a single trade. - No automatic order transmission (prepared orders appear in TWS API tab for manual review/transmission) - No multi-currency support (USD only for now) - No full futures/FX support yet (currently tested successfully for index futures) - No mobile/tablet support (Windows desktop only) - No **backtesting** or strategy optimization (yet) - NO GUARANTEES – use at your own risk, and please provide feedback to help improve! Planned features are listed in the [Release Notes](./ReleaseNotes.md.html). --- ## Providing feedback / bug reports Please include: - Screenshot (if UI-related) - Short description + steps to reproduce - `MessageLog.txt` - `CrashReport.txt` (if present) + any relevant config files You will need to enter your SMTP details in the Settings menu to send emails directly from SOAP2. Help Or you can send an email with the above details to: soap.2.bv@gmail.com --- ## Glossary - **SOAP2**: Simple Options Analysis Platform (v2) - **OA**: Options Analysis window - **SAT**: Symbol-Account-Trade (internal binding) - **TWS**: Trader Workstation (Interactive Brokers) - **IV**: Implied Volatility - **HV**: Historical Volatility - **HSkew**: Horizontal Skew (IV difference between strikes of different expiries) = **VSkew**: Vertical Skew (IV difference between strikes of the same expiry) --- ## Community - Slack: https://app.slack.com/client/T552P5XBK/C55N3GHLM - Contact: `soap.2.bv@gmail.com`