Ora
All guides All guides

Getting started

Your first decision in the Playground Call the API from your code Save, share and reuse queries

Financial decisions

Decide on a stock with just its symbol Write your own rule Read probabilities and choose thresholds

Rule playground

From English to rule Combining conditions Offsets and windows Reading beliefs Rules plus forecasts in one request Turning a rule into an alert or workflow

Automation

Send a Slack alert when a rule fires Send decisions to your own system Run a watchlist every day after the close

Production

Handle errors, rate limits and retries

Cookbooks

All cookbooks Rank a watchlist by probability Send a pre-open digest Trend filter plus entry trigger Breakout confirmation with volume RSI and Bollinger mean-reversion checks Gap-fill playbook to your order system Confidence-gated actions Detect two-way risk Size positions by volatility regime Risk guardrail before an order Ask many questions in one request Self-consistency: three wordings Route support tickets Is a headline relevant to a symbol?

Use cases

Tag financial news for trading signalsGuardrails for LLM appsSupport ticket triage and routingFilter retrieved passages before your LLM answersVerify claims and citations against a source

Guides / Rule playground

Rule playground · about 8 min

Combining conditions

Join rules with and, or and not, see what each does to the belief, and avoid the precedence trap.

  1. Three parts on AAPL

    Trend, momentum and volume, asked as separate questions and combined in several ways:

    {
      "model": "ora-fin1",
      "state": {
        "symbol": "AAPL"
      },
      "questions": {
        "trend": {
          "type": "yes_no",
          "ask": "C > sma(C, 50)"
        },
        "momentum": {
          "type": "yes_no",
          "ask": "rsi(C, 14) > 50"
        },
        "volume": {
          "type": "yes_no",
          "ask": "V > 1.5 * avg(V, 20)"
        },
        "all_three": {
          "type": "yes_no",
          "ask": "C > sma(C, 50) and rsi(C, 14) > 50 and V > 1.5 * avg(V, 20)"
        },
        "any_of": {
          "type": "yes_no",
          "ask": "C > sma(C, 50) or rsi(C, 14) > 50 or V > 1.5 * avg(V, 20)"
        },
        "no_parens": {
          "type": "yes_no",
          "ask": "C > sma(C, 50) or rsi(C, 14) > 50 and V > 1.5 * avg(V, 20)"
        },
        "parens": {
          "type": "yes_no",
          "ask": "(C > sma(C, 50) or rsi(C, 14) > 50) and V > 1.5 * avg(V, 20)"
        },
        "not_trend": {
          "type": "yes_no",
          "ask": "not C > sma(C, 50)"
        }
      }
    }
    Open this in the Playground
  2. The answers

    Session of 2026-10-30:

    QuestionRuleBelief
    trendC > sma(C, 50)0.9119
    momentumrsi(C, 14) > 500.8179
    volumeV > 1.5 * avg(V, 20)0.7437
    all_threeC > sma(C, 50) and rsi(C, 14) > 50 and V > 1.5 * avg(V, 20)0.7437
    any_ofC > sma(C, 50) or rsi(C, 14) > 50 or V > 1.5 * avg(V, 20)0.9119
    no_parensC > sma(C, 50) or rsi(C, 14) > 50 and V > 1.5 * avg(V, 20)0.9119
    parens(C > sma(C, 50) or rsi(C, 14) > 50) and V > 1.5 * avg(V, 20)0.7437
    not_trendnot C > sma(C, 50)0.0881
  3. and takes the weakest part

    all_three is 0.7437, the lowest of 0.9119, 0.8179 and 0.7437. One weak condition holds a setup down, which is the point: a setup is only as true as its least true part.

  4. or takes the strongest

    any_of is 0.9119, the highest of the three. Use it for alternatives: either of two patterns, or a regime switch.

  5. Brackets change the meaning

    and binds tighter than or. Without brackets, a or b and c is a or (b and c): 0.9119. With them, (a or b) and c is 0.7437. Bracket every mix.

  6. not flips it

    not C > sma(C, 50) is 1 − 0.9119 = 0.0881. It is the same as writing C <= sma(C, 50).

  7. Ask the parts too

    Send each condition as its own question next to the combined one. It costs a few tokens and tells you which part decided the answer.

Information, not investment advice. Every number on this page is a real response for the session shown; answers change with each session.

What's next

Create an account Open the Playground Everything here also lives in the console, next to your keys and usage.