---
title: "Condition types"
description: "Condition types are the two shapes a risk condition can take: Single series, compared with two thresholds you type, or Double series, against each other."
canonical_url: "https://fincanva.com/docs/strategies/condition-types"
last_updated: "2026-08-02"
md_url: "https://fincanva.com/docs/strategies/condition-types.md"
---

# Condition types

Condition types are the two shapes a [risk condition](/docs/strategies/risk-condition) can take, chosen in the builder's **Condition type** field: "Single series" watches one instrument and compares its indicator against two thresholds you type, and "Double series" pits two instruments against each other with an **Operator**. The type decides what the right-hand side of the comparison is — a number, or a second series.

**Also seen as:** dual thresholds, hysteresis band (the two-threshold behaviour of a Single series condition); Double series (the label used in the **Custom** starting-shape list).

## What are the two condition types?

The two types differ only in what the watched series is measured against.

| Condition type | Right-hand side | Fields it shows |
|---|---|---|
| **Single series** | two numbers you type | **Series** (Instrument · Indicator · Period) and a **Thresholds** section with a **Risk-Off** row and a **Risk-On** row |
| **Double series** | a second series | **Series 1**, a centred **Operator**, and a **Comparison series** — each series with its own Instrument, Indicator, and Period |

A **Double series** condition has no numeric thresholds at all: the comparison between the two series *is* the condition. Switching type in the builder swaps those fields in and out and keeps everything else you had set.

## How does each condition type compare?

Both types run one comparison per reading of the watched series.

$$
\text{Single series:}\quad s_t \;\square\; \theta
\qquad\qquad
\text{Double series:}\quad s^{(1)}_t \;\square\; s^{(2)}_t
$$

where: $s_t$ is the value the chosen **Indicator** produces from the watched series at time $t$; $\square$ is the **Operator** — "is greater than" or "is less than"; $\theta$ is a threshold you type, meaning $\theta_{\text{off}}$ on the **Risk-Off** row and $\theta_{\text{on}}$ on the **Risk-On** row; and $s^{(1)}_t$, $s^{(2)}_t$ are the two series' indicator readings, each configured independently.

## Why does a Single series condition have two thresholds instead of one?

Because one line would make the strategy flip every time the series wobbled across it. With a single threshold, a series hovering right at that level crosses it repeatedly, and each crossing would swap the whole allocation profile — a lot of turnover for no lasting change in conditions, which is [whipsaw](/docs/strategies/whipsaw). Two thresholds separate the point where Risk-Off is requested from the point where Risk-On is requested, leaving a band between them where neither test is satisfied and nothing is asked for.

That asymmetry is the point: because the return threshold sits on the far side of the entry threshold, the series has to travel a real distance back before the strategy is asked to return to Risk-On, rather than merely re-crossing the same line. Engineers call this **hysteresis** — the state depends on which threshold was crossed last, not on a single value. Fincanva exposes both thresholds and both operators; how the engine resolves a reading that sits inside the band is internal. The [confirmation delay](/docs/strategies/confirmation-delay) works on the same problem from the other direction: it adds patience in time, where the two thresholds add distance in value.

## What do Indicator and Period set?

The **Indicator** sets how the series is transformed before the comparison, and the **Period** field next to it sets how many periods that transformation covers. The four options are [Raw price](/docs/strategies/raw-price), [Simple moving average](/docs/strategies/simple-moving-average-sma), [Percent change](/docs/strategies/percent-change), and [Average momentum](/docs/strategies/average-momentum). In a **Double series** condition each side has its own Indicator, which is how a series is compared with a transformed version of itself.

## Defaults in Fincanva

- Thresholds accept values from −1000 to 1000; outside that the app reports "Risk threshold must be between -1000 and 1000."
- A threshold is read in the same units as the indicator produces — an index level for a raw index, a percentage for a percent change, percentage points for a yield spread.
- The **Operator** dropdown offers "is greater than" and "is less than". Some built-in [risk templates](/docs/strategies/risk-templates) arrive with a crossing comparison instead, stated in the template's own description — the S&P 500 one reads "Risk-Off when the S&P 500 crosses below its 200-day simple moving average." A crossing comparison reads the moment one series crosses the other, not simply sitting above or below it.
- Fincanva does not publish each indicator's formula or its shipped default window — those are engine internals.
- Fincanva does not suggest a threshold value, a series to watch, or a condition type to pick. See [Is this financial advice?](/docs/investing-theory/is-this-financial-advice#is-this-financial-advice).

## Worked example

Take a Single series condition on a market index you choose, with the **Indicator** set to "Percent change" and a **Period** of 6, so the condition reads the index's change over six periods. On the **Risk-Off** row you set the operator to "is less than" and the value to −5; on the **Risk-On** row, "is greater than" and 2.

Risk-Off is now requested when the six-period change drops below −5%, and Risk-On is requested only once it has climbed back above +2%. A reading of −1% satisfies neither test, so an index that fell 6% and then recovered to −1% is not yet asked back into Risk-On — it has to clear +2% first. Had you set both thresholds to 0 instead, an index oscillating around flat would ask for a switch at every crossing. The −5 and +2 here are illustrative numbers that show the asymmetry; they are not a suggested setting.

**Learn more:** [Risk conditions](/docs/strategies/risk-conditions#how-the-risk-off-and-risk-on-thresholds-work)
