Use cases · Individuals
Crypto trader: 20 ways to use Ora
Trades crypto through listed vehicles: spot bitcoin and ether ETFs, miners and bitcoin-heavy treasuries. Each example is a complete, runnable request with the real answers it returned (29 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 (50)
offset 8ref 7rsi 7sma 5atr 4abs 3ema 2avg 2highest 2bblower 2atr_pct 2log 2sqrt 2std 2roc 2pays_dividend 2percentrank 2macd 1macdsignal 1max 1willr 1zscore 1days_to_earnings 1last_earnings_move 1adx 1diminus 1diplus 1hammer 1morning_star 1piercing_line 1linreg 1mean 1wma 1tr 1crossup 1macdhist 1bbmid 1bbupper 1min 1swinglow 1between 1least 1median 1cum 1rec 1rma 1dark_cloud 1days_since_split 1last_split_ratio 1shooting_star 1
Examples 11–20 of 20 · page 2 of 2
Crypto trader · example 11
Did MSTR cross back above its 20-day EMA?
A momentum entry: the close crosses up through the 20-day EMA while the MACD histogram turns higher.
- StateMSTR
- Questions4 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"MSTR"} The server fills in the latest completed session.
Questions
cross | rule | crossup(C, ema(C, 20))Close crossed above the 20-day EMA today |
hist | rule | macdhist(C) > ref(macdhist(C), -1)MACD histogram rising |
rsi50 | rule | rsi(C, 14) > 50RSI above 50 |
drop10 | forecast | Will it drop at least 10% at some point in the next month? A 10% drawdown within a month |
Answers
| Question | Answer | Reading |
|---|---|---|
crossClose crossed above the 20-day EMA today | 0.05 | false |
histMACD histogram rising | 0.138 | false |
rsi50RSI above 50 | 0.1221 | false |
drop10A 10% drawdown within a month | 0.777 | 78% · likely |
Actions
Rules on the answers decide what to send.
cross >= 0.6 and hist >= 0.6→Webhookmy-omsWhat it means
For MSTR on the session of 2026-10-30: Not true: Close crossed above the 20-day EMA today; MACD histogram rising; RSI above 50. Forecasts: A 10% drawdown within a month 78%. No action fired: every rule was false.
The order webhook fires only when the cross and the histogram agree on the same day; a cross alone is often noise.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "MSTR"
},
"questions": {
"cross": {
"type": "yes_no",
"ask": "crossup(C, ema(C, 20))"
},
"hist": {
"type": "yes_no",
"ask": "macdhist(C) > ref(macdhist(C), -1)"
},
"rsi50": {
"type": "yes_no",
"ask": "rsi(C, 14) > 50"
},
"drop10": {
"type": "yes_no",
"instructions": "Will it drop at least 10% at some point in the next month?"
}
},
"actions": [
{
"id": "entry",
"when": "cross >= 0.6 and hist >= 0.6",
"do": "webhook",
"connection": "my-oms",
"body": {
"symbol": "{{symbol}}",
"side": "buy",
"signal": "ema20_reclaim",
"p_cross": "{{cross}}",
"p_hist": "{{hist}}",
"p_drop10": "{{drop10}}",
"as_of": "{{as_of}}"
}
}
],
"dry_run": true
}Response JSON (MSTR, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"cross": {
"yes_no": 0.05,
"rule": "crossup(C, ema(C, 20))",
"basis": "rule"
},
"hist": {
"yes_no": 0.138,
"rule": "macdhist(C) > ref(macdhist(C), -1)",
"basis": "rule"
},
"rsi50": {
"yes_no": 0.1221,
"rule": "rsi(C, 14) > 50",
"basis": "rule"
},
"drop10": {
"yes_no": 0.777
}
},
"context": {
"symbol": "MSTR",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "entry",
"fired": false,
"status": "skipped"
}
]
}Crypto trader · example 12
Ether vs bitcoin ETFs: which is stronger this month?
ETHA and IBIT with identical questions: momentum, trend and the odds of beating SPY. Rotate toward the stronger one.
- State2 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"ETHA"} then IBIT, one request each. The server fills in the latest completed session.
Questions
roc | rule | roc(C, 20) > 5Up more than 5% in 20 sessions |
three_month | rule | C > C[-63]Higher than three months ago |
rsi50 | rule | rsi(C, 14) > 50RSI above 50 |
beat_spy | forecast | Will it beat SPY over the next month? Beating SPY over a month |
Answers
| Symbol | rocrule | three_monthrule | rsi50rule | beat_spyforecast |
|---|---|---|---|---|
ETHA | 0.0996 | 0.8278 | 0.1212 | 0.509 |
IBIT | 0.0982 | 0.8566 | 0.111 | 0.516 |
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: Up more than 5% in 20 sessions: true for none of 2. Higher than three months ago: true for ETHA, IBIT of 2. RSI above 50: true for none of 2. Highest odds for “Beating SPY over a month”: IBIT at 52%.
Side-by-side answers make the rotation question concrete: the fund with more momentum rules true and better odds against SPY leads.
Request JSON (ETHA; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "ETHA"
},
"questions": {
"roc": {
"type": "yes_no",
"ask": "roc(C, 20) > 5"
},
"three_month": {
"type": "yes_no",
"ask": "C > C[-63]"
},
"rsi50": {
"type": "yes_no",
"ask": "rsi(C, 14) > 50"
},
"beat_spy": {
"type": "yes_no",
"instructions": "Will it beat SPY over the next month?"
}
}
}Response JSON (ETHA, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"roc": {
"yes_no": 0.0996,
"rule": "roc(C, 20) > 5",
"basis": "rule"
},
"three_month": {
"yes_no": 0.8278,
"rule": "C > C[-63]",
"basis": "rule"
},
"rsi50": {
"yes_no": 0.1212,
"rule": "rsi(C, 14) > 50",
"basis": "rule"
},
"beat_spy": {
"yes_no": 0.509
}
},
"context": {
"symbol": "ETHA",
"as_of": "2026-10-30"
}
}Crypto trader · example 13
RIOT gapped up: did it hold or fade?
Miners gap on bitcoin's overnight moves. Check whether today's gap held, faded or filled.
- StateRIOT
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"RIOT"} The server fills in the latest completed session.
Questions
gap1 | rule | O > C[-1] * 1.01Opened more than 1% above yesterday's close |
faded | rule | O > C[-1] and C < C[-1]Gapped up but closed under yesterday's close |
filled | English → rule | Did today's gap up fill? |
close_top | rule | (C - L) / (H - L) > 0.75Closed in the top quarter of the day's range |
gap_tomorrow | forecast | Will it gap up tomorrow? A gap up tomorrow |
Answers
| Question | Answer | Reading |
|---|---|---|
gap1Opened more than 1% above yesterday's close | 0.1048 | false |
fadedGapped up but closed under yesterday's close | 0.1237 | false |
filledDid today's gap up fill compiled to (O > C[-1] * 1) and (L <= C[-1]) | 0.1237 | false |
close_topClosed in the top quarter of the day's range | 0.6069 | true |
gap_tomorrowA gap up tomorrow | 0.416 | 42% · close to even |
What it means
For RIOT on the session of 2026-10-30: True now: Closed in the top quarter of the day's range. Not true: Opened more than 1% above yesterday's close; Gapped up but closed under yesterday's close; Did today's gap up fill. Forecasts: A gap up tomorrow 42%.
A gap that closes in the top quarter of the range held; a fade or a fill says sellers met the overnight move.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "RIOT"
},
"questions": {
"gap1": {
"type": "yes_no",
"ask": "O > C[-1] * 1.01"
},
"faded": {
"type": "yes_no",
"ask": "O > C[-1] and C < C[-1]"
},
"filled": {
"type": "yes_no",
"instructions": "Did today's gap up fill?"
},
"close_top": {
"type": "yes_no",
"ask": "(C - L) / (H - L) > 0.75"
},
"gap_tomorrow": {
"type": "yes_no",
"instructions": "Will it gap up tomorrow?"
}
}
}Response JSON (RIOT, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"gap1": {
"yes_no": 0.1048,
"rule": "O > C[-1] * 1.01",
"basis": "rule"
},
"faded": {
"yes_no": 0.1237,
"rule": "O > C[-1] and C < C[-1]",
"basis": "rule"
},
"filled": {
"yes_no": 0.1237,
"rule": "(O > C[-1] * 1) and (L <= C[-1])",
"basis": "pattern"
},
"close_top": {
"yes_no": 0.6069,
"rule": "(C - L) / (H - L) > 0.75",
"basis": "rule"
},
"gap_tomorrow": {
"yes_no": 0.416
}
},
"context": {
"symbol": "RIOT",
"as_of": "2026-10-30"
}
}Crypto trader · example 14
Is bitcoin volatility compressing before a move?
Bollinger width, ATR versus its past and NR7 in IBIT: a quiet coil often comes before a large move in crypto.
- StateIBIT
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"IBIT"} The server fills in the latest completed session.
Questions
squeeze | rule | (bbupper(C, 20, 2) - bblower(C, 20, 2)) / bbmid(C, 20) < 0.06Bollinger bands narrower than 6% of price |
bbw_low | English → rule | Is Bollinger Band width at its lowest in 120 sessions? |
nr7 | English → rule | Is today an NR7 day, the narrowest range of the last 7 sessions? |
pr_atr | rule | percentrank(atr(14), 100) < 20ATR in the bottom fifth of the last 100 sessions |
big_move | forecast | Will there be a big move in either direction in the next 5 days? A big move either way in 5 days |
Answers
| Question | Answer | Reading |
|---|---|---|
squeezeBollinger bands narrower than 6% of price | 0.3238 | false |
bbw_lowIs Bollinger Band width at its lowest in 120 sessions compiled to ((bbupper(C, 20) - bblower(C, 20)) / bbmid(C, 20)) <= ref(min(((bbupper(C, 20) - bblower(C, 20)) / bbmid(C, 20)), 119), -1) | 0.2793 | false |
nr7Is today an NR7 day, the narrowest range of the last 7 sessions compiled to (H > L) and ((H - L) <= ref(min(H - L, 6), -1)) | 0.1347 | false |
pr_atrATR in the bottom fifth of the last 100 sessions | 0.1407 | false |
big_moveA big move either way in 5 days | 0.363 | 36% · unlikely |
What it means
For IBIT on the session of 2026-10-30: Not true: Bollinger bands narrower than 6% of price; Is Bollinger Band width at its lowest in 120 sessions; Is today an NR7 day, the narrowest range of the last 7 sessions; ATR in the bottom fifth of the last 100 sessions. Forecasts: A big move either way in 5 days 36%.
Compression rules say the market is quiet now; the big-move forecast says whether that is likely to change soon, not in which direction.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "IBIT"
},
"questions": {
"squeeze": {
"type": "yes_no",
"ask": "(bbupper(C, 20, 2) - bblower(C, 20, 2)) / bbmid(C, 20) < 0.06"
},
"bbw_low": {
"type": "yes_no",
"instructions": "Is Bollinger Band width at its lowest in 120 sessions?"
},
"nr7": {
"type": "yes_no",
"instructions": "Is today an NR7 day, the narrowest range of the last 7 sessions?"
},
"pr_atr": {
"type": "yes_no",
"ask": "percentrank(atr(14), 100) < 20"
},
"big_move": {
"type": "yes_no",
"instructions": "Will there be a big move in either direction in the next 5 days?"
}
}
}Response JSON (IBIT, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"squeeze": {
"yes_no": 0.3238,
"rule": "(bbupper(C, 20, 2) - bblower(C, 20, 2)) / bbmid(C, 20) < 0.06",
"basis": "rule"
},
"bbw_low": {
"yes_no": 0.2793,
"rule": "((bbupper(C, 20) - bblower(C, 20)) / bbmid(C, 20)) <= ref(min(((bbupper(C, 20) - bblower(C, 20)) / bbmid(C, 20)), 119), -1)",
"basis": "pattern"
},
"nr7": {
"yes_no": 0.1347,
"rule": "(H > L) and ((H - L) <= ref(min(H - L, 6), -1))",
"basis": "pattern"
},
"pr_atr": {
"yes_no": 0.1407,
"rule": "percentrank(atr(14), 100) < 20",
"basis": "rule"
},
"big_move": {
"yes_no": 0.363
}
},
"context": {
"symbol": "IBIT",
"as_of": "2026-10-30"
}
}Crypto trader · example 15
Is the stop hit on my MSTR position?
A chandelier stop and a swing-low break as exact rules, with the drawdown odds. Exit on the stop, warn on the forecast.
- StateMSTR
- Questions4 asked
- Answersreal, captured
- Actions2 rules · dry run
State
{"symbol":"MSTR"} The server fills in the latest completed session.
Questions
chandelier | rule | C < highest(H, 22) - 3 * atr(22)Chandelier exit: 3 ATR under the 22-day high |
swing_break | rule | C < swinglow(5, 1)Close under the last swing low |
lower_lows | rule | swinglow(5, 1) < swinglow(5, 2)Latest swing low below the one before |
drop10 | forecast | Will it drop at least 10% at some point in the next month? A 10% drawdown within a month |
Answers
| Question | Answer | Reading |
|---|---|---|
chandelierChandelier exit: 3 ATR under the 22-day high | 0.8807 | true |
swing_breakClose under the last swing low | 0.5889 | on the line (true) |
lower_lowsLatest swing low below the one before | 0.8788 | true |
drop10A 10% drawdown within a month | 0.777 | 78% · likely |
Actions
Rules on the answers decide what to send.
chandelier >= 0.6 or swing_break >= 0.6→Webhookmy-omsdrop10 >= 0.4→Slackcrypto-desk{
"symbol": "MSTR",
"decision": "exit_long",
"p_chandelier": 0.8807,
"p_swing_break": 0.5889,
"as_of": "2026-10-30"
}{
"text": "MSTR (2026-10-30): stop not hit, but 10% drawdown odds are 78%. Lower swing lows: 88%."
}What it means
For MSTR on the session of 2026-10-30: True now: Chandelier exit: 3 ATR under the 22-day high; Latest swing low below the one before. On the line: Close under the last swing low. Forecasts: A 10% drawdown within a month 78%. Fired: exit (Webhook → my-oms), warn (Slack → crypto-desk).
Exits come from the exact stop rules; the forecast only produces a warning, so a probability never closes a position by itself.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "MSTR"
},
"questions": {
"chandelier": {
"type": "yes_no",
"ask": "C < highest(H, 22) - 3 * atr(22)"
},
"swing_break": {
"type": "yes_no",
"ask": "C < swinglow(5, 1)"
},
"lower_lows": {
"type": "yes_no",
"ask": "swinglow(5, 1) < swinglow(5, 2)"
},
"drop10": {
"type": "yes_no",
"instructions": "Will it drop at least 10% at some point in the next month?"
}
},
"actions": [
{
"id": "exit",
"when": "chandelier >= 0.6 or swing_break >= 0.6",
"do": "webhook",
"connection": "my-oms",
"body": {
"symbol": "{{symbol}}",
"decision": "exit_long",
"p_chandelier": "{{chandelier}}",
"p_swing_break": "{{swing_break}}",
"as_of": "{{as_of}}"
}
},
{
"id": "warn",
"when": "drop10 >= 0.4",
"do": "slack",
"connection": "crypto-desk",
"message": "{{symbol}} ({{as_of}}): stop not hit, but 10% drawdown odds are {{drop10|pct}}. Lower swing lows: {{lower_lows|pct}}."
}
],
"dry_run": true
}Response JSON (MSTR, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"chandelier": {
"yes_no": 0.8807,
"rule": "C < highest(H, 22) - 3 * atr(22)",
"basis": "rule"
},
"swing_break": {
"yes_no": 0.5889,
"rule": "C < swinglow(5, 1)",
"basis": "rule"
},
"lower_lows": {
"yes_no": 0.8788,
"rule": "swinglow(5, 1) < swinglow(5, 2)",
"basis": "rule"
},
"drop10": {
"yes_no": 0.777
}
},
"context": {
"symbol": "MSTR",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "exit",
"fired": true,
"status": "dry_run",
"do": "webhook",
"connection": "my-oms",
"preview": {
"body": {
"symbol": "MSTR",
"decision": "exit_long",
"p_chandelier": 0.8807,
"p_swing_break": 0.5889,
"as_of": "2026-10-30"
}
}
},
{
"id": "warn",
"fired": true,
"status": "dry_run",
"do": "slack",
"connection": "crypto-desk",
"preview": {
"text": "MSTR (2026-10-30): stop not hit, but 10% drawdown odds are 78%. Lower swing lows: 88%."
}
}
]
}Crypto trader · example 16
Pre-open crypto digest: IBIT, ETHA, MSTR, MARA
Every weekday before the open, the same checks for four crypto vehicles, with a Slack line for each one above its 50-day.
- ScheduleMon–Fri at 09:00 ET
- State4 symbols
- Questions4 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"IBIT"} then ETHA, MSTR, MARA, one request each. The server fills in the latest completed session.
Questions
above_50d | rule | C > sma(C, 50)Above the 50-day average |
rsi_hot | rule | rsi(C, 14) > 70RSI above 70 |
vol_rise | forecast | Will volatility rise over the next 5 days? Volatility rising over 5 days |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Symbol | above_50drule | rsi_hotrule | vol_riseforecast | up_weekforecast | Fired |
|---|---|---|---|---|---|
IBIT | 0.1649 | 0.0537 | 0.46 | 0.528 | none |
ETHA | 0.1263 | 0.0569 | 0.486 | 0.537 | none |
MSTR | 0.1883 | 0.0537 | 0.357 | 0.547 | none |
MARA | 0.0674 | 0.0537 | 0.559 | 0.621 | 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.
above_50d >= 0.6→Slackcrypto-deskWhat it means
Session of 2026-10-30, 4 symbols: Above the 50-day average: true for none of 4. RSI above 70: true for none of 4. Highest odds for “Volatility rising over 5 days”: MARA at 56%. trend_line fired for none.
A workflow repeats the request for each symbol; only the names in an uptrend produce a Slack line.
As a scheduled workflow (Mon–Fri at 09: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": "Pre-open crypto digest: IBIT, ETHA, MSTR, MARA",
"symbols": "IBIT ETHA MSTR MARA",
"days": [
1,
2,
3,
4,
5
],
"at_time": "09:00",
"model": "ora-fin-0.1.1",
"questions": {
"above_50d": {
"type": "yes_no",
"ask": "C > sma(C, 50)"
},
"rsi_hot": {
"type": "yes_no",
"ask": "rsi(C, 14) > 70"
},
"vol_rise": {
"type": "yes_no",
"instructions": "Will volatility rise over the next 5 days?"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
},
"actions": [
{
"id": "trend_line",
"when": "above_50d >= 0.6",
"do": "slack",
"connection": "crypto-desk",
"message": "{{symbol}} ({{as_of}}): above the 50-day. RSI over 70 {{rsi_hot|pct}}, higher in a week {{up_week|pct}}, volatility rising {{vol_rise|pct}}."
}
]
}Request JSON (IBIT; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "IBIT"
},
"questions": {
"above_50d": {
"type": "yes_no",
"ask": "C > sma(C, 50)"
},
"rsi_hot": {
"type": "yes_no",
"ask": "rsi(C, 14) > 70"
},
"vol_rise": {
"type": "yes_no",
"instructions": "Will volatility rise over the next 5 days?"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
},
"actions": [
{
"id": "trend_line",
"when": "above_50d >= 0.6",
"do": "slack",
"connection": "crypto-desk",
"message": "{{symbol}} ({{as_of}}): above the 50-day. RSI over 70 {{rsi_hot|pct}}, higher in a week {{up_week|pct}}, volatility rising {{vol_rise|pct}}."
}
],
"dry_run": true
}Response JSON (IBIT, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"above_50d": {
"yes_no": 0.1649,
"rule": "C > sma(C, 50)",
"basis": "rule"
},
"rsi_hot": {
"yes_no": 0.0537,
"rule": "rsi(C, 14) > 70",
"basis": "rule"
},
"vol_rise": {
"yes_no": 0.46
},
"up_week": {
"yes_no": 0.528
}
},
"context": {
"symbol": "IBIT",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "trend_line",
"fired": false,
"status": "skipped"
}
]
}Crypto trader · example 17
Is IBIT pulling back into a buy zone?
In an uptrend, wait for a pullback between the 20-day and the 50-day, with RSI back between 40 and 60.
- StateIBIT
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"IBIT"} The server fills in the latest completed session.
Questions
zone | rule | C < sma(C, 20) and C > sma(C, 50)Between the 20-day and the 50-day average |
rsi_mid | rule | between(rsi(C, 14), 40, 60)RSI between 40 and 60 |
trend | rule | sma(C, 50) > sma(C, 200)50-day above the 200-day |
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 |
|---|---|---|
zoneBetween the 20-day and the 50-day average | 0.1649 | false |
rsi_midRSI between 40 and 60 | 0.05 | false |
trend50-day above the 200-day | 0.8747 | true |
drop5A 5% drawdown within a month | 0.566 | 57% · close to even |
What it means
For IBIT on the session of 2026-10-30: True now: 50-day above the 200-day. Not true: Between the 20-day and the 50-day average; RSI between 40 and 60. Forecasts: A 5% drawdown within a month 57%.
The zone and the mid-range RSI together describe a calm pullback inside a trend; the drawdown odds say how deep it could still go.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "IBIT"
},
"questions": {
"zone": {
"type": "yes_no",
"ask": "C < sma(C, 20) and C > sma(C, 50)"
},
"rsi_mid": {
"type": "yes_no",
"ask": "between(rsi(C, 14), 40, 60)"
},
"trend": {
"type": "yes_no",
"ask": "sma(C, 50) > sma(C, 200)"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
}
}Response JSON (IBIT, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"zone": {
"yes_no": 0.1649,
"rule": "C < sma(C, 20) and C > sma(C, 50)",
"basis": "rule"
},
"rsi_mid": {
"yes_no": 0.05,
"rule": "between(rsi(C, 14), 40, 60)",
"basis": "rule"
},
"trend": {
"yes_no": 0.8747,
"rule": "sma(C, 50) > sma(C, 200)",
"basis": "rule"
},
"drop5": {
"yes_no": 0.566
}
},
"context": {
"symbol": "IBIT",
"as_of": "2026-10-30"
}
}Crypto trader · example 18
Was today a volume climax in MARA?
A huge-volume down day can mark capitulation. Compare volume with its median and rank, and check where the close sits in the range.
- StateMARA
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"MARA"} The server fills in the latest completed session.
Questions
vol_med | rule | V > 2 * median(V, 20)Volume over twice its 20-day median |
vol_rank | rule | percentrank(V, 50) > 90Volume in the top tenth of 50 sessions |
down_vol | English → rule | Did the stock fall on above-average volume? |
lower_wick | rule | least(O, C) - L > 2 * abs(C - O)Lower wick more than twice the body |
vol_spike | forecast | Will volume spike tomorrow? A volume spike tomorrow |
Answers
| Question | Answer | Reading |
|---|---|---|
vol_medVolume over twice its 20-day median | 0.0668 | false |
vol_rankVolume in the top tenth of 50 sessions | 0.1888 | false |
down_volDid the stock fall on above-average volume compiled to (C < C[-1]) and (V > ref(avg(V, 20), -1)) | 0.7475 | true |
lower_wickLower wick more than twice the body | 0.7144 | true |
vol_spikeA volume spike tomorrow | 0.059 | 6% · unlikely |
What it means
For MARA on the session of 2026-10-30: True now: Did the stock fall on above-average volume; Lower wick more than twice the body. Not true: Volume over twice its 20-day median; Volume in the top tenth of 50 sessions. Forecasts: A volume spike tomorrow 6%.
Heavy volume with a long lower wick is the capitulation picture; heavy volume closing on the low is just selling.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "MARA"
},
"questions": {
"vol_med": {
"type": "yes_no",
"ask": "V > 2 * median(V, 20)"
},
"vol_rank": {
"type": "yes_no",
"ask": "percentrank(V, 50) > 90"
},
"down_vol": {
"type": "yes_no",
"instructions": "Did the stock fall on above-average volume?"
},
"lower_wick": {
"type": "yes_no",
"ask": "least(O, C) - L > 2 * abs(C - O)"
},
"vol_spike": {
"type": "yes_no",
"instructions": "Will volume spike tomorrow?"
}
}
}Response JSON (MARA, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"vol_med": {
"yes_no": 0.0668,
"rule": "V > 2 * median(V, 20)",
"basis": "rule"
},
"vol_rank": {
"yes_no": 0.1888,
"rule": "percentrank(V, 50) > 90",
"basis": "rule"
},
"down_vol": {
"yes_no": 0.7475,
"rule": "(C < C[-1]) and (V > ref(avg(V, 20), -1))",
"basis": "pattern"
},
"lower_wick": {
"yes_no": 0.7144,
"rule": "least(O, C) - L > 2 * abs(C - O)",
"basis": "rule"
},
"vol_spike": {
"yes_no": 0.059
}
},
"context": {
"symbol": "MARA",
"as_of": "2026-10-30"
}
}Crypto trader · example 19
Has IBIT had more up days than down days since listing?
A long-view question: count up closes against down closes over the fund's history, and check its smoothed trend.
- StateIBIT
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"IBIT"} The server fills in the latest completed session.
Questions
more_up | rule | cum(C > C[-1]) > cum(C < C[-1])More up closes than down closes since the first bar |
smooth | rule | C > rec(C, self + 0.1 * (C - self))Close above its own exponential smoothing (alpha 0.1) |
rma | rule | C > rma(C, 50)Close above the 50-day Wilder average |
up_month | English → rule | Is the stock up over the last month? |
rally10 | forecast | Will it rally at least 10% at some point in the next month? A 10% rally within a month |
Answers
| Question | Answer | Reading |
|---|---|---|
more_upMore up closes than down closes since the first bar | 0.0537 | false |
smoothClose above its own exponential smoothing (alpha 0.1) | 0.1066 | false |
rmaClose above the 50-day Wilder average | 0.475 | on the line (false) |
up_monthIs the stock up over the last month compiled to C > C[-21] | 0.1145 | false |
rally10A 10% rally within a month | 0.64 | 64% · likely |
What it means
For IBIT on the session of 2026-10-30: Not true: More up closes than down closes since the first bar; Close above its own exponential smoothing (alpha 0.1); Is the stock up over the last month. On the line: Close above the 50-day Wilder average. Forecasts: A 10% rally within a month 64%.
cum() counts over the whole history and rec() builds a custom smoothing step by step; both show the language goes beyond fixed indicators.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "IBIT"
},
"questions": {
"more_up": {
"type": "yes_no",
"ask": "cum(C > C[-1]) > cum(C < C[-1])"
},
"smooth": {
"type": "yes_no",
"ask": "C > rec(C, self + 0.1 * (C - self))"
},
"rma": {
"type": "yes_no",
"ask": "C > rma(C, 50)"
},
"up_month": {
"type": "yes_no",
"instructions": "Is the stock up over the last month?"
},
"rally10": {
"type": "yes_no",
"instructions": "Will it rally at least 10% at some point in the next month?"
}
}
}Response JSON (IBIT, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"more_up": {
"yes_no": 0.0537,
"rule": "cum(C > C[-1]) > cum(C < C[-1])",
"basis": "rule"
},
"smooth": {
"yes_no": 0.1066,
"rule": "C > rec(C, self + 0.1 * (C - self))",
"basis": "rule"
},
"rma": {
"yes_no": 0.475,
"rule": "C > rma(C, 50)",
"basis": "rule"
},
"up_month": {
"yes_no": 0.1145,
"rule": "C > C[-21]",
"basis": "pattern"
},
"rally10": {
"yes_no": 0.64
}
},
"context": {
"symbol": "IBIT",
"as_of": "2026-10-30"
}
}Crypto trader · example 20
MSTR and the bitcoin ETFs: splits, dividends and events
Before using MSTR as a bitcoin proxy, check its corporate-action record (splits, dividends) next to the ETF it is compared with.
- State2 symbols
- Questions6 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"MSTR"} then IBIT, one request each. The server fills in the latest completed session.
Questions
split_3y | rule | days_since_split <= 1095Split in the last three years |
ratio | English → rule | Was the last split at least 2-for-1? |
pays | rule | pays_dividend > 0.5Pays a dividend |
shooting | rule | shooting_star()shooting star candle: Upper wick at least twice the body, lower wick at most 10% of the range, after a five-bar rise. |
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). |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Symbol | split_3yrule | ratiorule | paysrule | shootingrule | darkrule | up_weekforecast |
|---|---|---|---|---|---|---|
MSTR | 0.9463 | 0.9463 | 0.1409 | 0.0537 | 0.0606 | 0.547 |
IBIT | 0.0537 | 0.50 | 0.1409 | 0.1066 | 0.058 | 0.528 |
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: Split in the last three years: true for MSTR of 2. Was the last split at least 2-for-1: true for MSTR of 2. Pays a dividend: true for none of 2. shooting star candle: Upper wick at least twice the body, lower wick at most 10% of the range, after a five-bar rise.: true for none of 2. Highest odds for “Higher in a week”: MSTR at 55%.
Corporate-action facts explain jumps in old price history and whether a proxy pays anything; the top-reversal candles are a short-term warning only.
Request JSON (MSTR; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "MSTR"
},
"questions": {
"split_3y": {
"type": "yes_no",
"ask": "days_since_split <= 1095"
},
"ratio": {
"type": "yes_no",
"instructions": "Was the last split at least 2-for-1?"
},
"pays": {
"type": "yes_no",
"ask": "pays_dividend > 0.5"
},
"shooting": {
"type": "yes_no",
"ask": "shooting_star()"
},
"dark": {
"type": "yes_no",
"ask": "dark_cloud()"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Response JSON (MSTR, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"split_3y": {
"yes_no": 0.9463,
"rule": "days_since_split <= 1095",
"basis": "rule"
},
"ratio": {
"yes_no": 0.9463,
"rule": "last_split_ratio >= 2",
"basis": "pattern"
},
"pays": {
"yes_no": 0.1409,
"rule": "pays_dividend > 0.5",
"basis": "rule"
},
"shooting": {
"yes_no": 0.0537,
"rule": "shooting_star()",
"basis": "rule"
},
"dark": {
"yes_no": 0.0606,
"rule": "dark_cloud()",
"basis": "rule"
},
"up_week": {
"yes_no": 0.547
}
},
"context": {
"symbol": "MSTR",
"as_of": "2026-10-30"
}
}dark_cloud days_since_split last_split_ratio pays_dividend shooting_star
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 Individuals: Retail investor, Active day trader, Swing trader, Options trader, Dividend investor, Long-term passive investor, FX trader, Commodities trader, Social trading community, Students and universities.