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 1–10 of 20 · page 1 of 2

Sovereign wealth fund · example 1

Country allocation trend map: EWJ, EWG, EWZ, EWA

A global fund weights many countries. Check which country funds are in long-term uptrends before the annual country review.

ora-fin-0.1.14 symbols, one request each3 questions
  1. State4 symbols
  2. Questions3 asked
  3. Answersreal, captured
  4. Actionsnone

State

{"symbol":"EWJ"} then EWG, EWZ, EWA, one request each. The server fills in the latest completed session.

Questions

trendEnglish → ruleIs the stock above its 200-day moving average?
momentumruleC > C[-63]
Higher than three months ago
beat_spyforecastWill it beat SPY over the next month?
Beating SPY over a month

Answers

Symboltrendrulemomentumrulebeat_spyforecast
EWJ0.7780.450.568
EWG0.53320.1160.458
EWZ0.08880.13450.392
EWA0.84660.6250.442

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

What it means

Session of 2026-10-30, 4 symbols: Is the stock above its 200-day moving average: true for EWJ, EWA of 4. Higher than three months ago: true for EWA of 4. Highest odds for “Beating SPY over a month”: EWJ at 57%.

The map shows trend state country by country; strategic weights follow the mandate, the map frames the discussion.

Request JSON (EWJ; the others differ only in the symbol)
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "EWJ"
  },
  "questions": {
    "trend": {
      "type": "yes_no",
      "instructions": "Is the stock above its 200-day moving average?"
    },
    "momentum": {
      "type": "yes_no",
      "ask": "C > C[-63]"
    },
    "beat_spy": {
      "type": "yes_no",
      "instructions": "Will it beat SPY over the next month?"
    }
  }
}
Response JSON (EWJ, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "trend": {
      "yes_no": 0.778,
      "rule": "C > sma(C, 200)",
      "basis": "comparison"
    },
    "momentum": {
      "yes_no": 0.45,
      "rule": "C > C[-63]",
      "basis": "rule"
    },
    "beat_spy": {
      "yes_no": 0.568
    }
  },
  "context": {
    "symbol": "EWJ",
    "as_of": "2026-10-30"
  }
}

offset sma

Sovereign wealth fund · example 2

Dollar regime: is UUP trending up?

A fund with assets in many currencies needs a read on the US dollar. Check the dollar ETF's trend, momentum and breakout state.

ora-fin-0.1.1UUP5 questions1 action
  1. StateUUP
  2. Questions5 asked
  3. Answersreal, captured
  4. Actions1 rule · dry run

State

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

Questions

trendruleC > sma(C, 50)
Above the 50-day average
longEnglish → ruleIs the stock above its 200-day moving average?
breakoutruleC > highest(C, 20)
20-day closing breakout
macdrulemacd(C) > macdsignal(C)
MACD above its signal line
up_weekforecastWill the stock be higher in a week?
Higher in a week

Answers

QuestionAnswerReading
trend
Above the 50-day average
0.8725true
long
Is the stock above its 200-day moving average
compiled to C > sma(C, 200)
0.9463true
breakout
20-day closing breakout
0.2335false
macd
MACD above its signal line
0.2057false
up_week
Higher in a week
0.56156% · close to even

Actions

Rules on the answers decide what to send.

trend >= 0.6 and breakout >= 0.6→Emailfx-overlay-team
What each action would send 0 of 1 fired · dry run, nothing sent
strong_dollarrule false: skipped

What it means

For UUP on the session of 2026-10-30: True now: Above the 50-day average; Is the stock above its 200-day moving average. Not true: 20-day closing breakout; MACD above its signal line. Forecasts: Higher in a week 56%. No action fired: every rule was false.

A dollar breakout matters for the unhedged share of non-US assets; the overlay team decides on the hedge ratio.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "UUP"
  },
  "questions": {
    "trend": {
      "type": "yes_no",
      "ask": "C > sma(C, 50)"
    },
    "long": {
      "type": "yes_no",
      "instructions": "Is the stock above its 200-day moving average?"
    },
    "breakout": {
      "type": "yes_no",
      "ask": "C > highest(C, 20)"
    },
    "macd": {
      "type": "yes_no",
      "ask": "macd(C) > macdsignal(C)"
    },
    "up_week": {
      "type": "yes_no",
      "instructions": "Will the stock be higher in a week?"
    }
  },
  "actions": [
    {
      "id": "strong_dollar",
      "when": "trend >= 0.6 and breakout >= 0.6",
      "do": "email",
      "connection": "fx-overlay-team",
      "subject": "Dollar breakout ({{as_of}})",
      "message": "{{symbol}} closed at a 20-day high above its 50-day. Review the currency-hedge ratio on non-US assets. Higher in a week: {{up_week|pct}}."
    }
  ],
  "dry_run": true
}
Response JSON (UUP, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "trend": {
      "yes_no": 0.8725,
      "rule": "C > sma(C, 50)",
      "basis": "rule"
    },
    "long": {
      "yes_no": 0.9463,
      "rule": "C > sma(C, 200)",
      "basis": "comparison"
    },
    "breakout": {
      "yes_no": 0.2335,
      "rule": "C > highest(C, 20)",
      "basis": "rule"
    },
    "macd": {
      "yes_no": 0.2057,
      "rule": "macd(C) > macdsignal(C)",
      "basis": "rule"
    },
    "up_week": {
      "yes_no": 0.561
    }
  },
  "context": {
    "symbol": "UUP",
    "as_of": "2026-10-30"
  },
  "actions": [
    {
      "id": "strong_dollar",
      "fired": false,
      "status": "skipped"
    }
  ]
}

highest macd macdsignal sma

Sovereign wealth fund · example 3

Oil revenue hedge: USO trend and volatility

A commodity-funded sovereign fund watches oil because its inflows depend on it. Check trend and volatility in the oil fund.

ora-fin-0.1.1USO5 questions2 actions
  1. StateUSO
  2. Questions5 asked
  3. Answersreal, captured
  4. Actions2 rules · dry run

State

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

Questions

trendruleC > sma(C, 50)
Above the 50-day average
breakdownruleC < lowest(L, 20)
Closed under the 20-day low
atr3ruleatr_pct(14) > 3
A typical day moves more than 3%
drop10forecastWill it drop at least 10% at some point in the next month?
A 10% drawdown within a month
rally10forecastWill it rally at least 10% at some point in the next month?
A 10% rally within a month

Answers

QuestionAnswerReading
trend
Above the 50-day average
0.9434true
breakdown
Closed under the 20-day low
0.0537false
atr3
A typical day moves more than 3%
0.3803false
drop10
A 10% drawdown within a month
0.61562% · likely
rally10
A 10% rally within a month
0.65866% · likely

Actions

Rules on the answers decide what to send.

breakdown >= 0.6→Emailministry-liaison
else→Slackswf-strategy
What each action would send 1 of 2 fired · dry run, nothing sent
inflow_riskrule false: skipped
steadywould send (dry run)Slack → swf-strategy
{
  "text": "USO (2026-10-30): no oil breakdown; above 50-day 94%, ATR over 3% 38%."
}

What it means

For USO on the session of 2026-10-30: True now: Above the 50-day average. Not true: Closed under the 20-day low; A typical day moves more than 3%. Forecasts: A 10% drawdown within a month 62%; A 10% rally within a month 66%. Fired: steady (Slack → swf-strategy).

Oil weakness reduces future contributions, so the liaison is told early; the portfolio itself is not traded on this.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "USO"
  },
  "questions": {
    "trend": {
      "type": "yes_no",
      "ask": "C > sma(C, 50)"
    },
    "breakdown": {
      "type": "yes_no",
      "ask": "C < lowest(L, 20)"
    },
    "atr3": {
      "type": "yes_no",
      "ask": "atr_pct(14) > 3"
    },
    "drop10": {
      "type": "yes_no",
      "instructions": "Will it drop at least 10% at some point in the next month?"
    },
    "rally10": {
      "type": "yes_no",
      "instructions": "Will it rally at least 10% at some point in the next month?"
    }
  },
  "actions": [
    {
      "id": "inflow_risk",
      "when": "breakdown >= 0.6",
      "do": "email",
      "connection": "ministry-liaison",
      "subject": "{{symbol}} broke its 20-day low ({{as_of}})",
      "message": "{{symbol}} closed under its 20-day low. Lower oil prices reduce expected inflows. 10% further drop odds: {{drop10|pct}}."
    },
    {
      "id": "steady",
      "when": "else",
      "do": "slack",
      "connection": "swf-strategy",
      "message": "{{symbol}} ({{as_of}}): no oil breakdown; above 50-day {{trend|pct}}, ATR over 3% {{atr3|pct}}."
    }
  ],
  "dry_run": true
}
Response JSON (USO, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "trend": {
      "yes_no": 0.9434,
      "rule": "C > sma(C, 50)",
      "basis": "rule"
    },
    "breakdown": {
      "yes_no": 0.0537,
      "rule": "C < lowest(L, 20)",
      "basis": "rule"
    },
    "atr3": {
      "yes_no": 0.3803,
      "rule": "atr_pct(14) > 3",
      "basis": "rule"
    },
    "drop10": {
      "yes_no": 0.615
    },
    "rally10": {
      "yes_no": 0.658
    }
  },
  "context": {
    "symbol": "USO",
    "as_of": "2026-10-30"
  },
  "actions": [
    {
      "id": "inflow_risk",
      "fired": false,
      "status": "skipped"
    },
    {
      "id": "steady",
      "fired": true,
      "status": "dry_run",
      "do": "slack",
      "connection": "swf-strategy",
      "preview": {
        "text": "USO (2026-10-30): no oil breakdown; above 50-day 94%, ATR over 3% 38%."
      }
    }
  ]
}

atr_pct lowest sma

Sovereign wealth fund · example 4

Emerging-market country risk: EWZ, EWW, INDA, FXI

Check emerging-market country funds for drawdowns and heavy selling as part of the country-risk dashboard.

ora-fin-0.1.14 symbols, one request each4 questions2 actions
  1. State4 symbols
  2. Questions4 asked
  3. Answersreal, captured
  4. Actions2 rules · dry run

State

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

Questions

drawdownruleC < 0.8 * max(H, 252)
More than 20% off the 52-week high
down_volruleC < C[-1] and V > 1.5 * ref(avg(V, 20), -1)
Down on heavy volume
belowEnglish → ruleIs the stock below its 200-day moving average?
drop10forecastWill it drop at least 10% at some point in the next month?
A 10% drawdown within a month

Answers

Symboldrawdownruledown_volrulebelowruledrop10forecastFired
EWZ0.850.08550.91120.508ok
EWW0.05370.10910.73780.271ok
INDA0.05560.12830.91050.123ok
FXI0.28270.13090.94630.203ok

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.

drawdown >= 0.6 and down_vol >= 0.6→Webhookrisk-dashboard
else→Slackswf-strategy
EWZ 1 of 2 fired · dry run, nothing sent
country_flagrule false: skipped
okwould send (dry run)Slack → swf-strategy
{
  "text": "EWZ (2026-10-30): no country-risk flag (drawdown 85%, below 200-day 91%)."
}
EWW 1 of 2 fired · dry run, nothing sent
country_flagrule false: skipped
okwould send (dry run)Slack → swf-strategy
{
  "text": "EWW (2026-10-30): no country-risk flag (drawdown 5%, below 200-day 74%)."
}
INDA 1 of 2 fired · dry run, nothing sent
country_flagrule false: skipped
okwould send (dry run)Slack → swf-strategy
{
  "text": "INDA (2026-10-30): no country-risk flag (drawdown 6%, below 200-day 91%)."
}
FXI 1 of 2 fired · dry run, nothing sent
country_flagrule false: skipped
okwould send (dry run)Slack → swf-strategy
{
  "text": "FXI (2026-10-30): no country-risk flag (drawdown 28%, below 200-day 95%)."
}

What it means

Session of 2026-10-30, 4 symbols: More than 20% off the 52-week high: true for EWZ of 4. Down on heavy volume: true for none of 4. Is the stock below its 200-day moving average: true for EWZ, EWW, INDA, FXI of 4. Highest odds for “A 10% drawdown within a month”: EWZ at 51%. country_flag fired for none. ok fired for EWZ, EWW, INDA, FXI.

A country fund in a deep drawdown with heavy selling moves up the risk dashboard; exposure limits are set by the board.

Request JSON (EWZ; the others differ only in the symbol)
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "EWZ"
  },
  "questions": {
    "drawdown": {
      "type": "yes_no",
      "ask": "C < 0.8 * max(H, 252)"
    },
    "down_vol": {
      "type": "yes_no",
      "ask": "C < C[-1] and V > 1.5 * ref(avg(V, 20), -1)"
    },
    "below": {
      "type": "yes_no",
      "instructions": "Is the stock below its 200-day moving average?"
    },
    "drop10": {
      "type": "yes_no",
      "instructions": "Will it drop at least 10% at some point in the next month?"
    }
  },
  "actions": [
    {
      "id": "country_flag",
      "when": "drawdown >= 0.6 and down_vol >= 0.6",
      "do": "webhook",
      "connection": "risk-dashboard",
      "body": {
        "country_fund": "{{symbol}}",
        "as_of": "{{as_of}}",
        "flag": "drawdown_heavy_selling",
        "p_drawdown": "{{drawdown}}",
        "p_down_on_volume": "{{down_vol}}",
        "p_drop10": "{{drop10}}"
      }
    },
    {
      "id": "ok",
      "when": "else",
      "do": "slack",
      "connection": "swf-strategy",
      "message": "{{symbol}} ({{as_of}}): no country-risk flag (drawdown {{drawdown|pct}}, below 200-day {{below|pct}})."
    }
  ],
  "dry_run": true
}
Response JSON (EWZ, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "drawdown": {
      "yes_no": 0.85,
      "rule": "C < 0.8 * max(H, 252)",
      "basis": "rule"
    },
    "down_vol": {
      "yes_no": 0.0855,
      "rule": "C < C[-1] and V > 1.5 * ref(avg(V, 20), -1)",
      "basis": "rule"
    },
    "below": {
      "yes_no": 0.9112,
      "rule": "C < sma(C, 200)",
      "basis": "comparison"
    },
    "drop10": {
      "yes_no": 0.508
    }
  },
  "context": {
    "symbol": "EWZ",
    "as_of": "2026-10-30"
  },
  "actions": [
    {
      "id": "country_flag",
      "fired": false,
      "status": "skipped"
    },
    {
      "id": "ok",
      "fired": true,
      "status": "dry_run",
      "do": "slack",
      "connection": "swf-strategy",
      "preview": {
        "text": "EWZ (2026-10-30): no country-risk flag (drawdown 85%, below 200-day 91%)."
      }
    }
  ]
}

avg max offset ref sma

Sovereign wealth fund · example 5

Global equity core: is VXUS keeping up?

The core equity portfolio is US plus international. Check the international fund's trend and momentum each month.

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

State

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

Questions

trendruleC > ema(C, 20) and ema(C, 20) > sma(C, 50) and sma(C, 50) > sma(C, 200)
Stacked averages: close > 20 EMA > 50 > 200
rocruleroc(C, 20) > 5
Up more than 5% in 20 sessions
obvruleobv() > sma(obv(), 20)
On-balance volume above its 20-day average
drop5forecastWill it drop at least 5% at some point in the next month?
A 5% drawdown within a month

Answers

QuestionAnswerReading
trend
Stacked averages: close > 20 EMA > 50 > 200
0.0865false
roc
Up more than 5% in 20 sessions
0.0543false
obv
On-balance volume above its 20-day average
0.24false
drop5
A 5% drawdown within a month
0.23323% · unlikely

What it means

For VXUS on the session of 2026-10-30: Not true: Stacked averages: close > 20 EMA > 50 > 200; Up more than 5% in 20 sessions; On-balance volume above its 20-day average. Forecasts: A 5% drawdown within a month 23%.

When international fails these rules the home-bias discussion comes back; the answers describe, the mandate decides.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "VXUS"
  },
  "questions": {
    "trend": {
      "type": "yes_no",
      "ask": "C > ema(C, 20) and ema(C, 20) > sma(C, 50) and sma(C, 50) > sma(C, 200)"
    },
    "roc": {
      "type": "yes_no",
      "ask": "roc(C, 20) > 5"
    },
    "obv": {
      "type": "yes_no",
      "ask": "obv() > sma(obv(), 20)"
    },
    "drop5": {
      "type": "yes_no",
      "instructions": "Will it drop at least 5% at some point in the next month?"
    }
  }
}
Response JSON (VXUS, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "trend": {
      "yes_no": 0.0865,
      "rule": "C > ema(C, 20) and ema(C, 20) > sma(C, 50) and sma(C, 50) > sma(C, 200)",
      "basis": "rule"
    },
    "roc": {
      "yes_no": 0.0543,
      "rule": "roc(C, 20) > 5",
      "basis": "rule"
    },
    "obv": {
      "yes_no": 0.24,
      "rule": "obv() > sma(obv(), 20)",
      "basis": "rule"
    },
    "drop5": {
      "yes_no": 0.233
    }
  },
  "context": {
    "symbol": "VXUS",
    "as_of": "2026-10-30"
  }
}

ema obv roc sma

Sovereign wealth fund · example 6

Precious metals reserve: GLD, IAU, PPLT

Part of the reserve is held in precious metals. Check trend, extension and reversal candles for the reserve report.

ora-fin-0.1.13 symbols, one request each5 questions2 actions
  1. State3 symbols
  2. Questions5 asked
  3. Answersreal, captured
  4. Actions2 rules · dry run

State

{"symbol":"GLD"} then IAU, PPLT, one request each. The server fills in the latest completed session.

Questions

trendEnglish → ruleIs the stock above its 200-day moving average?
stretchedruleC > sma(C, 20) + 2 * atr(14)
Stretched: more than 2 ATR above the 20-day
eveningruleevening_star()
evening star candle: A green bar, a small bar that stays above its close, then a red bar closing below the middle of the first.
gravestonerulegravestone_doji()
gravestone doji candle: Doji with a long upper wick and almost no lower wick.
drop5forecastWill it drop at least 5% at some point in the next month?
A 5% drawdown within a month

Answers

Symboltrendrulestretchedruleeveningrulegravestoneruledrop5forecastFired
GLD0.05370.0630.14760.05480.435steady
IAU0.05370.0630.14850.05410.425steady
PPLT0.05370.05370.07590.09490.551steady

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.

evening >= 0.6 or gravestone >= 0.6→Emailreserve-management
else→Slackswf-strategy
GLD 1 of 2 fired · dry run, nothing sent
reserve_noterule false: skipped
steadywould send (dry run)Slack → swf-strategy
{
  "text": "GLD (2026-10-30): no top pattern; stretched 6%."
}
IAU 1 of 2 fired · dry run, nothing sent
reserve_noterule false: skipped
steadywould send (dry run)Slack → swf-strategy
{
  "text": "IAU (2026-10-30): no top pattern; stretched 6%."
}
PPLT 1 of 2 fired · dry run, nothing sent
reserve_noterule false: skipped
steadywould send (dry run)Slack → swf-strategy
{
  "text": "PPLT (2026-10-30): no top pattern; stretched 5%."
}

What it means

Session of 2026-10-30, 3 symbols: Is the stock above its 200-day moving average: true for none of 3. Stretched: more than 2 ATR above the 20-day: true for none of 3. evening star candle: A green bar, a small bar that stays above its close, then a red bar closing below the middle of the first.: true for none of 3. gravestone doji candle: Doji with a long upper wick and almost no lower wick.: true for none of 3. Highest odds for “A 5% drawdown within a month”: PPLT at 55%. reserve_note fired for none. steady fired for GLD, IAU, PPLT.

Trend plus no exhaustion candle supports the reserve weight; signs of a top are noted, the weight is policy.

Request JSON (GLD; the others differ only in the symbol)
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "GLD"
  },
  "questions": {
    "trend": {
      "type": "yes_no",
      "instructions": "Is the stock above its 200-day moving average?"
    },
    "stretched": {
      "type": "yes_no",
      "ask": "C > sma(C, 20) + 2 * atr(14)"
    },
    "evening": {
      "type": "yes_no",
      "ask": "evening_star()"
    },
    "gravestone": {
      "type": "yes_no",
      "ask": "gravestone_doji()"
    },
    "drop5": {
      "type": "yes_no",
      "instructions": "Will it drop at least 5% at some point in the next month?"
    }
  },
  "actions": [
    {
      "id": "reserve_note",
      "when": "evening >= 0.6 or gravestone >= 0.6",
      "do": "email",
      "connection": "reserve-management",
      "subject": "{{symbol}}: top pattern ({{as_of}})",
      "message": "{{symbol}} shows a top pattern (evening star {{evening|pct}}, gravestone {{gravestone|pct}}). Trend above the 200-day: {{trend|pct}}."
    },
    {
      "id": "steady",
      "when": "else",
      "do": "slack",
      "connection": "swf-strategy",
      "message": "{{symbol}} ({{as_of}}): no top pattern; stretched {{stretched|pct}}."
    }
  ],
  "dry_run": true
}
Response JSON (GLD, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "trend": {
      "yes_no": 0.0537,
      "rule": "C > sma(C, 200)",
      "basis": "comparison"
    },
    "stretched": {
      "yes_no": 0.063,
      "rule": "C > sma(C, 20) + 2 * atr(14)",
      "basis": "rule"
    },
    "evening": {
      "yes_no": 0.1476,
      "rule": "evening_star()",
      "basis": "rule"
    },
    "gravestone": {
      "yes_no": 0.0548,
      "rule": "gravestone_doji()",
      "basis": "rule"
    },
    "drop5": {
      "yes_no": 0.435
    }
  },
  "context": {
    "symbol": "GLD",
    "as_of": "2026-10-30"
  },
  "actions": [
    {
      "id": "reserve_note",
      "fired": false,
      "status": "skipped"
    },
    {
      "id": "steady",
      "fired": true,
      "status": "dry_run",
      "do": "slack",
      "connection": "swf-strategy",
      "preview": {
        "text": "GLD (2026-10-30): no top pattern; stretched 6%."
      }
    }
  ]
}

atr evening_star gravestone_doji sma

Sovereign wealth fund · example 7

Strategic technology stakes: TSM, ASML, NVDA

Direct stakes in strategic technology companies need monitoring: trend, earnings calendar and reaction size.

ora-fin-0.1.13 symbols, one request each5 questions1 action
  1. State3 symbols
  2. Questions5 asked
  3. Answersreal, captured
  4. Actions1 rule · dry run

State

{"symbol":"TSM"} then ASML, NVDA, one request each. The server fills in the latest completed session.

Questions

trendruleC > sma(C, 50)
Above the 50-day average
earn14English → ruleIs earnings in the next 14 days?
beatrulebeat_eps_last > 0.5 and beat_revenue_last > 0.5
Beat on EPS and revenue last quarter
big_reactruleabs(last_earnings_move) > 5
Last earnings move bigger than 5%
drop10forecastWill it drop at least 10% at some point in the next month?
A 10% drawdown within a month

Answers

Symboltrendruleearn14rulebeatrulebig_reactruledrop10forecastFired
TSM0.09590.05370.85910.05370.587none
ASML0.07640.05370.14090.05370.624none
NVDA0.07460.10330.85910.94630.523none

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.

earn14 >= 0.6→Webhookstakes-monitor
TSM 0 of 1 fired · dry run, nothing sent
ASML 0 of 1 fired · dry run, nothing sent
NVDA 0 of 1 fired · dry run, nothing sent

What it means

Session of 2026-10-30, 3 symbols: Above the 50-day average: true for none of 3. Is earnings in the next 14 days: true for none of 3. Beat on EPS and revenue last quarter: true for TSM, NVDA of 3. Last earnings move bigger than 5%: true for NVDA of 3. Highest odds for “A 10% drawdown within a month”: ASML at 62%. stake_report fired for none.

Earnings within two weeks open a monitoring item for each stake; the team prepares talking points, not trades.

Request JSON (TSM; the others differ only in the symbol)
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "TSM"
  },
  "questions": {
    "trend": {
      "type": "yes_no",
      "ask": "C > sma(C, 50)"
    },
    "earn14": {
      "type": "yes_no",
      "instructions": "Is earnings in the next 14 days?"
    },
    "beat": {
      "type": "yes_no",
      "ask": "beat_eps_last > 0.5 and beat_revenue_last > 0.5"
    },
    "big_react": {
      "type": "yes_no",
      "ask": "abs(last_earnings_move) > 5"
    },
    "drop10": {
      "type": "yes_no",
      "instructions": "Will it drop at least 10% at some point in the next month?"
    }
  },
  "actions": [
    {
      "id": "stake_report",
      "when": "earn14 >= 0.6",
      "do": "webhook",
      "connection": "stakes-monitor",
      "body": {
        "holding": "{{symbol}}",
        "as_of": "{{as_of}}",
        "event": "earnings_within_14d",
        "p_trend": "{{trend}}",
        "p_last_big_reaction": "{{big_react}}",
        "p_drop10": "{{drop10}}"
      }
    }
  ],
  "dry_run": true
}
Response JSON (TSM, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "trend": {
      "yes_no": 0.0959,
      "rule": "C > sma(C, 50)",
      "basis": "rule"
    },
    "earn14": {
      "yes_no": 0.0537,
      "rule": "days_to_earnings <= 14",
      "basis": "pattern"
    },
    "beat": {
      "yes_no": 0.8591,
      "rule": "beat_eps_last > 0.5 and beat_revenue_last > 0.5",
      "basis": "rule"
    },
    "big_react": {
      "yes_no": 0.0537,
      "rule": "abs(last_earnings_move) > 5",
      "basis": "rule"
    },
    "drop10": {
      "yes_no": 0.587
    }
  },
  "context": {
    "symbol": "TSM",
    "as_of": "2026-10-30"
  },
  "actions": [
    {
      "id": "stake_report",
      "fired": false,
      "status": "skipped"
    }
  ]
}

abs beat_eps_last beat_revenue_last days_to_earnings last_earnings_move sma

Sovereign wealth fund · example 8

Infrastructure proxy: EPD pipeline income and trend

A listed pipeline partnership is a public read on the infrastructure portfolio. Check income and trend.

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

State

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

Questions

yield3English → ruleIs the dividend yield above 3%?
raisedruleraised_last > 0.5
Raised its last dividend
trendruleC > sma(C, 50)
Above the 50-day average
sma200rulesma(C, 200) > ref(sma(C, 200), -20)
The 200-day average is rising
drop5forecastWill it drop at least 5% at some point in the next month?
A 5% drawdown within a month

Answers

QuestionAnswerReading
yield3
Is the dividend yield above 3%
compiled to div_yield_ttm > 3
0.9463true
raised
Raised its last dividend
0.1409false
trend
Above the 50-day average
0.8235true
sma200
The 200-day average is rising
0.9463true
drop5
A 5% drawdown within a month
0.38739% · unlikely

What it means

For EPD on the session of 2026-10-30: True now: Is the dividend yield above 3%; Above the 50-day average; The 200-day average is rising. Not true: Raised its last dividend. Forecasts: A 5% drawdown within a month 39%.

Rising payouts and a rising 200-day support the infrastructure marks; weakness here is an early warning for private valuations.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "EPD"
  },
  "questions": {
    "yield3": {
      "type": "yes_no",
      "instructions": "Is the dividend yield above 3%?"
    },
    "raised": {
      "type": "yes_no",
      "ask": "raised_last > 0.5"
    },
    "trend": {
      "type": "yes_no",
      "ask": "C > sma(C, 50)"
    },
    "sma200": {
      "type": "yes_no",
      "ask": "sma(C, 200) > ref(sma(C, 200), -20)"
    },
    "drop5": {
      "type": "yes_no",
      "instructions": "Will it drop at least 5% at some point in the next month?"
    }
  }
}
Response JSON (EPD, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "yield3": {
      "yes_no": 0.9463,
      "rule": "div_yield_ttm > 3",
      "basis": "pattern"
    },
    "raised": {
      "yes_no": 0.1409,
      "rule": "raised_last > 0.5",
      "basis": "rule"
    },
    "trend": {
      "yes_no": 0.8235,
      "rule": "C > sma(C, 50)",
      "basis": "rule"
    },
    "sma200": {
      "yes_no": 0.9463,
      "rule": "sma(C, 200) > ref(sma(C, 200), -20)",
      "basis": "rule"
    },
    "drop5": {
      "yes_no": 0.387
    }
  },
  "context": {
    "symbol": "EPD",
    "as_of": "2026-10-30"
  }
}

div_yield_ttm raised_last ref sma

Sovereign wealth fund · example 9

Weekly global digest: equities, bonds, dollar, gold, oil

Every Friday after the close, the strategy team gets one Slack line per global building block.

ora-fin-0.1.15 symbols, one request each3 questions1 actionworkflow · Fri at 17:00 ET
  1. ScheduleFri at 17:00 ET
  2. State5 symbols
  3. Questions3 asked
  4. Answersreal, captured
  5. Actions1 rule · dry run

State

{"symbol":"VTI"} then BND, UUP, GLD, USO, one request each. The server fills in the latest completed session.

Questions

trendruleC > sma(C, 50)
Above the 50-day average
up_monthEnglish → ruleIs the stock up over the last month?
drop5forecastWill it drop at least 5% at some point in the next month?
A 5% drawdown within a month

Answers

Symboltrendruleup_monthruledrop5forecastFired
VTI0.12420.25170.187line
BND0.82920.91960.007line
UUP0.87250.55510.013line
GLD0.08070.14550.435line
USO0.94340.91980.615line

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.

trend >= 0→Slackswf-strategy
VTI 1 of 1 fired · dry run, nothing sent
linewould send (dry run)Slack → swf-strategy
{
  "text": "VTI (2026-10-30): above 50-day 12%, up over the month 25%, 5% drawdown odds 19%."
}
BND 1 of 1 fired · dry run, nothing sent
linewould send (dry run)Slack → swf-strategy
{
  "text": "BND (2026-10-30): above 50-day 83%, up over the month 92%, 5% drawdown odds 1%."
}
UUP 1 of 1 fired · dry run, nothing sent
linewould send (dry run)Slack → swf-strategy
{
  "text": "UUP (2026-10-30): above 50-day 87%, up over the month 56%, 5% drawdown odds 1%."
}
GLD 1 of 1 fired · dry run, nothing sent
linewould send (dry run)Slack → swf-strategy
{
  "text": "GLD (2026-10-30): above 50-day 8%, up over the month 15%, 5% drawdown odds 44%."
}
USO 1 of 1 fired · dry run, nothing sent
linewould send (dry run)Slack → swf-strategy
{
  "text": "USO (2026-10-30): above 50-day 94%, up over the month 92%, 5% drawdown odds 62%."
}

What it means

Session of 2026-10-30, 5 symbols: Above the 50-day average: true for BND, UUP, USO of 5. Is the stock up over the last month: true for BND, USO of 5. Highest odds for “A 5% drawdown within a month”: USO at 62%. line fired for VTI, BND, UUP, GLD, USO.

Six lines a week give the strategy team a consistent global picture; each line is the live answer for that asset.

As a scheduled workflow (Fri at 17:00 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": "Weekly global digest: equities, bonds, dollar, gold, oil",
  "symbols": "VTI BND UUP GLD USO",
  "days": [
    5
  ],
  "at_time": "17:00",
  "model": "ora-fin-0.1.1",
  "questions": {
    "trend": {
      "type": "yes_no",
      "ask": "C > sma(C, 50)"
    },
    "up_month": {
      "type": "yes_no",
      "instructions": "Is the stock up over the last month?"
    },
    "drop5": {
      "type": "yes_no",
      "instructions": "Will it drop at least 5% at some point in the next month?"
    }
  },
  "actions": [
    {
      "id": "line",
      "when": "trend >= 0",
      "do": "slack",
      "connection": "swf-strategy",
      "message": "{{symbol}} ({{as_of}}): above 50-day {{trend|pct}}, up over the month {{up_month|pct}}, 5% drawdown odds {{drop5|pct}}."
    }
  ]
}
Request JSON (VTI; the others differ only in the symbol)
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "VTI"
  },
  "questions": {
    "trend": {
      "type": "yes_no",
      "ask": "C > sma(C, 50)"
    },
    "up_month": {
      "type": "yes_no",
      "instructions": "Is the stock up over the last month?"
    },
    "drop5": {
      "type": "yes_no",
      "instructions": "Will it drop at least 5% at some point in the next month?"
    }
  },
  "actions": [
    {
      "id": "line",
      "when": "trend >= 0",
      "do": "slack",
      "connection": "swf-strategy",
      "message": "{{symbol}} ({{as_of}}): above 50-day {{trend|pct}}, up over the month {{up_month|pct}}, 5% drawdown odds {{drop5|pct}}."
    }
  ],
  "dry_run": true
}
Response JSON (VTI, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "trend": {
      "yes_no": 0.1242,
      "rule": "C > sma(C, 50)",
      "basis": "rule"
    },
    "up_month": {
      "yes_no": 0.2517,
      "rule": "C > C[-21]",
      "basis": "pattern"
    },
    "drop5": {
      "yes_no": 0.187
    }
  },
  "context": {
    "symbol": "VTI",
    "as_of": "2026-10-30"
  },
  "actions": [
    {
      "id": "line",
      "fired": true,
      "status": "dry_run",
      "do": "slack",
      "connection": "swf-strategy",
      "preview": {
        "text": "VTI (2026-10-30): above 50-day 12%, up over the month 25%, 5% drawdown odds 19%."
      }
    }
  ]
}

offset sma

Sovereign wealth fund · example 10

Japan (EWJ): reversal candles after a sell-off

After a sharp drop in Japan, look for bullish reversal patterns before resuming a staged purchase program.

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

State

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

Questions

hammerrulehammer()
hammer candle: Lower wick at least twice the body, upper wick at most 10% of the range, closing below the close five bars back.
piercingrulepiercing_line()
piercing line candle: After a red day, opens below its close and closes above the middle of its body (but under its open).
haramiruleharami_bull()
harami bull candle: A small green body inside yesterday's red body.
soldiersrulethree_white_soldiers()
three white soldiers candle: Three green bars, each closing higher and opening inside the previous body.
rally5forecastWill it rally at least 5% at some point in the next month?
A 5% rally within a month

Answers

QuestionAnswerReading
hammer
hammer candle: Lower wick at least twice the body, upper wick at most 10% of the range, closing below the close five bars back.
0.3405false
piercing
piercing line candle: After a red day, opens below its close and closes above the middle of its body (but under its open).
0.0696false
harami
harami bull candle: A small green body inside yesterday's red body.
0.0665false
soldiers
three white soldiers candle: Three green bars, each closing higher and opening inside the previous body.
0.0669false
rally5
A 5% rally within a month
0.38438% · unlikely

What it means

For EWJ on the session of 2026-10-30: Not true: hammer candle: Lower wick at least twice the body, upper wick at most 10% of the range, closing below the close five bars back.; piercing line candle: After a red day, opens below its close and closes above the middle of its body (but under its open).; harami bull candle: A small green body inside yesterday's red body.; three white soldiers candle: Three green bars, each closing higher and opening inside the previous body.. Forecasts: A 5% rally within a month 38%.

A reversal pattern is one input to resuming purchases; the program schedule, not a candle, sets the pace.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "EWJ"
  },
  "questions": {
    "hammer": {
      "type": "yes_no",
      "ask": "hammer()"
    },
    "piercing": {
      "type": "yes_no",
      "ask": "piercing_line()"
    },
    "harami": {
      "type": "yes_no",
      "ask": "harami_bull()"
    },
    "soldiers": {
      "type": "yes_no",
      "ask": "three_white_soldiers()"
    },
    "rally5": {
      "type": "yes_no",
      "instructions": "Will it rally at least 5% at some point in the next month?"
    }
  }
}
Response JSON (EWJ, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "hammer": {
      "yes_no": 0.3405,
      "rule": "hammer()",
      "basis": "rule"
    },
    "piercing": {
      "yes_no": 0.0696,
      "rule": "piercing_line()",
      "basis": "rule"
    },
    "harami": {
      "yes_no": 0.0665,
      "rule": "harami_bull()",
      "basis": "rule"
    },
    "soldiers": {
      "yes_no": 0.0669,
      "rule": "three_white_soldiers()",
      "basis": "rule"
    },
    "rally5": {
      "yes_no": 0.384
    }
  },
  "context": {
    "symbol": "EWJ",
    "as_of": "2026-10-30"
  }
}

hammer harami_bull piercing_line three_white_soldiers

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.