Standing Orders
Standing Orders are broker-side exit orders that protect a position the moment it opens. Unlike a template's management rules — which watch the market through the running VolNinja app and act from there — a Standing Order is sent straight to your broker and rests there. It fires on its own even if VolNinja, your automations, or your computer are switched off, as long as your broker connection is running.
Think of a Standing Order as the seatbelt you buckle the instant you enter a trade: a stop-loss or take-profit that lives at the broker and doesn't depend on the app being awake to trigger. You configure them once on a template, and every position opened from that template gets them automatically.
Important
Because Standing Orders place real exit orders at your broker, always validate their price levels and behavior on a paper account before relying on them with real money.
Where standing orders live
Open a template for editing (the pencil on any row of the Templates list) and scroll to the Standing Orders section. Each order shows as a card; Add Standing Order creates a new one. A template with none reads "No standing orders. Exits are managed by dynamic rules only."

Each card summarizes one order — its name, an enforcement badge (explained below), and the facts that define it: Type, Target, Price, TIF (time in force), and, when set, its OCA Group and what it cancels on fill.
Building a standing order
Add Standing Order (or a card's pencil) opens the Create Standing Order sheet.

- Order Name — a label you'll recognize, such as Hard stop at -100%.
- Order Type — Stop (STP), Limit (LMT), or Stop-Limit (STP_LMT) (see the table below).
- Target — Combo (whole position) exits every leg together as one order, or pick a single leg to protect just that leg.
- Price — a basis and a value. The basis is % of entry, Absolute price, or Premium multiple; the value's label follows the order type (Stop Trigger for stops, Limit for limits). Prices resolve from the position's actual fills when it opens, so protection reflects what you really paid or received.
- Time in Force — DAY, GTC, or GTD (DAY by default). DAY orders are good for the current session only, which fits 0–3 DTE trading.
- OCA Group and When this fills, cancel — the two ways to link orders together, covered under linking orders.
The editor validates as you type and won't let contradictory setups through (a stop-limit with no limit price, an order that cancels itself, a reference to an order that doesn't exist).
Order types
| Type | Behavior |
|---|---|
| Stop (STP) | Rests until the price reaches the trigger, then exits at market. The usual choice for a stop-loss. |
| Limit (LMT) | Rests as a limit order and fills when the market reaches your price. The usual choice for a take-profit. |
| Stop-Limit (STP_LMT) | Rests until the trigger is reached, then becomes a limit order at a separate limit price — trigger control plus a price cap, at the risk of not filling in a fast market. It requires both a stop trigger and a limit price. |
When you choose Stop-Limit, an extra block appears for the limit price the order rests at once the stop triggers — the worst price you'll accept after it fires:

How the price is set
The basis decides how your value becomes a price. For a short credit taken in at $2.00:
- % of entry — a percentage move from your entry premium. −100 puts the stop at $4.00 (a full max-loss stop), 50 puts the level at $1.00 (take half as profit), 0 is break-even.
- Absolute price — a literal price, used exactly as entered.
- Premium multiple — a multiple of entry premium; 2× on a $2.00 entry is $4.00.
Whole position vs single leg
- Whole position (combo) exits every leg together as one combination order — the natural choice for managing a spread as a single unit (a stop on the net value of a strangle, say). A whole-position order is only valid while all legs are open; if any leg closes, that order is no longer meaningful and is cancelled automatically.
- Single leg protects just one leg independently (a stop on only the short call, for example) and is removed when that leg closes.
Linking orders: one fills, the others cancel
When a position carries more than one Standing Order — a stop-loss and a take-profit — you usually want only one to ever execute. There are two ways to link them, and the sheet shows which you've built with an enforcement badge:
- Shared OCA group → broker-enforced. Give two or more orders the same OCA Group name. Your broker treats them as one-cancels-the-other and cancels the rest when one fills. Because the broker enforces it, it keeps working even if the app is offline — the badge reads Broker OCA (Broker on the card). This is the recommended way to build a stop-loss / take-profit bracket.
- Cancels-on-fill → app-coordinated. Under When this fills, cancel, pick the sibling orders this one should cancel when it fills. This supports one-directional links (A cancels B without B cancelling A), but it's coordinated by the app, so it carries a brief crash-exposure window — the badge reads App-coordinated (App on the card).
- With no links at all, an order is Standalone.
If you set two orders to simply cancel each other, the editor suggests a shared OCA group instead (broker-enforced, survives an outage). It also blocks genuinely contradictory setups — for example, putting two orders in the same OCA group and having them list each other to cancel (pick one mechanism), or mixing a whole-position target and a single-leg target inside one OCA group.
What happens when a standing order fills
- A whole-position order fills → the entire position closes, its result is recorded, and the position's other Standing Orders are cancelled.
- A single-leg order fills → only that leg closes; whole-position orders (no longer valid) and that leg's own orders are cancelled, while protection on the remaining legs is preserved.
- The last open leg's order fills → the position is finalized and closed.
This holds whether or not the app was running when the order filled — if a Standing Order fires while VolNinja is down, it reconciles the fill on reconnect and records the result then.
Working with management rules
Standing Orders (the always-on broker safety net) and management rules (the app-driven logic) are kept consistent:
- When a management rule closes or rolls, VolNinja cancels the Standing Orders the action would invalidate before placing its order, so the two never double up. Each management rule has a Cancels these Standing Orders setting — Smart default, All, None (leave protection), or Custom — and shows you the default selection. Closing the position defaults to cancelling all of its Standing Orders; closing or rolling a leg defaults to that leg's orders plus any whole-position orders.
- A management rule can re-price a Standing Order in place — for example, tightening a stop to break-even after a trade matures — without cancelling and re-creating it.
Protection that heals itself
VolNinja continuously keeps your live broker orders matching what the position should have:
- A failed or cancelled close restores the Standing Orders, usually within seconds.
- Cancelling a Standing Order directly at your broker is treated as missing protection and re-created — so it is not a durable off-switch. To turn one off, remove or disable it on the template (or close/adjust the position).
- Stale orders are cleaned up — a now-invalid whole-position order is left cancelled once a leg closes.
- Restarts and reconnects recover — VolNinja checks each protected position against the broker, restores orders that should still be working, and applies any fills that happened while it was away.
When positions interact
Because all your positions trade through one broker account, two can occasionally touch the same contract on opposite sides, which a broker won't allow at once. VolNinja handles it:
- New protection waits its turn. If a new position's Standing Order would conflict with another position's resting order, it's deferred and retried automatically, then placed as soon as the conflict clears. Existing protection is never disturbed to free space.
- A close or roll can clear the way. It may temporarily cancel another position's conflicting Standing Order so your action goes through, then restore it once things settle.
- It won't pull a stop that's about to fire. If the conflicting order is close to triggering, your close/roll is refused with a clear message rather than stripping protection at the worst moment.
- Opening into a conflict tells you why. An entry blocked by an existing position's Standing Order fails with a message naming the position that blocked it.
Conflicts only matter within one account and one trading mode — your paper and live accounts never interfere with each other.
Things to be aware of
- Test on paper first — validate price levels and behavior before enabling Standing Orders for live trading.
- Your broker connection has to be up. Standing Orders survive the app being stopped, but they rest at the broker — if your broker connection is down, nothing can execute.
- Partial fills are flagged, not guessed. If an order only partially fills, VolNinja marks the position for review rather than assuming an outcome.
- Cancelling at the broker isn't an off-switch — remove or disable the order on the template instead.
Warning
A Standing Order places a real, resting exit order at your broker. In LIVE mode it can close a position for real money the instant its trigger is hit, whether or not you're watching — that's the point of it, and the reason to rehearse every price level on a paper account first. See Paper vs live and Opening & closing positions.