Use cases · Buy side
Fund-of-funds allocator: 20 ways to use Ora
Allocates across managers and ETFs: regime reads, factor sleeves and rebalancing bands. Each example is a complete, runnable request with the real answers it returned (53 requests, captured 2026-10-31), what they mean and, where it fits, the action it would send.
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 (37)
sma 18roc 7max 5offset 5ema 3ref 3atr 3adx 2rsi 2lowest 2diminus 1diplus 1crossdown 1log 1sqrt 1std 1div_yield_ttm 1raised_last 1swinghigh 1swinglow 1avg 1crossup 1macd 1zscore 1dark_cloud 1doji 1engulfing_bear 1engulfing_bull 1harami_bear 1abs 1gap_up 1greatest 1least 1outside_bar 1highestbars 1sum 1rma 1
Examples 11–20 of 20 · page 2 of 2
Fund-of-funds allocator · example 11
Emerging markets entry check: VWO and EEM
Before raising the EM manager's allocation, look for an uptrend turn with participation.
- State2 symbols
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"VWO"} then EEM, one request each. The server fills in the latest completed session.
Questions
cross | rule | crossup(C, sma(C, 200))Crossed above the 200-day today |
above | English → rule | Is the stock above its 200-day moving average? |
vol | rule | C > C[-1] and V > 1.5 * ref(avg(V, 20), -1)Up on heavy volume |
macd | English → rule | Is MACD above zero? |
rally5 | forecast | Will it rally at least 5% at some point in the next month? A 5% rally within a month |
Answers
| Symbol | crossrule | aboverule | volrule | macdrule | rally5forecast |
|---|---|---|---|---|---|
VWO | 0.05 | 0.0887 | 0.0645 | 0.0586 | 0.283 |
EEM | 0.05 | 0.1449 | 0.0701 | 0.0644 | 0.49 |
true false not known for rules; forecasts are odds. Hover a column for its question.
What it means
Session of 2026-10-30, 2 symbols: Crossed above the 200-day today: true for none of 2. Is the stock above its 200-day moving average: true for none of 2. Up on heavy volume: true for none of 2. Is MACD above zero: true for none of 2. Highest odds for “A 5% rally within a month”: EEM at 49%.
An EM benchmark above its 200-day with MACD positive is the condition for a staged increase.
Request JSON (VWO; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "VWO"
},
"questions": {
"cross": {
"type": "yes_no",
"ask": "crossup(C, sma(C, 200))"
},
"above": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"vol": {
"type": "yes_no",
"ask": "C > C[-1] and V > 1.5 * ref(avg(V, 20), -1)"
},
"macd": {
"type": "yes_no",
"instructions": "Is MACD above zero?"
},
"rally5": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
}
}Response JSON (VWO, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"cross": {
"yes_no": 0.05,
"rule": "crossup(C, sma(C, 200))",
"basis": "rule"
},
"above": {
"yes_no": 0.0887,
"rule": "C > sma(C, 200)",
"basis": "comparison"
},
"vol": {
"yes_no": 0.0645,
"rule": "C > C[-1] and V > 1.5 * ref(avg(V, 20), -1)",
"basis": "rule"
},
"macd": {
"yes_no": 0.0586,
"rule": "macd(C) > 0",
"basis": "pattern"
},
"rally5": {
"yes_no": 0.283
}
},
"context": {
"symbol": "VWO",
"as_of": "2026-10-30"
}
}Fund-of-funds allocator · example 12
Trend-following overlay across asset classes
Many allocators run a simple trend overlay: hold each asset only above its 10-month average.
- State3 symbols
- Questions3 asked
- Answersreal, captured
- Actions2 rules · dry run
State
{"symbol":"SPY"} then TLT, GLD, one request each. The server fills in the latest completed session.
Questions
ten_month | rule | C > sma(C, 210)Above its 10-month (210-session) average |
ema | rule | ema(C, 50) > ema(C, 150)50-day EMA above the 150-day EMA |
drop5 | forecast | Will it drop at least 5% at some point in the next month? A 5% drawdown within a month |
Answers
| Symbol | ten_monthrule | emarule | drop5forecast | Fired |
|---|---|---|---|---|
SPY | 0.9463 | 0.9463 | 0.203 | in |
TLT | 0.1072 | 0.0537 | 0.164 | out |
GLD | 0.0537 | 0.0537 | 0.435 | out |
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.
ten_month < 0.4→Webhookallocation-systemelse→Webhookallocation-system{
"overlay": "trend_10m",
"symbol": "SPY",
"signal": "hold",
"p_above": 0.9463,
"as_of": "2026-10-30"
}{
"overlay": "trend_10m",
"symbol": "TLT",
"signal": "underweight",
"p_above": 0.1072,
"as_of": "2026-10-30"
}{
"overlay": "trend_10m",
"symbol": "GLD",
"signal": "underweight",
"p_above": 0.0537,
"as_of": "2026-10-30"
}What it means
Session of 2026-10-30, 3 symbols: Above its 10-month (210-session) average: true for SPY of 3. 50-day EMA above the 150-day EMA: true for SPY of 3. Highest odds for “A 5% drawdown within a month”: GLD at 44%. out fired for TLT, GLD. in fired for SPY.
Each asset gets a hold or underweight signal; the overlay is mechanical and the allocation system applies policy limits.
Request JSON (SPY; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "SPY"
},
"questions": {
"ten_month": {
"type": "yes_no",
"ask": "C > sma(C, 210)"
},
"ema": {
"type": "yes_no",
"ask": "ema(C, 50) > ema(C, 150)"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
},
"actions": [
{
"id": "out",
"when": "ten_month < 0.4",
"do": "webhook",
"connection": "allocation-system",
"body": {
"overlay": "trend_10m",
"symbol": "{{symbol}}",
"signal": "underweight",
"p_above": "{{ten_month}}",
"as_of": "{{as_of}}"
}
},
{
"id": "in",
"when": "else",
"do": "webhook",
"connection": "allocation-system",
"body": {
"overlay": "trend_10m",
"symbol": "{{symbol}}",
"signal": "hold",
"p_above": "{{ten_month}}",
"as_of": "{{as_of}}"
}
}
],
"dry_run": true
}Response JSON (SPY, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"ten_month": {
"yes_no": 0.9463,
"rule": "C > sma(C, 210)",
"basis": "rule"
},
"ema": {
"yes_no": 0.9463,
"rule": "ema(C, 50) > ema(C, 150)",
"basis": "rule"
},
"drop5": {
"yes_no": 0.203
}
},
"context": {
"symbol": "SPY",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "out",
"fired": false,
"status": "skipped"
},
{
"id": "in",
"fired": true,
"status": "dry_run",
"do": "webhook",
"connection": "allocation-system",
"preview": {
"body": {
"overlay": "trend_10m",
"symbol": "SPY",
"signal": "hold",
"p_above": 0.9463,
"as_of": "2026-10-30"
}
}
}
]
}Fund-of-funds allocator · example 13
Country rotation among developed markets
A country-rotation manager is benchmarked against these funds; check which countries lead.
- State3 symbols
- Questions3 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"EWG"} then EWU, EWJ, one request each. The server fills in the latest completed session.
Questions
trend | English → rule | Is the stock above its 200-day moving average? |
mom | rule | roc(C, 63) > 10 and C >= 0.95 * max(H, 63)Up more than 10% in a quarter, near the high |
rsi | rule | rsi(C, 14) > 50RSI above 50 |
Answers
| Symbol | trendrule | momrule | rsirule |
|---|---|---|---|
EWG | 0.5332 | 0.0537 | 0.6183 |
EWU | 0.8565 | 0.0537 | 0.7896 |
EWJ | 0.778 | 0.0537 | 0.0681 |
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 EWU, EWJ of 3. Up more than 10% in a quarter, near the high: true for none of 3. RSI above 50: true for EWG, EWU of 3.
Leaders and laggards explain the rotation manager's positioning and help judge whether its bets are working.
Request JSON (EWG; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "EWG"
},
"questions": {
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"mom": {
"type": "yes_no",
"ask": "roc(C, 63) > 10 and C >= 0.95 * max(H, 63)"
},
"rsi": {
"type": "yes_no",
"ask": "rsi(C, 14) > 50"
}
}
}Response JSON (EWG, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.5332,
"rule": "C > sma(C, 200)",
"basis": "comparison"
},
"mom": {
"yes_no": 0.0537,
"rule": "roc(C, 63) > 10 and C >= 0.95 * max(H, 63)",
"basis": "rule"
},
"rsi": {
"yes_no": 0.6183,
"rule": "rsi(C, 14) > 50",
"basis": "rule"
}
},
"context": {
"symbol": "EWG",
"as_of": "2026-10-30"
}
}Fund-of-funds allocator · example 14
Manager drawdown review: when to call the manager
If a manager's benchmark is in a sharp drawdown and still falling, schedule a call before the investment committee asks.
- State2 symbols
- Questions4 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"ARKK"} then XBI, one request each. The server fills in the latest completed session.
Questions
dd | rule | C < 0.8 * max(H, 252)More than 20% off the 52-week high |
falling | English → rule | Is the stock down more than 5% over the last month? |
below | English → rule | Is the stock below its 200-day moving average? |
drop10 | forecast | Will it drop at least 10% at some point in the next month? A 10% drawdown within a month |
Answers
| Symbol | ddrule | fallingrule | belowrule | drop10forecast | Fired |
|---|---|---|---|---|---|
ARKK | 0.0988 | 0.7463 | 0.1868 | 0.61 | none |
XBI | 0.0537 | 0.1446 | 0.0796 | 0.503 | none |
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.
dd >= 0.6 and falling >= 0.6→EmailmeWhat it means
Session of 2026-10-30, 2 symbols: More than 20% off the 52-week high: true for none of 2. Is the stock down more than 5% over the last month: true for ARKK of 2. Is the stock below its 200-day moving average: true for none of 2. Highest odds for “A 10% drawdown within a month”: ARKK at 61%. call fired for none.
The email is a reminder to talk to the manager, not a signal to redeem.
Request JSON (ARKK; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "ARKK"
},
"questions": {
"dd": {
"type": "yes_no",
"ask": "C < 0.8 * max(H, 252)"
},
"falling": {
"type": "yes_no",
"instructions": "Is the stock down more than 5% over the last month?"
},
"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": "call",
"when": "dd >= 0.6 and falling >= 0.6",
"do": "email",
"connection": "me",
"subject": "Schedule manager call: {{symbol}}",
"message": "{{symbol}} ({{as_of}}) is over 20% off its high and down over 5% this month. 10% drawdown odds within a month: {{drop10|pct}}."
}
],
"dry_run": true
}Response JSON (ARKK, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"dd": {
"yes_no": 0.0988,
"rule": "C < 0.8 * max(H, 252)",
"basis": "rule"
},
"falling": {
"yes_no": 0.7463,
"rule": "C / C[-21] - 1 < -0.05",
"basis": "pattern"
},
"below": {
"yes_no": 0.1868,
"rule": "C < sma(C, 200)",
"basis": "comparison"
},
"drop10": {
"yes_no": 0.61
}
},
"context": {
"symbol": "ARKK",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "call",
"fired": false,
"status": "skipped"
}
]
}Fund-of-funds allocator · example 15
Inflation protection: TIPS versus nominal bonds
Compare TIP and IEF to see whether the market is paying for inflation protection.
- State2 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"TIP"} then IEF, one request each. The server fills in the latest completed session.
Questions
trend | English → rule | Is the stock above its 50-day moving average? |
mom | rule | roc(C, 20) > 1Up more than 1% over 20 sessions |
zs | rule | zscore(C, 60) > 1More than one standard deviation above its 60-day mean |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Symbol | trendrule | momrule | zsrule | up_weekforecast |
|---|---|---|---|---|
TIP | 0.8649 | 0.8631 | 0.3467 | 0.567 |
IEF | 0.8514 | 0.8926 | 0.2505 | 0.483 |
true false not known for rules; forecasts are odds. Hover a column for its question.
What it means
Session of 2026-10-30, 2 symbols: Is the stock above its 50-day moving average: true for TIP, IEF of 2. Up more than 1% over 20 sessions: true for TIP, IEF of 2. More than one standard deviation above its 60-day mean: true for none of 2. Highest odds for “Higher in a week”: TIP at 57%.
TIPS leading nominals points to rising inflation expectations, which supports the real-assets sleeve.
Request JSON (TIP; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "TIP"
},
"questions": {
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 50-day moving average?"
},
"mom": {
"type": "yes_no",
"ask": "roc(C, 20) > 1"
},
"zs": {
"type": "yes_no",
"ask": "zscore(C, 60) > 1"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Response JSON (TIP, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.8649,
"rule": "C > sma(C, 50)",
"basis": "comparison"
},
"mom": {
"yes_no": 0.8631,
"rule": "roc(C, 20) > 1",
"basis": "rule"
},
"zs": {
"yes_no": 0.3467,
"rule": "zscore(C, 60) > 1",
"basis": "rule"
},
"up_week": {
"yes_no": 0.567
}
},
"context": {
"symbol": "TIP",
"as_of": "2026-10-30"
}
}Fund-of-funds allocator · example 16
Reversal candles on the equity sleeves
A short scan for reversal candles on the main equity benchmarks before the monthly meeting.
- State2 symbols
- Questions6 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"SPY"} then EFA, one request each. The server fills in the latest completed session.
Questions
engulf_bull | rule | engulfing_bull()engulfing bull candle: A green body that engulfs yesterday's red body. |
engulf_bear | rule | engulfing_bear()engulfing bear candle: A red body that engulfs yesterday's green body. |
harami_bear | rule | harami_bear()harami bear candle: A small red body inside yesterday's green body. |
dark | rule | dark_cloud()dark cloud candle: After a green day, opens above its close and closes below the middle of its body (but above its open). |
doji | rule | doji()doji candle: Body at most 10% of the day's range. |
down_week | forecast | Will the stock be lower in a week? Lower in a week |
Answers
| Symbol | engulf_bullrule | engulf_bearrule | harami_bearrule | darkrule | dojirule | down_weekforecast |
|---|---|---|---|---|---|---|
SPY | 0.0597 | 0.0604 | 0.0597 | 0.0597 | 0.0579 | 0.541 |
EFA | 0.1701 | 0.1115 | 0.1851 | 0.1115 | 0.3022 | 0.491 |
true false not known for rules; forecasts are odds. Hover a column for its question.
What it means
Session of 2026-10-30, 2 symbols: engulfing bull candle: A green body that engulfs yesterday's red body.: true for none of 2. engulfing bear candle: A red body that engulfs yesterday's green body.: true for none of 2. harami bear candle: A small red body inside yesterday's green body.: true for none of 2. dark cloud candle: After a green day, opens above its close and closes below the middle of its body (but above its open).: true for none of 2. Highest odds for “Lower in a week”: SPY at 54%.
Candles are discussion points for the meeting; no allocation changes on a single bar.
Request JSON (SPY; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "SPY"
},
"questions": {
"engulf_bull": {
"type": "yes_no",
"ask": "engulfing_bull()"
},
"engulf_bear": {
"type": "yes_no",
"ask": "engulfing_bear()"
},
"harami_bear": {
"type": "yes_no",
"ask": "harami_bear()"
},
"dark": {
"type": "yes_no",
"ask": "dark_cloud()"
},
"doji": {
"type": "yes_no",
"ask": "doji()"
},
"down_week": {
"type": "yes_no",
"instructions": "Will the stock be lower in a week?"
}
}
}Response JSON (SPY, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"engulf_bull": {
"yes_no": 0.0597,
"rule": "engulfing_bull()",
"basis": "rule"
},
"engulf_bear": {
"yes_no": 0.0604,
"rule": "engulfing_bear()",
"basis": "rule"
},
"harami_bear": {
"yes_no": 0.0597,
"rule": "harami_bear()",
"basis": "rule"
},
"dark": {
"yes_no": 0.0597,
"rule": "dark_cloud()",
"basis": "rule"
},
"doji": {
"yes_no": 0.0579,
"rule": "doji()",
"basis": "rule"
},
"down_week": {
"yes_no": 0.541
}
},
"context": {
"symbol": "SPY",
"as_of": "2026-10-30"
}
}Fund-of-funds allocator · example 17
Monthly investment committee pack: one line per sleeve
On the first Monday of the month the committee gets a line per sleeve benchmark with trend and drawdown odds.
- ScheduleMon at 07:30 ET
- State4 symbols
- Questions3 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"VTI"} then VXUS, BND, GLD, one request each. The server fills in the latest completed session.
Questions
trend | English → rule | Is the stock above its 200-day moving average? |
drop5 | forecast | Will it drop at least 5% at some point in the next month? A 5% drawdown within a month |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Symbol | trendrule | drop5forecast | up_weekforecast | Fired |
|---|---|---|---|---|
VTI | 0.9415 | 0.187 | 0.57 | line |
VXUS | 0.3255 | 0.233 | 0.587 | line |
BND | 0.2013 | 0.007 | 0.545 | line |
GLD | 0.0537 | 0.435 | 0.566 | line |
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→Slackinvestment-committee{
"text": "VTI (2026-10-30): above 200-day 94%, 5% drawdown within a month 19%, higher in a week 57%."
}{
"text": "VXUS (2026-10-30): above 200-day 33%, 5% drawdown within a month 23%, higher in a week 59%."
}{
"text": "BND (2026-10-30): above 200-day 20%, 5% drawdown within a month 1%, higher in a week 55%."
}{
"text": "GLD (2026-10-30): above 200-day 5%, 5% drawdown within a month 44%, higher in a week 57%."
}What it means
Session of 2026-10-30, 4 symbols: Is the stock above its 200-day moving average: true for VTI of 4. Highest odds for “A 5% drawdown within a month”: GLD at 44%. line fired for VTI, VXUS, BND, GLD.
The same lines every month make changes easy to see; the committee discusses only what moved.
As a scheduled workflow (Mon at 07:30 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": "Monthly investment committee pack: one line per sleeve",
"symbols": "VTI VXUS BND GLD",
"days": [
1
],
"at_time": "07:30",
"model": "ora-fin-0.1.1",
"questions": {
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
},
"actions": [
{
"id": "line",
"when": "trend >= 0",
"do": "slack",
"connection": "investment-committee",
"message": "{{symbol}} ({{as_of}}): above 200-day {{trend|pct}}, 5% drawdown within a month {{drop5|pct}}, higher in a week {{up_week|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",
"instructions": "Is the stock above its 200-day moving average?"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
},
"actions": [
{
"id": "line",
"when": "trend >= 0",
"do": "slack",
"connection": "investment-committee",
"message": "{{symbol}} ({{as_of}}): above 200-day {{trend|pct}}, 5% drawdown within a month {{drop5|pct}}, higher in a week {{up_week|pct}}."
}
],
"dry_run": true
}Response JSON (VTI, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.9415,
"rule": "C > sma(C, 200)",
"basis": "comparison"
},
"drop5": {
"yes_no": 0.187
},
"up_week": {
"yes_no": 0.57
}
},
"context": {
"symbol": "VTI",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "line",
"fired": true,
"status": "dry_run",
"do": "slack",
"connection": "investment-committee",
"preview": {
"text": "VTI (2026-10-30): above 200-day 94%, 5% drawdown within a month 19%, higher in a week 57%."
}
}
]
}Fund-of-funds allocator · example 18
Momentum crash risk in the momentum sleeve
Momentum strategies suffer sharp reversals; check MTUM for extension and topping signs.
- StateMTUM
- Questions6 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"MTUM"} The server fills in the latest completed session.
Questions
ext | English → rule | Is price extended more than 2 ATR above its 20-day average? |
greatest | rule | H - greatest(O, C) > 2 * abs(C - O)Upper wick more than twice the body |
least | rule | least(O, C) - L > 2 * abs(C - O)Lower wick more than twice the body |
outside | rule | outside_bar()outside bar candle: Today's high above yesterday's and low below it. |
gap | rule | gap_up()gap up candle: Today's whole range is above yesterday's high: an unfilled gap up. |
drop5 | forecast | Will it drop at least 5% at some point in the next month? A 5% drawdown within a month |
Answers
| Question | Answer | Reading |
|---|---|---|
extIs price extended more than 2 ATR above its 20-day average compiled to C - sma(C, 20) > 2 * atr(14) | 0.0537 | false |
greatestUpper wick more than twice the body | 0.0888 | false |
leastLower wick more than twice the body | 0.14 | false |
outsideoutside bar candle: Today's high above yesterday's and low below it. | 0.054 | false |
gapgap up candle: Today's whole range is above yesterday's high: an unfilled gap up. | 0.0537 | false |
drop5A 5% drawdown within a month | 0.472 | 47% · close to even |
What it means
For MTUM on the session of 2026-10-30: Not true: Is price extended more than 2 ATR above its 20-day average; Upper wick more than twice the body; Lower wick more than twice the body; outside bar candle: Today's high above yesterday's and low below it.; gap up candle: Today's whole range is above yesterday's high: an unfilled gap up.. Forecasts: A 5% drawdown within a month 47%.
An extended momentum sleeve printing long upper wicks is the setup for a rebalance back to the band.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "MTUM"
},
"questions": {
"ext": {
"type": "yes_no",
"instructions": "Is price extended more than 2 ATR above its 20-day average?"
},
"greatest": {
"type": "yes_no",
"ask": "H - greatest(O, C) > 2 * abs(C - O)"
},
"least": {
"type": "yes_no",
"ask": "least(O, C) - L > 2 * abs(C - O)"
},
"outside": {
"type": "yes_no",
"ask": "outside_bar()"
},
"gap": {
"type": "yes_no",
"ask": "gap_up()"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
}
}Response JSON (MTUM, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"ext": {
"yes_no": 0.0537,
"rule": "C - sma(C, 20) > 2 * atr(14)",
"basis": "pattern"
},
"greatest": {
"yes_no": 0.0888,
"rule": "H - greatest(O, C) > 2 * abs(C - O)",
"basis": "rule"
},
"least": {
"yes_no": 0.14,
"rule": "least(O, C) - L > 2 * abs(C - O)",
"basis": "rule"
},
"outside": {
"yes_no": 0.054,
"rule": "outside_bar()",
"basis": "rule"
},
"gap": {
"yes_no": 0.0537,
"rule": "gap_up()",
"basis": "rule"
},
"drop5": {
"yes_no": 0.472
}
},
"context": {
"symbol": "MTUM",
"as_of": "2026-10-30"
}
}Fund-of-funds allocator · example 19
Breadth check: equal weight versus cap weight
Concentrated markets make active managers look bad; check whether equal-weight is keeping up.
- State2 symbols
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"RSP"} then SPY, one request each. The server fills in the latest completed session.
Questions
trend | English → rule | Is the stock above its 50-day moving average? |
mom | rule | roc(C, 20) > 5Up more than 5% in 20 sessions |
highbars | rule | highestbars(C, 60) <= 560-day closing high within the last 5 sessions |
mostly | rule | sum(C > C[-1], 10) >= 6Up on at least six of the last ten days |
beat_spy | forecast | Will it beat SPY over the next month? Beating SPY over a month |
Answers
| Symbol | trendrule | momrule | highbarsrule | mostlyrule | beat_spyforecast |
|---|---|---|---|---|---|
RSP | 0.7858 | 0.3398 | 0.0544 | 0.55 | 0.446 |
SPY | 0.1128 | 0.0537 | 0.1119 | 0.55 | 0.514 |
true false not known for rules; forecasts are odds. Hover a column for its question.
What it means
Session of 2026-10-30, 2 symbols: Is the stock above its 50-day moving average: true for RSP of 2. Up more than 5% in 20 sessions: true for none of 2. 60-day closing high within the last 5 sessions: true for none of 2. Up on at least six of the last ten days: true for none of 2. Highest odds for “Beating SPY over a month”: SPY at 51%.
If SPY sets highs while RSP does not, expect active managers to trail the benchmark this quarter.
Request JSON (RSP; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "RSP"
},
"questions": {
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 50-day moving average?"
},
"mom": {
"type": "yes_no",
"ask": "roc(C, 20) > 5"
},
"highbars": {
"type": "yes_no",
"ask": "highestbars(C, 60) <= 5"
},
"mostly": {
"type": "yes_no",
"ask": "sum(C > C[-1], 10) >= 6"
},
"beat_spy": {
"type": "yes_no",
"instructions": "Will it beat SPY over the next month?"
}
}
}Response JSON (RSP, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.7858,
"rule": "C > sma(C, 50)",
"basis": "comparison"
},
"mom": {
"yes_no": 0.3398,
"rule": "roc(C, 20) > 5",
"basis": "rule"
},
"highbars": {
"yes_no": 0.0544,
"rule": "highestbars(C, 60) <= 5",
"basis": "rule"
},
"mostly": {
"yes_no": 0.55,
"rule": "sum(C > C[-1], 10) >= 6",
"basis": "rule"
},
"beat_spy": {
"yes_no": 0.446
}
},
"context": {
"symbol": "RSP",
"as_of": "2026-10-30"
}
}Fund-of-funds allocator · example 20
Commodity manager benchmarks: energy, metals, agriculture
Check the benchmarks of the commodity managers for trend and stretch.
- State3 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"USO"} then COPX, DBA, one request each. The server fills in the latest completed session.
Questions
trend | English → rule | Is the stock above its 200-day moving average? |
adx | rule | adx(14) > 20ADX above 20 (trending) |
wilder | rule | C > rma(C, 30)Above the 30-day Wilder average |
rally5 | forecast | Will it rally at least 5% at some point in the next month? A 5% rally within a month |
Answers
| Symbol | trendrule | adxrule | wilderrule | rally5forecast |
|---|---|---|---|---|
USO | 0.9463 | 0.922 | 0.9447 | 0.658 |
COPX | 0.0903 | 0.7644 | 0.0799 | 0.718 |
DBA | 0.1979 | 0.8781 | 0.0697 | 0.161 |
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 USO of 3. ADX above 20 (trending): true for USO, COPX, DBA of 3. Above the 30-day Wilder average: true for USO of 3. Highest odds for “A 5% rally within a month”: COPX at 72%.
Trending benchmarks favor trend-following commodity managers; range-bound ones favor discretionary managers.
Request JSON (USO; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "USO"
},
"questions": {
"trend": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"adx": {
"type": "yes_no",
"ask": "adx(14) > 20"
},
"wilder": {
"type": "yes_no",
"ask": "C > rma(C, 30)"
},
"rally5": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
}
}Response JSON (USO, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.9463,
"rule": "C > sma(C, 200)",
"basis": "comparison"
},
"adx": {
"yes_no": 0.922,
"rule": "adx(14) > 20",
"basis": "rule"
},
"wilder": {
"yes_no": 0.9447,
"rule": "C > rma(C, 30)",
"basis": "rule"
},
"rally5": {
"yes_no": 0.658
}
},
"context": {
"symbol": "USO",
"as_of": "2026-10-30"
}
}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 Buy side: Financial advisor / RIA, Wealth manager, Family office, Hedge fund PM, Quant researcher, Portfolio manager (long-only), Risk manager, Private equity, VC / growth investor.