SOAP2Docs ← Website

Trade Rules (BETA)

BETA: Trade Rules is new since the v1.1 release. The engine and levels are built and working, but it hasn't had the same length of real-world use as the rest of SOAP2 yet — treat its recommendations as a second opinion, verify against what you already track, and let us know if something looks wrong.

Editions: Trade Rules is part of the Regular edition and above (and the Free Trial). It is not available in the Free edition.

Trade Rules let you write down, once, how you want each trade to behave — how close to expiry you are willing to hold it, how much delta or vega it may carry, how far the short strikes must stay from the market, when to take a profit — and then let SOAP2 watch every trade against those rules for you. When a rule is broken SOAP2 tells you, and where you asked for it, recommends an action: Adjust, Roll, Reduce or Close. Everything else stays a plain Alert.

SOAP2 never places or changes an order because of a rule. A rule is a reminder with a recommendation; the decision, and the order, stay yours.

New to Trade Rules? Start with the Beginner’s Guide (your first trade with a ready-made template), then the Templates guide (every template, rule by rule). Trades made of several combos: Hybrid Trades. Word versions: Beginner, Templates, Advanced, Quick Start.

Related:



Quick start (five minutes)

  1. Open the Trade List, right-click a trade that has open positions and choose Trade rules.... (In an Options Analysis window you can instead click the small Rules... label at the end of the position-summary strip.). Alternatively, the keyboard shortcut is Alt+X.
  2. As an example: In the editor click Templates ▾ and pick Time exit (DTE ladder). One rule appears: Alert at 21 days to expiry, Reduce below 14, Close below 7.
  3. Look at the Now column: it already tells you what that rule says about the trade today, before you save anything.
  4. Adjust the levels if you like (they are plain text: 21 Alert, 14 Reduce, 7 Close) and press Save.
  5. Open Trades → Trade rules dashboard. Your trade is listed with its status. From now on SOAP2 checks it every minute and writes a line to the Message Log whenever a rule changes state.

Where everything is

WhatWhere
Rules editorTrade List: right-click a trade → Trade rules..., or select it and press Alt+X; or click Rules... in an Options Analysis window, or press Alt+X there (real trades only, not the Model Trade)
DashboardMain menu → Trades → Trade rules dashboard (right after Portfolio), or Alt+J from the main window or an Options Analysis window (there it also selects that window’s trade; the toolbar button does the same)
Template editorTemplates… on the dashboard toolbar, or Edit templates… at the bottom of the Templates menu
Status dot per tradePortfolio tiles, beside the trade's name
Status labelOptions Analysis window, position-summary strip: Rules... (no rules) or Rules: REDUCE (tinted)
Change noticesMessage Log, lines beginning [Rules]
Planned CapitalThe existing Planned Capital box in the Options Analysis window, and the box at the top of the editor (they are the same value)

How a rule is written

A rule states a condition that must hold, the way you would say it aloud:

When the condition stops holding, the rule fires. Each rule has one or more levels, from mild to severe, and every level carries its own outcome. Your DTE ladder is a single rule:

Rule “Time exit”: DTE must be ≥DTE 25DTE 18DTE 10DTE 5
21 → Alert · 14 → Reduce · 7 → CloseokAlertReduceClose

The rule's state is the most severe level that is currently failing. The outcomes, from mildest to most severe, are Alert, Adjust, Roll, Reduce, Close. Alert is a plain warning; the other four are calls for action.

The columns of a rule

ColumnMeaning
OnUntick to keep a rule but stop evaluating it
RuleYour name for it
MetricWhat is measured (see below)
Divided byOptional. Makes a ratio: Metric ÷ this metric (for example Theta ÷ Vega)
UnitFor distances only: % of the underlying's price, points, or sigma. Blank means %
|x|Compare the absolute value (useful for Greeks limits, and for RegT max loss, which is a negative number)
BasisTotal = the whole position; Per unit = divided by the number of identical units (see below)
Must beThe condition that must hold: >, >=, <, <=
LevelsMildest first, for example 21 Alert, 14 Reduce, 7 Close. For “must be ≥” the values go down; for “must be ≤” they go up
Hyst %Hysteresis. Once a level has fired it only clears when the value is this many percent (of the level) back inside, so a value hovering on the line does not flap
NowLive read-only verdict for this rule against the real trade (see the editor)
NoteYour own reminder of why the rule exists and what to do

What you can measure

Time

Time rules need no market data, so they keep working even when TWS is disconnected.

MetricMeaning
dteDays to expiry of the nearest open leg
dte_lastDays to expiry of the farthest open leg (calendars, diagonals)
ditDays in trade
dit_pctShare of the trade's life already used: DIT ÷ (DIT + DTE), in %

Note: the DTE a rule uses counts only legs that are still open. The DTE on a Portfolio tile is the earliest expiry anywhere in the trade's history, so for a trade you have rolled the two can differ — on purpose. A rule must not fire “Close” because of a leg you closed weeks ago.

Greeks

delta, gamma, vega, theta — the same position totals the Options Analysis summary shows. Ratios such as Theta ÷ Vega are made with the Divided by column.

Financial

MetricMeaning
pnlRealized + unrealized P&L, in account currency
pnl_pctP&L in %, as the Options Analysis window computes it (against cost, or against Planned Capital when you set one). Only available while the trade is open in an Options Analysis window
pnl_vs_capitalP&L as a % of Planned Capital (needs Planned Capital)
marginMax loss at expiry (RegT estimate). This is SOAP2's worst-case projection, not a broker margin figure. It is a negative number for a loss, so use |x| or a ratio
capital / max_marginYour Planned Capital (see below)

The account-level ratios from the Risk Metrics note can be built at trade level with Planned Capital standing in for equity: margin ÷ capital (the Margin-to-Equity idea) and capital ÷ vega (Equity/Vega). The built-in Risk metrics (RegT) template does exactly that.


Positioning: strikes, breakevens and units

Positioning rules look at where your strikes and breakevens are relative to the market. Every distance is a cushion: positive means safe (out of the money, or profitable at expiry), negative means the market has gone past it.

MetricMeaning
short_put_cushionSpot minus the highest short put strike (the short put nearest the market is the one at risk)
short_call_cushionThe lowest short call strike minus spot
short_put_vs_atmHighest short put strike minus the ATM strike. Positive = the short put is above ATM
short_call_vs_atmLowest short call strike minus the ATM strike
short_deltaThe largest |delta| among your short strikes, in delta points (16 = a 16-delta short)
be_cushionDistance to the nearest expiry breakeven. Positive when the trade is profitable at expiry at today's price; negative when it is not
be_lower_cushion / be_upper_cushionDistance from spot to the nearest breakeven below / above

Units

An example: “lower the short puts when they are above ATM”

Rule Short puts above ATM: metric short_put_vs_atm, unit %, must be <=, levels -2 Alert, 0 Adjust. While your highest short put is more than 2 % below ATM the rule is fine; as it gets within 2 % you get an Alert, and once it is at or above ATM the rule recommends Adjust (lower the short puts).

How breakevens are found

Breakevens are the prices at expiry where the whole trade — your open legs plus P&L you have already realized on this trade — is exactly zero. They are computed exactly from your legs, not read off a chart. A large realized gain can push the breakevens out, or remove them altogether if the trade can no longer lose money. Commissions are not included.

If a leg cannot be priced (for example a stock hedge with no price), breakevens are unknown and the rule shows n/a rather than a wrong number.


Butterflies, condors and other multiples (per-unit rules)

SOAP2 divides a trade's option legs by the greatest common factor of their quantities. Ten butterflies (+10 / −20 / +10) are 10 units of one butterfly. Set a rule's Basis to Per unit and it is measured for a single butterfly — so “Theta per fly ≥ 4” is still correct after you reduce from 10 to 6. The editor shows the unit count at the top.

Distances (cushions, breakevens), time, and percentages are the same for one unit or ten, so they are never divided.

Rule sets (your stance)

A trade can have several rule sets — for example Conservative, Balanced and Aggressive — because your mindset about a trade can change. Only the active set is monitored, shown on the dashboard and reported to the AI assistant; the others wait unchanged until you switch to them. Leg groups and Planned Capital belong to the trade and are shared; each set has its own rules for the trade and for each group. New to rule sets? See Trade Rules — Rule Sets for Beginners.

Account rules

Besides rules about one trade, you can set rules about a whole account — how hard the account is being run. On the dashboard use Account rules in the toolbar, pick the account, and edit its rules like a trade’s (the built-in template Account risk (MtE, Equity/Vega) is a good start). An account with rules then appears on the dashboard as a row named after it, with the same status, acknowledge and snooze behaviour, rule sets, strategy and tags.

MetricWhat it is
acct_mteMaintenance margin ÷ net liquidation, in %. The document’s guide: keep under 50 %, never beyond 70 %.
acct_cushionInteractive Brokers’ own Cushion figure (excess liquidity ÷ net liquidation), in %.
acct_equity_vegaNet liquidation ÷ |total vega|. Keep above 100; safer at 150–200.
acct_margin_thetaMaintenance margin ÷ |total theta|, in days — capital efficiency. The document’s target is near 100, and 120 (60K margin for 500 theta) is already “generally quite good”. The template flags it above 150 as a possibly over-conservative account (an Alert only, never a danger). Near or below 100, expect MtE and Equity/Vega to approach their alert levels.
acct_stress_m7, _m13, _m20Stress: your SOAP2 trades’ estimated P&L as % of net liquidation if their underlyings fall 7 / 13 / 20 % — the exchange circuit-breaker levels (20 % halts trading for the day). Negative = a loss.
acct_stress_m12, _p10Stress at −12 % and +10 %: the RegT approximation recommended in the document.

How the stress is estimated. Every open option leg is repriced with Black-Scholes at the shocked underlying price, each leg keeping its current implied volatility; stock and futures legs move by their own price times the shock. It is a T+0 estimate, so treat it as a floor on the loss: in a real crash implied volatility rises and a short-vega book loses more. Volatility underlyings (VIX, VXM …) are left out because they would move the other way; the editor says what the stress covers and what was left out. If a trade has no underlying price or an option leg has no implied vol yet, or a trade is in another currency than the account, the stress reads n/a rather than a partial figure. The template Account stress (example) has example levels only — set your own.

Strategy, tags and filtering

Two labels help you organise and find trades. Both are yours: SOAP2 never works them out from the trade, so a trade you tag Non-directional stays that way until you change it, even if you later manage it directionally.

Leg groups

A trade that is really several positions (two butterflies at different strikes; a butterfly plus a hedge) can be split into leg groups, each with its own rules. A group's rules see only that group's legs, so each can have its own time exit. Groups appear in the editor's tree on the left and their rules are edited there.

To define groups click Leg groups… in the editor's toolbar (the trade needs to have data, so its legs are known):

Nothing is saved until you press Save in the editor.

For a group, time, strikes, delta, Greeks and an unrealized P&L are available. A group’s Greeks are n/a if any of its open legs has no implied volatility yet (a partial sum would understate the exposure), and gamma/vega/theta are model estimates that will be close to, not identical with, the Options Analysis figures. Margin and breakevens are n/a for a group. A group whose leg has since been closed or rolled is marked “(review)” in the tree and shows n/a with “review the group” instead of quietly re-fitting itself; open Leg groups… and set that leg to (ungrouped) or assign the new one.


Planned Capital

The Planned Capital box in the Options Analysis window is now remembered per trade. Type an amount and press Enter (or click elsewhere) and it is saved with the trade; it is there again the next time you open the trade, and it is also available to rules that have no Options Analysis window open. Leave it blank or 0 to have none.

Planned Capital is used as the trade's max margin and as the stand-in for equity in the built-in Risk-metrics template. The Planned Capital box in the editor and the one in the Options Analysis window are the same value.

Changed behaviour: the box used to keep one amount as you switched trades inside a window; it now follows the trade. The Model Trade has no saved value.


Templates

A template is a named set of rules you can add to any trade. Applying one copies its rules into the trade, so changing a template later never silently changes trades you already set up. If a rule with the same name is already there it is skipped, so applying a template twice does not double the rules.

How templates work, step by step

There are two different jobs, done in two different windows. Mixing them up is the usual source of confusion.

I want to…WindowWhat to do
Use a template on a trade or accountThe rules editor (opened on a trade or account)Click Templates ▾ in the rules toolbar and pick one (strategy templates are grouped by family). Its rules are copied into the profile on screen; check the Now column, adjust, then Save.
Keep the rules I just tuned on a trade for next timeThe same rules editorPress More ▾ → New template from these rules…: the Template editor opens with them; give it a name (and a category), press Save template. It then appears in Templates for every trade. It keeps the trade’s Strategy and Tags too.
See, create, edit or delete a template itself (its name, family, bias, description)The Template editorOpen it with Templates… on the dashboard toolbar, or Edit templates… at the very bottom of the Templates menu. See below.

The Template editor is the same window as the rules editor, switched into a third mode. The rules editor has three modes, chosen by how you open it: a trade (from the Trade List or an Options Analysis window), an account (from the dashboard), or a template (from the template routes above). Only the template mode shows the template’s own fields, in a panel under the header: Name, Family, Bias and Description (plus the Strategy and Tags boxes that every mode has). In the other two modes that panel is not there. The title bar says Template editor, the save button reads Save template, and there is no Now column because no trade is being evaluated.

The Template editor
  1. What it opens on. From a trade, Edit templates… opens the template that trade was set up from (or, failing that, one whose Strategy is the trade’s). From the dashboard button it opens the template you saved last. Only when you have no templates of your own does it open on a blank new one. The title bar always names it (“Template editor – CDS Hedged Put BWB”).
  2. See them all. The pane on the left lists every template: Your templates first, then the built-in ones grouped by family, with the open one highlighted. Click one to open it (it asks first if you have unsaved edits; a built-in opens as a copy). The Template editor works the same whether or not any trade is involved: open it from the dashboard to work on templates on their own.
  3. Pick what to work on. The button to the right of the toolbar reads Template: … (this is the template picker; in a trade it is the Rule set button). New template starts empty; your own templates are listed next, the open one ticked; the shipped ones are under Built-in (opens as a copy), grouped by family.
  4. A built-in always opens as a copy, named “… (copy)”. You cannot change a shipped template; saving creates your own under the name shown. To tune a built-in, open it, change the levels, rename it if you like, and save.
  5. Fill in the fields. Name is what appears in the menu. Family is the submenu it is listed under in Templates (type a new one to start a family; leave it blank for the generic list). Bias is a short phrase (“Bullish lean with a downside tail”) shown in the tooltip. Description is the longer explanation, also in the tooltip. The two boxes in the header row are labelled for what they do on a template: Sets trade Strategy to and Adds trade Tags. They are not part of the template’s identity; they are what a trade receives when the template is applied (the Strategy only if the trade has none).
  6. Edit the rules in the grid exactly as for a trade, then press Save template. A template needs a name and at least one rule.
  7. Switch or delete. The picker also switches to another template (asking first about unsaved edits) and has Delete this template (your own only).

Applying a template is always a copy: editing or deleting a template later never changes a trade that already used it.

Taking a template back out

Every rule copied from a template remembers which one it came from. Three ways to undo, none of which asks for confirmation:

Built-in templateWhat it contains
Time exit (DTE ladder)DTE ≥ 21 Alert · 14 Reduce · 7 Close
Risk metrics (RegT)Margin ÷ Capital ≤ 0.5 Alert, 0.7 Reduce (keep under 50 %, never beyond 70 %); Capital ÷ |Vega| ≥ 150 Alert, 100 Reduce. Set Planned Capital first
Positioning (example)Short put and call cushions (5 % Alert, 3 % Adjust); short puts above ATM; short-strike delta (20 Alert, 30 Adjust); breakeven cushion
Profit target and stop (example)P&L % below 25 fires an Alert (a target reached); P&L % at −50 or worse recommends Close

Profit target and stop loss use P&L %. For a trade you monitor (status 1) it is calculated from the trade log (current P&L over the position cost, or over the trade’s Planned Capital when you set one — the same figure the Options Analysis window shows), so no window needs to be open. It reads n/a (never “ok”) while a leg has no price or when the trade holds a stock or futures leg.

Strategy templates

Templates starts with your trade’s kind of strategy. The menu groups ready-made templates by family (Butterfly, Credit spreads and condors, Debit spreads, Time spreads, Ratio spreads, Long options, Short options). Applying one adds its rules and labels the trade: its Strategy is filled in if you have not set one (a strategy you chose is never replaced) and its Tags are added to yours (nothing of yours is removed). Applied to a leg group, only the rules are added.

Template editor. Create, edit and delete your own templates in the Template editor: open it from Templates… on the dashboard toolbar or Edit templates… at the bottom of the Templates menu. It is the same rules grid as the trade editor, with the template’s Name, Description, Family (the submenu it appears under), Bias, and the Strategy and Tags it gives a trade. The Template: button switches between templates, starts a new one or deletes the open one. A built-in template opens as a copy (“… (copy)”): saving creates your own template and the built-in one is never changed.

TemplateCharacterKey rules (all levels are examples)
Bearish butterflyNon-directional, leaning bearishDelta crosses above 0 → Adjust (it has lost its bearish lean); time exit; breakeven cushion; profit target; stop
Bullish butterflyNon-directional, leaning bullishDelta crosses below 0 → Adjust; the same supporting rules
Neutral butterfly / iron flyNon-directionalTime exit; breakeven cushion; profit target; stop
Broken-wing butterfly (bullish lean)Leaning bullishDelta crosses below 0; short put cushion; time exit; target; stop
Broken-wing butterfly (bearish lean)Leaning bearishDelta crosses above 0; short call cushion; time exit; target; stop
Iron condorNon-directional, short premiumShort put and call cushions; short-strike delta; breakeven cushion; time exit 21/14 Roll/7; target 50 %; stop −100 %
Put credit spread / Call credit spreadBullish / bearish, short premiumThe tested side’s cushion; short-strike delta; time exit; target; stop
Call debit spread / Put debit spreadBullish / bearish, defined risk, long premiumDelta crosses below 0 (call) or above 0 (put) → the lean is gone; time exit 21/10/5; target 50 %; stop −50 %
Calendar / diagonalNon-directional, long vegaShorter time ladder on the NEAREST leg (7 Alert, 3 Roll, 1 Close); target; stop
Put ratio spreadBullish with a downside tailShort put cushion (3 levels); margin to Planned Capital; time exit; target; stop
Call ratio spreadBearish to neutral with an upside tailShort call cushion (3 levels, measured to the lowest short call); margin to Planned Capital; time exit; target; stop
Long call / long putDirectional, long premiumTime exit 21/10/5; profit target 100 %; stop −50 %
Short strangleNon-directional, undefined riskBoth cushions; short-strike delta; margin to Planned Capital; time exit; target; stop
Cash-secured put / Covered callIncomeCushion to the short strike; short-strike delta; time exit; target

Every strategy template lives in the same list as your own: change the levels on the trade, or save your version with More → New template from these rules… (it keeps the trade’s Strategy and Tags too).

The simple view and the Advanced view

The rules editor opens in a simple view: On · Rule · Metric · Unit · Fires when · Level · Action · Also · Now · Note. A rule reads like a sentence: Delta · crosses above · 0 → Adjust, or Days to expiry · falls below · 21 → Alert. The Fires when choices are falls below, rises above, falls to or below, rises to or above (the rule is on while the condition is true) and crosses above, crosses below, crosses either way (once, then flagged until re-armed). They replace the old “Must be” column, which read backwards from “alert when”.

A rule that uses a setting the simple view hides (divided by another metric, absolute value, per unit, re-arm, hysteresis) says so in the Other settings column, so nothing is hidden silently. Press Advanced in the toolbar for every setting (the old columns); both views edit the same rule. More holds Leg groups…, Rule sets and New template from these rules….

On the dashboard the trade list shows the trade, its status, DTE, the counts and the worst open rule in one line (“Time exit: REDUCE − 10 (needs ≥ 14)”, or “Delta lean: ADJUST − crossed above 0, now 3”). Details adds the account, acknowledged count, data quality and evaluation time.

Suggested for this trade

The editor’s Templates ▸ Suggested for this trade button looks at the trade’s open legs and says what they form: a butterfly, an iron condor, a credit spread, a strangle, a calendar … It lists suggestions and does nothing until you click one. Whole position applies the matching template to the trade. When the trade log shows the legs were bought at different times (within a few seconds = one combo), each part is offered as its own leg group with its own template — useful for a butterfly plus a hedge. Legs already in a group are left alone. A shape SOAP2 recognises but has no template for (a straddle, say) is named and can still be grouped; anything it is not sure of is not guessed. Groups made this way show their template in brackets in the tree. Besides the single-expiry shapes it recognises a double diagonal (a put diagonal and a call diagonal on the same two expiries: short the near leg, long the far leg, all of one size) and a double calendar (the same with equal strikes); both use the Calendar / diagonal template. For a double diagonal Suggested for this trade also offers Group as a Put diagonal and a Call diagonal: two groups, one per side, each with the template’s rules (or make the split by hand in Leg groups… and apply a template to each group). For a butterfly (straight or broken-wing) it offers Group as a credit spread and a debit spread: two groups that share the body, each with the template of its shape (Put credit spread, Put debit spread, …), in one undoable step. When every open leg is already in a group it says so.

A trade made of several combos (a hybrid)

Say one trade holds a put broken-wing butterfly and a double diagonal. Each combo gets its own leg group and its own template, one at a time:

  1. Open the trade’s rules editor and open Templates ▸ Suggested for this trade. It offers one Group … and apply … line per combo it found. Click the first one (the butterfly): a leg group is created, with the butterfly template’s rules. The trade’s own rules are not touched.
  2. Open Templates ▸ Suggested for this trade again. Legs that are in a group are no longer looked at, so what is left is offered as Group the remaining legs: Double diagonal … and apply ‘Calendar / diagonal’. Click it: a second group, with the calendar template’s rules. (If what is left is not a standard shape you can still group it without a template.) Once any group exists, a template found this way always goes on a new group, never on the trade as a whole: trade-level rules would also cover the combos that already have their own.
  3. Choose Check rules (next section), then Check rules ▸ Mark this combination as validated, then Save.

Everything is a draft until you press Save. Undo (toolbar button or Ctrl+Z) walks back through every change you made since the last save, newest first, one at a time: a rule edited, added, duplicated or deleted; a template applied, switched or removed; groups created, split or edited; Strategy, Tags, Planned Capital; a rule set created or switched; a validation; duplicates removed. Going all the way back returns the editor to what is saved (the “unsaved changes” mark disappears). Pressing Save (or reloading the rules from disk) ends the history: what is saved cannot be undone from the editor. In a cell or text box Ctrl+Z still undoes the typing, as usual. Templates → Undo is the same command.

Check rules

Check rules reads the trade’s own rules together with those of every leg group and lists what looks wrong. It never changes anything by itself.

FindingMeaningWhat you can do
Repeats an earlier ruleA rule says exactly what an earlier one in the same profile already says (same measurement, same levels and actions)Click it to remove it, or Remove all N removable rules. One undoable step. Only enabled rules count; a disabled copy is left alone
Can never applyThe rule measures something this position does not have (a short call cushion on a put-only trade, a breakeven of a calendar...): it would read n/a foreverClick it to remove it (also part of Remove all)
No value keeps both OKTwo rules on the same measurement point in opposite directions with no room between them, so one always fires (for example delta rises above -1 and delta falls below 1: usually one direction written backwards)Click to jump there and fix the direction or the level
P&L % of a tiny costA rule uses P&L % of cost on a position that cost very little against what it can lose (a broken-wing butterfly for a few cents): small moves read as huge percentagesUse P&L % of max loss instead, or set a Planned Capital
Two actions at one levelThe same measurement at the same level asks for, say, both Alert and CloseClick to jump to the profile and pick one
Ladder back to frontThe level that breaches first carries a harsher action than one that breaches later (for example DTE below 21 = Close but below 7 = Alert)Click to jump there and reorder the actions
Repeats a trade-level ruleA group rule is the same as a rule on the trade itself, so one breach fires bothDecide whether you meant it; delete one if not
Leg in several groupsIts risk would be counted twiceFix it in Leg groups…
Group leg no longer open / open legs in no group / group without rulesThe grouping no longer matches the position, or a combo has no rules yetReview the group, group the remaining legs, or apply a template to it

The combined view and validating the rules

The rules of a hybrid trade live on its groups, so the Trade node can be empty while the dashboard lists real rules. To see everything in one place, select All rules (combined) under Trade in the tree. It lists the trade’s rules and every group’s together, each row marked [Trade] or [Group name], with their current values. It is read-only: edit a rule on its own group (Add rule there adds to the Trade node). When a trade has no rules of its own but its groups do, the editor opens on this view. If only one group has rules, those are simply the trade’s rules.

Check rules ▸ Mark this combination as validated (the last item of the Check rules menu) is your sign-off on the combination. With findings it lists them and asks whether to validate anyway (an overlap, for instance, can be intentional). The button then shows a green tick, and Save keeps it. Any later change to a rule’s substance or to the groups (a level, an action, enabling or disabling, a leg) cancels the validation and the tick goes; renaming a rule or editing its note does not. Validation is advice, not a gate: the dashboard monitors and alerts on the rules whether or not they are validated. (The dashboard does not show the validated state yet.) The button’s caption also counts the findings: Check rules (3).

The toolbar, left to right: Add rule, Duplicate, Delete, Undo, Check rules, Templates (with Suggested for this trade at the top), then More (Leg groups…, Rule sets, New template from these rules…) and Advanced. The Rule set button appears once a trade has a second rule set. Keys: Ins or Ctrl+N adds a rule (measuring what the selected rule measures), Del deletes the selected rules, Ctrl+S saves, Ctrl+Z undoes.

Crossover rules

The When column turns a rule into a crossover: Crosses above, Crosses below or Crosses either way. A crossover fires once, the first time the value passes the level, and then stays flagged however often the value hovers back and forth over it. It needs one earlier reading on the other side, so it never fires right at start-up. To let it fire again, select it on the dashboard and press Re-arm (or choose Daily in the Re-arm column and a new UTC day re-arms it). For a crossover, Must be and Hyst % are not used. Threshold rules also have an absolute re-arm band in the model (for levels at 0, where a percentage band is zero).

The numbers in the example templates are only starting points — set your own. To keep your own set, use More → New template from these rules… in the rules editor (the Template editor opens with them: name it, pick a category, Save template), or build it from scratch in the Template editor (see How templates work, step by step above); it then appears in Templates for every trade. Built-in names cannot be overwritten.

Categories. When you save a template (in the Template editor, or with a quick save from a right-click on a profile in the tree on the left) you can also give it a category: pick one already in use or type a new one. The Templates menu then lists it in a submenu of that name (next to the built-in ones if you reuse a built-in category such as Butterfly); templates without a category stay in the flat list. The Template editor’s left pane and its template menu group Your templates by category too. Saving a template under an existing name keeps its category unless you choose another; to change one later, open the template in the Template editor and edit its Family box.

For accounts, a template saved under the exact name Default account rules is pre-filled into the rules of any account that has none yet, the first time you open its editor (nothing is stored until you press Save). Accounts that already have rules are never touched.


The rules editor

The rules editor

The dashboard, acknowledging and snoozing

The trade rules dashboard

Trades → Trade rules dashboard lists every monitored trade that has rules. The top grid has one row per trade, most worrying first:

ColumnMeaning
StatusThe most severe open (unacknowledged) breach, coloured: yellow Alert, orange Adjust/Roll, red Reduce/Close. “ok” when nothing is breached; “ok (acknowledged)” when all breaches are acknowledged; “n/a” when nothing could be evaluated
Alerts / Actions / Ack'dHow many open Alerts, how many open calls for action, and how many acknowledged breaches
DTEDays to the nearest open leg's expiry
DataHow the numbers were obtained (see below)

Select a trade to see its rules underneath: the current value, the levels (Must be), the state, how long ago it entered that state, any acknowledgement, and your note. The toolbar:

Acknowledgements and snoozes are kept across restarts (for up to 60 days): after a restart a breach you had acknowledged is still acknowledged, and a 24-hour snooze keeps counting. They still end by themselves the moment the rule’s state changes (a worse level, recovery, going stale), and a snooze that ran out while SOAP2 was closed is not restored.


The indicators on Portfolio and in the Options Analysis window


How much to trust a number

A rule that cannot honestly be evaluated is never shown as “ok”. SOAP2 records how each trade's figures were obtained:

DataMeaningWhat rules do
LiveRead from the trade's own Options Analysis windowNormal
EstimateNo suitable Options Analysis window: Greeks and margin are an approximation (flat-volatility Black-Scholes, RegT-style)Normal, marked as an estimate
DegradedAn estimate that rests on a guess: a leg with no price or no volatility, or an unusable underlying pricePrice-based rules can raise at most an Alert (shown “alert only”); they never recommend Reduce/Close on a guess. Time rules are unaffected
StaleTWS is disconnected; these are the last known figuresPrice-based rules read stale (“I no longer know”); time rules still work
MissingNo open position could be found for the tradeAll rules read n/a

A n/a also appears when a metric has no value (for example P&L % while a leg has no price, or on a trade holding a stock or futures leg), when a ratio's denominator is zero, when a sigma distance has no IV, or when the rule uses something this version does not know. The reason is shown in the Now / Note column.


Where your rules are saved

Under your SOAP2 data folder (normally %AppData%\SOAP2):

Folder / fileHolds
Rules\Trades\{account}_{trade number}.jsonOne file per trade: its rules, its Planned Capital and any leg groups. Readable and editable by hand
Rules\Templates\{name}.jsonYour own templates
Results\{Symbol}\rules_{account}_t{trade number}.jsonThe last known state of the trade's rules (every rule's value, state and acknowledgement), refreshed every minute while the data is good

SOAP2 is careful with these files: a file it cannot read is copied aside and never overwritten; a file that belongs to a different symbol than the trade now holding that number is moved aside (your old rules are kept); and anything a newer SOAP2 wrote that this version does not understand is preserved when you save. If you rename a trade its rules stay with it.


Good to know


FAQ

I saved a rule but nothing appeared in the Message Log. The Message Log only records changes. A rule that is already fine says nothing; one that is already breached when you save is logged once. Open the dashboard to see every rule's current state.

A rule says n/a. Read the Note: it says exactly what is missing (no price, no IV, zero denominator, unknown metric...).

The dashboard is empty. No monitored trade has an enabled rule yet, or the trades you gave rules are Unmonitored and not loaded in an Options Analysis window.

The Rules label is not in my Options Analysis window. It is hidden for the Model Trade; select a real trade.

Can a rule place an order for me? No. Rules only notify and recommend.

Can the AI assistant see my rules? A read-only call for the assistant is planned; the stored state file above is what it will read.