Ora
All use cases All industries

Individuals

Retail investorActive day traderSwing traderOptions traderDividend investorLong-term passive investorCrypto traderFX traderCommodities traderSocial trading communityStudents and universities

Buy side

Financial advisor / RIAWealth managerFamily officeHedge fund PMQuant researcherPortfolio manager (long-only)Risk managerPrivate equityVC / growth investorFund-of-funds allocator

Sell side

Equity research analystSell-side sales traderExecution trader / deskMarket makerProp trading firmCompliance officer

Corporates

Investor relations teamCorporate treasuryCFO officeBank credit analystFinancial journalist / media

Builders

Quant developerFintech app builderRobo-advisorBroker appAlgo / bot developerData vendor / platformTrading educator / newsletter

Institutions

ETF issuerIndex providerInsurance investment officePension fundEndowmentSovereign wealth fund

Use cases · Institutions

Sovereign wealth fund: 20 ways to use Ora

Global allocation across countries, currencies and commodities, watched as a whole. Each example is a complete, runnable request with the real answers it returned (40 requests, captured 2026-10-31), what they mean and, where it fits, the action it would send.

Answers were captured on ora-fin-0.1.1. Another model changes the request JSON and the Playground link; run it there to see its answers.
Rule functions and facts used by this player (50)

sma 17offset 6atr 4max 3highest 2ref 2ema 2roc 2abs 2rsi 2macd 1macdsignal 1atr_pct 1lowest 1avg 1obv 1evening_star 1gravestone_doji 1beat_eps_last 1beat_revenue_last 1days_to_earnings 1last_earnings_move 1div_yield_ttm 1raised_last 1hammer 1harami_bull 1piercing_line 1three_white_soldiers 1iif 1between 1inside_bar 1adx 1diminus 1diplus 1zscore 1swinglow 1log 1sqrt 1std 1dark_cloud 1engulfing_bear 1willr 1gap_up 1marubozu 1cci 1doji 1spinning_top 1hl2 1rec 1tr 1

Examples 11–20 of 20 · page 2 of 2

Sovereign wealth fund · example 11

Staged buying into emerging markets: buy on dips only

A multi-year program buys VWO in tranches, but only on pullbacks inside an uptrend. Send the tranche ticket when the rule is true.

ora-fin-0.1.1VWO4 questions2 actions
  1. StateVWO
  2. Questions4 asked
  3. Answersreal, captured
  4. Actions2 rules · dry run

State

{"symbol":"VWO"} The server fills in the latest completed session.

Questions

dipruleC > sma(C, 200) and C < sma(C, 20) and rsi(C, 14) > 40
Uptrend, under the 20-day, RSI still above 40
regimerule(C > sma(C, 200) and rsi(C, 14) < 40) or (C < sma(C, 200) and rsi(C, 14) < 25)
Oversold, with the line set by the trend
rsirulersi(C, 14) < iif(C > sma(C, 200), 40, 30)
RSI below 40 in an uptrend, below 30 otherwise
drop5forecastWill it drop at least 5% at some point in the next month?
A 5% drawdown within a month

Answers

QuestionAnswerReading
dip
Uptrend, under the 20-day, RSI still above 40
0.0887false
regime
Oversold, with the line set by the trend
0.4095on the line (false)
rsi
RSI below 40 in an uptrend, below 30 otherwise
0.7437true
drop5
A 5% drawdown within a month
0.25526% · unlikely

Actions

Rules on the answers decide what to send.

dip >= 0.6 or rsi >= 0.6→Webhookexecution-tickets
else→Slackswf-strategy
What each action would send 1 of 2 fired · dry run, nothing sent
tranchewould send (dry run)Webhook → execution-tickets
{
  "program": "em_staged_buy",
  "fund": "VWO",
  "as_of": "2026-10-30",
  "tranche": "next",
  "p_dip": 0.0887,
  "p_rsi_rule": 0.7437,
  "p_drop5": 0.255
}
skiprule false: skipped

What it means

For VWO on the session of 2026-10-30: True now: RSI below 40 in an uptrend, below 30 otherwise. Not true: Uptrend, under the 20-day, RSI still above 40. On the line: Oversold, with the line set by the trend. Forecasts: A 5% drawdown within a month 26%. Fired: tranche (Webhook → execution-tickets).

The iif() rule changes the oversold line with the trend, so the program buys earlier in uptrends and waits for deeper dips in downtrends.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "VWO"
  },
  "questions": {
    "dip": {
      "type": "yes_no",
      "ask": "C > sma(C, 200) and C < sma(C, 20) and rsi(C, 14) > 40"
    },
    "regime": {
      "type": "yes_no",
      "ask": "(C > sma(C, 200) and rsi(C, 14) < 40) or (C < sma(C, 200) and rsi(C, 14) < 25)"
    },
    "rsi": {
      "type": "yes_no",
      "ask": "rsi(C, 14) < iif(C > sma(C, 200), 40, 30)"
    },
    "drop5": {
      "type": "yes_no",
      "instructions": "Will it drop at least 5% at some point in the next month?"
    }
  },
  "actions": [
    {
      "id": "tranche",
      "when": "dip >= 0.6 or rsi >= 0.6",
      "do": "webhook",
      "connection": "execution-tickets",
      "body": {
        "program": "em_staged_buy",
        "fund": "{{symbol}}",
        "as_of": "{{as_of}}",
        "tranche": "next",
        "p_dip": "{{dip}}",
        "p_rsi_rule": "{{rsi}}",
        "p_drop5": "{{drop5}}"
      }
    },
    {
      "id": "skip",
      "when": "else",
      "do": "slack",
      "connection": "swf-strategy",
      "message": "{{symbol}} ({{as_of}}): no dip today (pullback {{dip|pct}}, regime RSI {{rsi|pct}}). Tranche waits."
    }
  ],
  "dry_run": true
}
Response JSON (VWO, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "dip": {
      "yes_no": 0.0887,
      "rule": "C > sma(C, 200) and C < sma(C, 20) and rsi(C, 14) > 40",
      "basis": "rule"
    },
    "regime": {
      "yes_no": 0.4095,
      "rule": "(C > sma(C, 200) and rsi(C, 14) < 40) or (C < sma(C, 200) and rsi(C, 14) < 25)",
      "basis": "rule"
    },
    "rsi": {
      "yes_no": 0.7437,
      "rule": "rsi(C, 14) < iif(C > sma(C, 200), 40, 30)",
      "basis": "rule"
    },
    "drop5": {
      "yes_no": 0.255
    }
  },
  "context": {
    "symbol": "VWO",
    "as_of": "2026-10-30"
  },
  "actions": [
    {
      "id": "tranche",
      "fired": true,
      "status": "dry_run",
      "do": "webhook",
      "connection": "execution-tickets",
      "preview": {
        "body": {
          "program": "em_staged_buy",
          "fund": "VWO",
          "as_of": "2026-10-30",
          "tranche": "next",
          "p_dip": 0.0887,
          "p_rsi_rule": 0.7437,
          "p_drop5": 0.255
        }
      }
    },
    {
      "id": "skip",
      "fired": false,
      "status": "skipped"
    }
  ]
}

iif rsi sma

Sovereign wealth fund · example 12

Reserve bonds: is SHY stable before a liquidity draw?

Government budget draws are paid from short bonds. Confirm the fund is stable before the next scheduled draw.

ora-fin-0.1.1SHY4 questions
  1. StateSHY
  2. Questions4 asked
  3. Answersreal, captured
  4. Actionsnone

State

{"symbol":"SHY"} The server fills in the latest completed session.

Questions

atr_lowEnglish → ruleIs the 14-day ATR less than 2% of the price?
downEnglish → ruleIs the stock down more than 5% over the last month?
insideruleinside_bar()
inside bar candle: Today's high and low are inside yesterday's (equal counts).
betweenrulebetween(rsi(C, 14), 35, 65)
RSI between 35 and 65

Answers

QuestionAnswerReading
atr_low
Is the 14-day ATR less than 2% of the price
compiled to atr(14) / C < 0.02
0.9463true
down
Is the stock down more than 5% over the last month
compiled to C / C[-21] - 1 < -0.05
0.0537false
inside
inside bar candle: Today's high and low are inside yesterday's (equal counts).
0.0712false
between
RSI between 35 and 65
0.05false

What it means

For SHY on the session of 2026-10-30: True now: Is the 14-day ATR less than 2% of the price. Not true: Is the stock down more than 5% over the last month; inside bar candle: Today's high and low are inside yesterday's (equal counts).; RSI between 35 and 65.

Calm answers mean the draw can be paid without selling at a bad moment; anything else is escalated to the treasury desk.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "SHY"
  },
  "questions": {
    "atr_low": {
      "type": "yes_no",
      "instructions": "Is the 14-day ATR less than 2% of the price?"
    },
    "down": {
      "type": "yes_no",
      "instructions": "Is the stock down more than 5% over the last month?"
    },
    "inside": {
      "type": "yes_no",
      "ask": "inside_bar()"
    },
    "between": {
      "type": "yes_no",
      "ask": "between(rsi(C, 14), 35, 65)"
    }
  }
}
Response JSON (SHY, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "atr_low": {
      "yes_no": 0.9463,
      "rule": "atr(14) / C < 0.02",
      "basis": "pattern"
    },
    "down": {
      "yes_no": 0.0537,
      "rule": "C / C[-21] - 1 < -0.05",
      "basis": "pattern"
    },
    "inside": {
      "yes_no": 0.0712,
      "rule": "inside_bar()",
      "basis": "rule"
    },
    "between": {
      "yes_no": 0.05,
      "rule": "between(rsi(C, 14), 35, 65)",
      "basis": "rule"
    }
  },
  "context": {
    "symbol": "SHY",
    "as_of": "2026-10-30"
  }
}

atr between inside_bar offset rsi

Sovereign wealth fund · example 13

Korea and Taiwan: chip-cycle read through EWY and EWT

Korean and Taiwanese markets track the semiconductor cycle. Check their trend against SMH.

ora-fin-0.1.13 symbols, one request each4 questions
  1. State3 symbols
  2. Questions4 asked
  3. Answersreal, captured
  4. Actionsnone

State

{"symbol":"EWY"} then EWT, SMH, one request each. The server fills in the latest completed session.

Questions

trendEnglish → ruleIs the stock above its 200-day moving average?
near_highruleC >= 0.98 * max(H, 252)
Within 2% of the 52-week high
adxruleadx(14) > 20 and diplus(14) > diminus(14)
Trending up (ADX over 20 and +DI over −DI)
rally5forecastWill it rally at least 5% at some point in the next month?
A 5% rally within a month

Answers

Symboltrendrulenear_highruleadxrulerally5forecast
EWY0.2280.05370.08670.749
EWT0.91310.05370.07110.666
SMH0.5590.05370.07180.728

true false not known for rules; forecasts are odds. Hover a column for its question.

What it means

Session of 2026-10-30, 3 symbols: Is the stock above its 200-day moving average: true for EWT of 3. Within 2% of the 52-week high: true for none of 3. Trending up (ADX over 20 and +DI over −DI): true for none of 3. Highest odds for “A 5% rally within a month”: EWY at 75%.

When all three trend together, the chip cycle is in an upswing; divergence is worth a note to the Asia team.

Request JSON (EWY; the others differ only in the symbol)
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "EWY"
  },
  "questions": {
    "trend": {
      "type": "yes_no",
      "instructions": "Is the stock above its 200-day moving average?"
    },
    "near_high": {
      "type": "yes_no",
      "ask": "C >= 0.98 * max(H, 252)"
    },
    "adx": {
      "type": "yes_no",
      "ask": "adx(14) > 20 and diplus(14) > diminus(14)"
    },
    "rally5": {
      "type": "yes_no",
      "instructions": "Will it rally at least 5% at some point in the next month?"
    }
  }
}
Response JSON (EWY, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "trend": {
      "yes_no": 0.228,
      "rule": "C > sma(C, 200)",
      "basis": "comparison"
    },
    "near_high": {
      "yes_no": 0.0537,
      "rule": "C >= 0.98 * max(H, 252)",
      "basis": "rule"
    },
    "adx": {
      "yes_no": 0.0867,
      "rule": "adx(14) > 20 and diplus(14) > diminus(14)",
      "basis": "rule"
    },
    "rally5": {
      "yes_no": 0.749
    }
  },
  "context": {
    "symbol": "EWY",
    "as_of": "2026-10-30"
  }
}

adx diminus diplus max sma

Sovereign wealth fund · example 14

Daily tail-risk check on global equities

After each US close, flag any core global equity fund with a move over 1.5 ATR or a return shock.

ora-fin-0.1.13 symbols, one request each4 questions1 actionworkflow · Mon–Fri at 16:50 ET
  1. ScheduleMon–Fri at 16:50 ET
  2. State3 symbols
  3. Questions4 asked
  4. Answersreal, captured
  5. Actions1 rule · dry run

State

{"symbol":"VTI"} then VXUS, EEM, one request each. The server fills in the latest completed session.

Questions

big_atrruleabs(C - C[-1]) > 1.5 * atr(14)
Today's move was bigger than 1.5 ATR
shockrulezscore(C / C[-1] - 1, 20) < -2
A two-sigma down day
down3English → ruleDid the stock fall more than 3% today?
gap_downforecastWill it gap down tomorrow?
A gap down tomorrow

Answers

Symbolbig_atrruleshockruledown3rulegap_downforecastFired
VTI0.7930.68470.07170.029tail
VXUS0.37860.41860.07210.047none
EEM0.45080.29420.35350.077none

true false not known for rules; forecasts are odds. Hover a column for its question.

Actions

Rules on the answers decide what to send. Each symbol runs its own request, so each one can fire.

shock >= 0.6 or down3 >= 0.6→Emailrisk-office
VTI 1 of 1 fired · dry run, nothing sent
tailwould send (dry run)Email → risk-office
{
  "subject": "VTI: tail move (2026-10-30)",
  "text": "VTI: return shock 68%, fell more than 3% 7%. Gap-down odds tomorrow: 3%."
}
VXUS 0 of 1 fired · dry run, nothing sent
EEM 0 of 1 fired · dry run, nothing sent

What it means

Session of 2026-10-30, 3 symbols: Today's move was bigger than 1.5 ATR: true for VTI of 3. A two-sigma down day: true for VTI of 3. Did the stock fall more than 3% today: true for none of 3. Highest odds for “A gap down tomorrow”: EEM at 8%. tail fired for VTI.

Only a statistical shock or a 3% loss emails the risk office; big but ordinary moves are left to the weekly digest.

As a scheduled workflow (Mon–Fri at 16:50 ET)

Create it under Workflows in the console: it runs these questions for every symbol on the schedule and fires the actions per symbol. The answers above are what one run returned.

{
  "name": "Daily tail-risk check on global equities",
  "symbols": "VTI VXUS EEM",
  "days": [
    1,
    2,
    3,
    4,
    5
  ],
  "at_time": "16:50",
  "model": "ora-fin-0.1.1",
  "questions": {
    "big_atr": {
      "type": "yes_no",
      "ask": "abs(C - C[-1]) > 1.5 * atr(14)"
    },
    "shock": {
      "type": "yes_no",
      "ask": "zscore(C / C[-1] - 1, 20) < -2"
    },
    "down3": {
      "type": "yes_no",
      "instructions": "Did the stock fall more than 3% today?"
    },
    "gap_down": {
      "type": "yes_no",
      "instructions": "Will it gap down tomorrow?"
    }
  },
  "actions": [
    {
      "id": "tail",
      "when": "shock >= 0.6 or down3 >= 0.6",
      "do": "email",
      "connection": "risk-office",
      "subject": "{{symbol}}: tail move ({{as_of}})",
      "message": "{{symbol}}: return shock {{shock|pct}}, fell more than 3% {{down3|pct}}. Gap-down odds tomorrow: {{gap_down|pct}}."
    }
  ]
}
Request JSON (VTI; the others differ only in the symbol)
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "VTI"
  },
  "questions": {
    "big_atr": {
      "type": "yes_no",
      "ask": "abs(C - C[-1]) > 1.5 * atr(14)"
    },
    "shock": {
      "type": "yes_no",
      "ask": "zscore(C / C[-1] - 1, 20) < -2"
    },
    "down3": {
      "type": "yes_no",
      "instructions": "Did the stock fall more than 3% today?"
    },
    "gap_down": {
      "type": "yes_no",
      "instructions": "Will it gap down tomorrow?"
    }
  },
  "actions": [
    {
      "id": "tail",
      "when": "shock >= 0.6 or down3 >= 0.6",
      "do": "email",
      "connection": "risk-office",
      "subject": "{{symbol}}: tail move ({{as_of}})",
      "message": "{{symbol}}: return shock {{shock|pct}}, fell more than 3% {{down3|pct}}. Gap-down odds tomorrow: {{gap_down|pct}}."
    }
  ],
  "dry_run": true
}
Response JSON (VTI, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "big_atr": {
      "yes_no": 0.793,
      "rule": "abs(C - C[-1]) > 1.5 * atr(14)",
      "basis": "rule"
    },
    "shock": {
      "yes_no": 0.6847,
      "rule": "zscore(C / C[-1] - 1, 20) < -2",
      "basis": "rule"
    },
    "down3": {
      "yes_no": 0.0717,
      "rule": "C / C[-1] - 1 < -0.03",
      "basis": "pattern"
    },
    "gap_down": {
      "yes_no": 0.029
    }
  },
  "context": {
    "symbol": "VTI",
    "as_of": "2026-10-30"
  },
  "actions": [
    {
      "id": "tail",
      "fired": true,
      "status": "dry_run",
      "do": "email",
      "connection": "risk-office",
      "preview": {
        "subject": "VTI: tail move (2026-10-30)",
        "text": "VTI: return shock 68%, fell more than 3% 7%. Gap-down odds tomorrow: 3%."
      }
    }
  ]
}

abs atr offset zscore

Sovereign wealth fund · example 15

Industrial metals and China: COPX, FCX, FXI

Copper demand tracks Chinese growth. Check copper miners and China equities on the same momentum rules.

ora-fin-0.1.13 symbols, one request each4 questions
  1. State3 symbols
  2. Questions4 asked
  3. Answersreal, captured
  4. Actionsnone

State

{"symbol":"COPX"} then FCX, FXI, one request each. The server fills in the latest completed session.

Questions

rocruleroc(C, 20) > 5
Up more than 5% in 20 sessions
trendruleC > sma(C, 50)
Above the 50-day average
higher_lowruleswinglow(3) > swinglow(3, 2)
Higher swing lows
beat_spyforecastWill it beat SPY over the next month?
Beating SPY over a month

Answers

Symbolrocruletrendrulehigher_lowrulebeat_spyforecast
COPX0.07590.07930.08420.52
FCX0.08010.08160.26580.534
FXI0.08080.14680.16310.418

true false not known for rules; forecasts are odds. Hover a column for its question.

What it means

Session of 2026-10-30, 3 symbols: Up more than 5% in 20 sessions: true for none of 3. Above the 50-day average: true for none of 3. Higher swing lows: true for none of 3. Highest odds for “Beating SPY over a month”: FCX at 53%.

Copper miners and China rising together supports a global-growth read; one without the other is a divergence to watch.

Request JSON (COPX; the others differ only in the symbol)
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "COPX"
  },
  "questions": {
    "roc": {
      "type": "yes_no",
      "ask": "roc(C, 20) > 5"
    },
    "trend": {
      "type": "yes_no",
      "ask": "C > sma(C, 50)"
    },
    "higher_low": {
      "type": "yes_no",
      "ask": "swinglow(3) > swinglow(3, 2)"
    },
    "beat_spy": {
      "type": "yes_no",
      "instructions": "Will it beat SPY over the next month?"
    }
  }
}
Response JSON (COPX, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "roc": {
      "yes_no": 0.0759,
      "rule": "roc(C, 20) > 5",
      "basis": "rule"
    },
    "trend": {
      "yes_no": 0.0793,
      "rule": "C > sma(C, 50)",
      "basis": "rule"
    },
    "higher_low": {
      "yes_no": 0.0842,
      "rule": "swinglow(3) > swinglow(3, 2)",
      "basis": "rule"
    },
    "beat_spy": {
      "yes_no": 0.52
    }
  },
  "context": {
    "symbol": "COPX",
    "as_of": "2026-10-30"
  }
}

roc sma swinglow

Sovereign wealth fund · example 16

Exit window for co-investments: are small caps (IWM) strong?

Co-investment exits depend on open IPO windows. Use small-cap strength and volatility as a proxy.

ora-fin-0.1.1IWM4 questions
  1. StateIWM
  2. Questions4 asked
  3. Answersreal, captured
  4. Actionsnone

State

{"symbol":"IWM"} The server fills in the latest completed session.

Questions

trendEnglish → ruleIs the stock above its 200-day moving average?
near_highruleC >= 0.98 * max(H, 252)
Within 2% of the 52-week high
hv_lowEnglish → ruleIs 20-day historical volatility below 30%?
drop10forecastWill it drop at least 10% at some point in the next month?
A 10% drawdown within a month

Answers

QuestionAnswerReading
trend
Is the stock above its 200-day moving average
compiled to C > sma(C, 200)
0.5564on the line (true)
near_high
Within 2% of the 52-week high
0.0689false
hv_low
Is 20-day historical volatility below 30%
compiled to std(log(C / C[-1]), 20) * sqrt(20 / 19) * sqrt(252) < 0.3
0.9463true
drop10
A 10% drawdown within a month
0.23423% · unlikely

What it means

For IWM on the session of 2026-10-30: True now: Is 20-day historical volatility below 30%. Not true: Within 2% of the 52-week high. On the line: Is the stock above its 200-day moving average. Forecasts: A 10% drawdown within a month 23%.

Strong small caps with moderate volatility describe an open window; the deal team times listings with its bankers.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "IWM"
  },
  "questions": {
    "trend": {
      "type": "yes_no",
      "instructions": "Is the stock above its 200-day moving average?"
    },
    "near_high": {
      "type": "yes_no",
      "ask": "C >= 0.98 * max(H, 252)"
    },
    "hv_low": {
      "type": "yes_no",
      "instructions": "Is 20-day historical volatility below 30%?"
    },
    "drop10": {
      "type": "yes_no",
      "instructions": "Will it drop at least 10% at some point in the next month?"
    }
  }
}
Response JSON (IWM, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "trend": {
      "yes_no": 0.5564,
      "rule": "C > sma(C, 200)",
      "basis": "comparison"
    },
    "near_high": {
      "yes_no": 0.0689,
      "rule": "C >= 0.98 * max(H, 252)",
      "basis": "rule"
    },
    "hv_low": {
      "yes_no": 0.9463,
      "rule": "std(log(C / C[-1]), 20) * sqrt(20 / 19) * sqrt(252) < 0.3",
      "basis": "pattern"
    },
    "drop10": {
      "yes_no": 0.234
    }
  },
  "context": {
    "symbol": "IWM",
    "as_of": "2026-10-30"
  }
}

log max offset sma sqrt std

Sovereign wealth fund · example 17

Currency-sensitive holding NVO: trend and exhaustion candles

A foreign company listed in the US carries currency effects. Check its trend and exhaustion candles.

ora-fin-0.1.1NVO5 questions
  1. StateNVO
  2. Questions5 asked
  3. Answersreal, captured
  4. Actionsnone

State

{"symbol":"NVO"} The server fills in the latest completed session.

Questions

trendruleC > sma(C, 50)
Above the 50-day average
engulf_bearruleengulfing_bear()
engulfing bear candle: A red body that engulfs yesterday's green body.
darkruledark_cloud()
dark cloud candle: After a green day, opens above its close and closes below the middle of its body (but above its open).
willrrulewillr(14) > -20
Williams %R above -20 (closing near the top of its range)
drop5forecastWill it drop at least 5% at some point in the next month?
A 5% drawdown within a month

Answers

QuestionAnswerReading
trend
Above the 50-day average
0.2543false
engulf_bear
engulfing bear candle: A red body that engulfs yesterday's green body.
0.1068false
dark
dark cloud candle: After a green day, opens above its close and closes below the middle of its body (but above its open).
0.1158false
willr
Williams %R above -20 (closing near the top of its range)
0.7524true
drop5
A 5% drawdown within a month
0.50250% · close to even

What it means

For NVO on the session of 2026-10-30: True now: Williams %R above -20 (closing near the top of its range). Not true: Above the 50-day average; engulfing bear candle: A red body that engulfs yesterday's green body.; dark cloud candle: After a green day, opens above its close and closes below the middle of its body (but above its open).. Forecasts: A 5% drawdown within a month 50%.

Exhaustion candles in a foreign holding during a dollar rally are a common combination; the overlay team reviews hedges.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "NVO"
  },
  "questions": {
    "trend": {
      "type": "yes_no",
      "ask": "C > sma(C, 50)"
    },
    "engulf_bear": {
      "type": "yes_no",
      "ask": "engulfing_bear()"
    },
    "dark": {
      "type": "yes_no",
      "ask": "dark_cloud()"
    },
    "willr": {
      "type": "yes_no",
      "ask": "willr(14) > -20"
    },
    "drop5": {
      "type": "yes_no",
      "instructions": "Will it drop at least 5% at some point in the next month?"
    }
  }
}
Response JSON (NVO, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "trend": {
      "yes_no": 0.2543,
      "rule": "C > sma(C, 50)",
      "basis": "rule"
    },
    "engulf_bear": {
      "yes_no": 0.1068,
      "rule": "engulfing_bear()",
      "basis": "rule"
    },
    "dark": {
      "yes_no": 0.1158,
      "rule": "dark_cloud()",
      "basis": "rule"
    },
    "willr": {
      "yes_no": 0.7524,
      "rule": "willr(14) > -20",
      "basis": "rule"
    },
    "drop5": {
      "yes_no": 0.502
    }
  },
  "context": {
    "symbol": "NVO",
    "as_of": "2026-10-30"
  }
}

dark_cloud engulfing_bear sma willr

Sovereign wealth fund · example 18

Food security sleeve: DBA trend and breakouts

Some sovereign funds hold agriculture for food security. Check the agriculture fund's trend and breakout state.

ora-fin-0.1.1DBA5 questions
  1. StateDBA
  2. Questions5 asked
  3. Answersreal, captured
  4. Actionsnone

State

{"symbol":"DBA"} The server fills in the latest completed session.

Questions

trendruleC > sma(C, 50)
Above the 50-day average
donchianruleC > highest(C, 55)
55-day closing breakout
marubozurulemarubozu()
marubozu candle: Body at least 90% of the range: almost no wicks.
gap_uprulegap_up()
gap up candle: Today's whole range is above yesterday's high: an unfilled gap up.
rally5forecastWill it rally at least 5% at some point in the next month?
A 5% rally within a month

Answers

QuestionAnswerReading
trend
Above the 50-day average
0.0654false
donchian
55-day closing breakout
0.0537false
marubozu
marubozu candle: Body at least 90% of the range: almost no wicks.
0.1279false
gap_up
gap up candle: Today's whole range is above yesterday's high: an unfilled gap up.
0.0788false
rally5
A 5% rally within a month
0.16116% · unlikely

What it means

For DBA on the session of 2026-10-30: Not true: Above the 50-day average; 55-day closing breakout; marubozu candle: Body at least 90% of the range: almost no wicks.; gap up candle: Today's whole range is above yesterday's high: an unfilled gap up.. Forecasts: A 5% rally within a month 16%.

A breakout in agriculture prices is a policy-relevant fact for the food-security sleeve; the answers go into the quarterly note.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "DBA"
  },
  "questions": {
    "trend": {
      "type": "yes_no",
      "ask": "C > sma(C, 50)"
    },
    "donchian": {
      "type": "yes_no",
      "ask": "C > highest(C, 55)"
    },
    "marubozu": {
      "type": "yes_no",
      "ask": "marubozu()"
    },
    "gap_up": {
      "type": "yes_no",
      "ask": "gap_up()"
    },
    "rally5": {
      "type": "yes_no",
      "instructions": "Will it rally at least 5% at some point in the next month?"
    }
  }
}
Response JSON (DBA, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "trend": {
      "yes_no": 0.0654,
      "rule": "C > sma(C, 50)",
      "basis": "rule"
    },
    "donchian": {
      "yes_no": 0.0537,
      "rule": "C > highest(C, 55)",
      "basis": "rule"
    },
    "marubozu": {
      "yes_no": 0.1279,
      "rule": "marubozu()",
      "basis": "rule"
    },
    "gap_up": {
      "yes_no": 0.0788,
      "rule": "gap_up()",
      "basis": "rule"
    },
    "rally5": {
      "yes_no": 0.161
    }
  },
  "context": {
    "symbol": "DBA",
    "as_of": "2026-10-30"
  }
}

gap_up highest marubozu sma

Sovereign wealth fund · example 19

Energy transition: URA momentum

Track the uranium fund that proxies part of the energy-transition mandate.

ora-fin-0.1.1URA5 questions
  1. StateURA
  2. Questions5 asked
  3. Answersreal, captured
  4. Actionsnone

State

{"symbol":"URA"} The server fills in the latest completed session.

Questions

trendEnglish → ruleIs the stock above its 200-day moving average?
spinrulespinning_top()
spinning top candle: Small body (10–30% of range) with wicks of at least a quarter of the range on both sides.
dojiruledoji()
doji candle: Body at most 10% of the day's range.
ccirulecci(20) > 100
CCI above 100
rally10forecastWill it rally at least 10% at some point in the next month?
A 10% rally within a month

Answers

QuestionAnswerReading
trend
Is the stock above its 200-day moving average
compiled to C > sma(C, 200)
0.0537false
spin
spinning top candle: Small body (10–30% of range) with wicks of at least a quarter of the range on both sides.
0.3254false
doji
doji candle: Body at most 10% of the day's range.
0.6192true
cci
CCI above 100
0.0714false
rally10
A 10% rally within a month
0.77778% · likely

What it means

For URA on the session of 2026-10-30: True now: doji candle: Body at most 10% of the day's range.. Not true: Is the stock above its 200-day moving average; spinning top candle: Small body (10–30% of range) with wicks of at least a quarter of the range on both sides.; CCI above 100. Forecasts: A 10% rally within a month 78%.

Strong CCI with no indecision candles shows a trending theme; spinning tops and dojis after a run show hesitation.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "URA"
  },
  "questions": {
    "trend": {
      "type": "yes_no",
      "instructions": "Is the stock above its 200-day moving average?"
    },
    "spin": {
      "type": "yes_no",
      "ask": "spinning_top()"
    },
    "doji": {
      "type": "yes_no",
      "ask": "doji()"
    },
    "cci": {
      "type": "yes_no",
      "ask": "cci(20) > 100"
    },
    "rally10": {
      "type": "yes_no",
      "instructions": "Will it rally at least 10% at some point in the next month?"
    }
  }
}
Response JSON (URA, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "trend": {
      "yes_no": 0.0537,
      "rule": "C > sma(C, 200)",
      "basis": "comparison"
    },
    "spin": {
      "yes_no": 0.3254,
      "rule": "spinning_top()",
      "basis": "rule"
    },
    "doji": {
      "yes_no": 0.6192,
      "rule": "doji()",
      "basis": "rule"
    },
    "cci": {
      "yes_no": 0.0714,
      "rule": "cci(20) > 100",
      "basis": "rule"
    },
    "rally10": {
      "yes_no": 0.777
    }
  },
  "context": {
    "symbol": "URA",
    "as_of": "2026-10-30"
  }
}

cci doji sma spinning_top

Sovereign wealth fund · example 20

Slow allocation signal on EFA for a multi-year mandate

Use slow, smoothed rules on developed ex-US equities so the signal changes rarely and suits a multi-year horizon.

ora-fin-0.1.1EFA5 questions
  1. StateEFA
  2. Questions5 asked
  3. Answersreal, captured
  4. Actionsnone

State

{"symbol":"EFA"} The server fills in the latest completed session.

Questions

emaruleema(C, 100) > ema(C, 250)
100-day EMA above the 250-day EMA
recruleC > rec(C, self + 0.02 * (C - self))
Above a very slow recursive smoother (alpha 0.02)
hl2rulehl2() > sma(hl2(), 100)
Mid-price above its 100-day average
trruletr() < atr(50)
Today's true range below the 50-day ATR
drop10forecastWill it drop at least 10% at some point in the next month?
A 10% drawdown within a month

Answers

QuestionAnswerReading
ema
100-day EMA above the 250-day EMA
0.9463true
rec
Above a very slow recursive smoother (alpha 0.02)
0.3348false
hl2
Mid-price above its 100-day average
0.2271false
tr
Today's true range below the 50-day ATR
0.1041false
drop10
A 10% drawdown within a month
0.16316% · unlikely

What it means

For EFA on the session of 2026-10-30: True now: 100-day EMA above the 250-day EMA. Not true: Above a very slow recursive smoother (alpha 0.02); Mid-price above its 100-day average; Today's true range below the 50-day ATR. Forecasts: A 10% drawdown within a month 16%.

Slow rules flip rarely; a change in state becomes an agenda item for the next board meeting.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "EFA"
  },
  "questions": {
    "ema": {
      "type": "yes_no",
      "ask": "ema(C, 100) > ema(C, 250)"
    },
    "rec": {
      "type": "yes_no",
      "ask": "C > rec(C, self + 0.02 * (C - self))"
    },
    "hl2": {
      "type": "yes_no",
      "ask": "hl2() > sma(hl2(), 100)"
    },
    "tr": {
      "type": "yes_no",
      "ask": "tr() < atr(50)"
    },
    "drop10": {
      "type": "yes_no",
      "instructions": "Will it drop at least 10% at some point in the next month?"
    }
  }
}
Response JSON (EFA, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "ema": {
      "yes_no": 0.9463,
      "rule": "ema(C, 100) > ema(C, 250)",
      "basis": "rule"
    },
    "rec": {
      "yes_no": 0.3348,
      "rule": "C > rec(C, self + 0.02 * (C - self))",
      "basis": "rule"
    },
    "hl2": {
      "yes_no": 0.2271,
      "rule": "hl2() > sma(hl2(), 100)",
      "basis": "rule"
    },
    "tr": {
      "yes_no": 0.1041,
      "rule": "tr() < atr(50)",
      "basis": "rule"
    },
    "drop10": {
      "yes_no": 0.163
    }
  },
  "context": {
    "symbol": "EFA",
    "as_of": "2026-10-30"
  }
}

atr ema hl2 rec sma tr

Information, not investment advice. Rules answer from the latest completed daily session; forecasts are probabilities. Actions ran as dry runs: nothing was sent. More in Institutions: ETF issuer, Index provider, Insurance investment office, Pension fund, Endowment.

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