# Spreads

> Trade multi-leg option spreads from your signals: which brokers handle them, the fields a Spreads strategy shows, and how risk and exits work.

*Source: https://tradelabs.org/docs/reference/instruments/spreads*

A spread is a multi-leg option position: two or more option legs on the same underlying, bought and sold together as one order. TradeLabs reads the whole leg structure from your signal and submits it as a single spread order. The parser handles verticals, calendars, diagonals, iron condors, iron butterflies, straddles, and strangles.

Spreads share almost every field with single-leg Options. The one real difference is that the trade carries at least two legs and a net price instead of one contract.

> **Note**
>
> Spread details come from the free-text body of a signal, so a Spreads strategy reads its trades from a Discord or Telegram provider that posts full spread alerts.

## Which brokers trade spreads

Spreads run on three brokers: the single-leg [Options](/docs/reference/instruments/options/) set without Charles Schwab. When you pick **Spreads** as the instrument, the broker choice is restricted to these three accounts, and a Spreads strategy routes to one broker at a time.

| Broker | What it adds |
| --- | --- |
| [Tradier](/docs/reference/brokers/tradier/) | Market or limit entry, smart expiration |
| [Interactive Brokers](/docs/reference/brokers/interactive-brokers/) | Market or limit entry |
| [Robinhood](/docs/reference/brokers/robinhood/) | Limit entry only |

If a spread signal fires on a strategy pointed at any other broker, the trade is skipped rather than filled.

> **Note**
>
> **Charles Schwab trades single-leg options but not spreads.** A multi-leg order needs Level 2 options approval at Schwab, and the path has not been placed end to end yet, so the broker is left out of the Spreads picker instead of failing mid-signal. See the [Schwab page](/docs/reference/brokers/schwab/) for the detail.

> **Note**
>
> Stop loss, take profit, and trailing stop run app-side on Tradier, because Tradier rejects a bracket attached to a multi-leg order. TradeLabs watches the position and closes it when your exit is hit.

## Set up a Spreads strategy

Open the **Strategies** page, create or edit a strategy, and set the instrument to **Spreads**. That reveals the options-style fields below. For the full editor walkthrough see the [strategy editor guide](/docs/copy-trading/strategy-editor/).

1. On the **General** tab, set **Instrument** to **Spreads**, then pick your signal source. Spread details are parsed from message text, so choose a **Discord** or **Telegram** provider that posts full spread alerts.

2. On the **Brokers** tab, assign one of the spread-capable brokers: Tradier, IBKR, or Robinhood.

3. Set **Direction** (Long only, Short only, or Both), **Expiration**, and **Strike position**.

4. On the **Sizing** tab, set your default quantity in contracts, dollars, or percent.

5. On **Risk and exits**, add a stop loss, take profit, or trailing stop if you want them.

![The strategy editor open on a spreads strategy](/docs-assets/app-strategy-editor-spreads.png)
*Spreads use the same expiration, strike position, and direction fields as single-leg Options*

### The fields a Spreads strategy shows

> **Tip**
>
> **Turn on _Inherit trade details from message_** (Signal source section, General tab) if you're copying someone's spreads rather than running your own. It pins Ticker to `ALL`, the expiration to *read from the message*, and the strike offset to `0`, then fills all three from each call — so you get the legs that were actually called instead of the closest match to your defaults. Discord and Telegram only.

- **Direction** — Long only, Short only, or Both. It filters which spread signals the strategy acts on.
- **Expiration** — a fixed number of days (for example `0` for same-day or `7` for a week out), a weekday name, or `-1` to read the expiration straight from the signal text. Turning on **Inherit trade details from message** sets this to `-1` for you. Either way it only works on Discord and Telegram, the sources that parse a message body.
- **Strike position** — In the money, At the money, or Out of the money.
- **Entry** and **Exit** — Market or Limit on Tradier and IBKR. Robinhood has no market option order at all, so a Robinhood spread strategy is limit-only and the Market choice is hidden.
- **Smart expiration detection** — Tradier only. Resolves a vague or expired signal date to the next valid expiration. Protections tab in the app; *Instrument details → Behavior* in the web builder.
- **Smart price override** — Tradier, IBKR, and Robinhood. Biases the limit toward the live quote when it is newer than the signal price. Protections tab in the app; *Execution* in the web builder.

## Risk and exits

Spreads support the full set of exits. On Tradier they run app-side, since Tradier will not accept a bracket on a multi-leg order.

- **Stop loss** — a dollar amount or a percent.
- **Take profit** — a dollar amount or a percent, with a take-profit behavior for closing all at once or selling in stages.
- **Trailing stop** — available on spreads. It follows the position and locks in gains as the spread moves your way.

> **Heads up**
>
> A spread caps both its risk and its upside by design. Adding a stop loss or take profit layers on top of that defined range; it does not remove the built-in cap.

## Next steps

- Set up the broker you plan to route to: [Tradier](/docs/reference/brokers/tradier/), [IBKR](/docs/reference/brokers/interactive-brokers/), or [Robinhood](/docs/reference/brokers/robinhood/).
- Build the strategy end to end in the [strategy editor guide](/docs/copy-trading/strategy-editor/).
