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 · 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.

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)

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

Crypto trader · example 1

Is the spot bitcoin ETF (IBIT) in an uptrend?

Read bitcoin's trend through IBIT, the listed spot ETF: averages, momentum and the odds for the coming week.

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

State

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

Questions

above_50dEnglish → ruleIs the stock above its 50-day moving average?
goldenrulesma(C, 50) > sma(C, 200)
50-day above the 200-day
ema21ruleC > ema(C, 21)
Close above the 21-day EMA
macdrulemacd(C) > macdsignal(C)
MACD above its signal line
up_weekforecastWill the stock be higher in a week?
Higher in a week

Answers

QuestionAnswerReading
above_50d
Is the stock above its 50-day moving average
compiled to C > sma(C, 50)
0.1649false
golden
50-day above the 200-day
0.8747true
ema21
Close above the 21-day EMA
0.1098false
macd
MACD above its signal line
0.1377false
up_week
Higher in a week
0.52853% · 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: Is the stock above its 50-day moving average; Close above the 21-day EMA; MACD above its signal line. Forecasts: Higher in a week 53%.

Trend rules true together describe an uptrend in the listed vehicle; the forecast is the odds for the week, and bitcoin can move on weekends while the ETF is closed.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "IBIT"
  },
  "questions": {
    "above_50d": {
      "type": "yes_no",
      "instructions": "Is the stock above its 50-day moving average?"
    },
    "golden": {
      "type": "yes_no",
      "ask": "sma(C, 50) > sma(C, 200)"
    },
    "ema21": {
      "type": "yes_no",
      "ask": "C > ema(C, 21)"
    },
    "macd": {
      "type": "yes_no",
      "ask": "macd(C) > macdsignal(C)"
    },
    "up_week": {
      "type": "yes_no",
      "instructions": "Will the stock be higher in a week?"
    }
  }
}
Response JSON (IBIT, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "above_50d": {
      "yes_no": 0.1649,
      "rule": "C > sma(C, 50)",
      "basis": "comparison"
    },
    "golden": {
      "yes_no": 0.8747,
      "rule": "sma(C, 50) > sma(C, 200)",
      "basis": "rule"
    },
    "ema21": {
      "yes_no": 0.1098,
      "rule": "C > ema(C, 21)",
      "basis": "rule"
    },
    "macd": {
      "yes_no": 0.1377,
      "rule": "macd(C) > macdsignal(C)",
      "basis": "rule"
    },
    "up_week": {
      "yes_no": 0.528
    }
  },
  "context": {
    "symbol": "IBIT",
    "as_of": "2026-10-30"
  }
}

ema macd macdsignal sma

Crypto trader · example 2

Post IBIT breakouts to a crypto Discord

When IBIT closes at a 20-day high on heavy volume, post it to the group's Discord through a webhook; otherwise stay quiet.

ora-fin-0.1.1IBIT4 questions1 action
  1. StateIBIT
  2. Questions4 asked
  3. Answersreal, captured
  4. Actions1 rule · dry run

State

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

Questions

breakoutruleC > highest(C, 20) and V > 1.5 * ref(avg(V, 20), -1)
20-day breakout on 1.5× volume
donchianruleC > highest(C, 55)
55-day closing breakout
rsi_hotrulersi(C, 14) > 70
RSI above 70
new_highforecastWill it make a new 20-day high in the next week?
A new 20-day high next week

Answers

QuestionAnswerReading
breakout
20-day breakout on 1.5× volume
0.0537false
donchian
55-day closing breakout
0.0599false
rsi_hot
RSI above 70
0.0537false
new_high
A new 20-day high next week
0.0343% · unlikely

Actions

Rules on the answers decide what to send.

breakout >= 0.6→Webhookcrypto-discord
What each action would send 0 of 1 fired · dry run, nothing sent
discord_postrule false: skipped

What it means

For IBIT on the session of 2026-10-30: Not true: 20-day breakout on 1.5× volume; 55-day closing breakout; RSI above 70. Forecasts: A new 20-day high next week 3%. No action fired: every rule was false.

The Discord post only goes out when the volume-confirmed breakout rule is true; the overbought check tells members whether the move is already stretched.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "IBIT"
  },
  "questions": {
    "breakout": {
      "type": "yes_no",
      "ask": "C > highest(C, 20) and V > 1.5 * ref(avg(V, 20), -1)"
    },
    "donchian": {
      "type": "yes_no",
      "ask": "C > highest(C, 55)"
    },
    "rsi_hot": {
      "type": "yes_no",
      "ask": "rsi(C, 14) > 70"
    },
    "new_high": {
      "type": "yes_no",
      "instructions": "Will it make a new 20-day high in the next week?"
    }
  },
  "actions": [
    {
      "id": "discord_post",
      "when": "breakout >= 0.6",
      "do": "webhook",
      "connection": "crypto-discord",
      "body": {
        "content": "{{symbol}} ({{as_of}}): 20-day closing high on 1.5x volume ({{breakout|pct}}). 55-day breakout {{donchian|pct}}, RSI over 70 {{rsi_hot|pct}}, new 20-day high next week {{new_high|pct}}."
      }
    }
  ],
  "dry_run": true
}
Response JSON (IBIT, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "breakout": {
      "yes_no": 0.0537,
      "rule": "C > highest(C, 20) and V > 1.5 * ref(avg(V, 20), -1)",
      "basis": "rule"
    },
    "donchian": {
      "yes_no": 0.0599,
      "rule": "C > highest(C, 55)",
      "basis": "rule"
    },
    "rsi_hot": {
      "yes_no": 0.0537,
      "rule": "rsi(C, 14) > 70",
      "basis": "rule"
    },
    "new_high": {
      "yes_no": 0.034
    }
  },
  "context": {
    "symbol": "IBIT",
    "as_of": "2026-10-30"
  },
  "actions": [
    {
      "id": "discord_post",
      "fired": false,
      "status": "skipped"
    }
  ]
}

avg highest ref rsi

Crypto trader · example 3

IBIT, FBTC, BITB and GBTC: do the bitcoin ETFs agree?

The same questions for four spot bitcoin ETFs, one request each. They hold the same asset, so their answers should line up; a gap points at fees or flows.

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

State

{"symbol":"IBIT"} then FBTC, BITB, GBTC, one request each. The server fills in the latest completed session.

Questions

above_200dEnglish → ruleIs the stock above its 200-day moving average?
rsi50rulersi(C, 14) > 50
RSI above 50
drawdownruleC < 0.8 * max(H, 252)
More than 20% off the 52-week high
drop10forecastWill it drop at least 10% at some point in the next month?
A 10% drawdown within a month

Answers

Symbolabove_200drulersi50ruledrawdownruledrop10forecast
IBIT0.72340.1110.90820.566
FBTC0.72890.11250.90740.573
BITB0.72560.11280.90780.582
GBTC0.70660.11120.91630.573

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 IBIT, FBTC, BITB, GBTC of 4. RSI above 50: true for none of 4. More than 20% off the 52-week high: true for IBIT, FBTC, BITB, GBTC of 4. Highest odds for “A 10% drawdown within a month”: BITB at 58%.

Four funds on one asset are a consistency check: if one disagrees with the rest, look at that fund rather than at bitcoin.

Request JSON (IBIT; the others differ only in the symbol)
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "IBIT"
  },
  "questions": {
    "above_200d": {
      "type": "yes_no",
      "instructions": "Is the stock above its 200-day moving average?"
    },
    "rsi50": {
      "type": "yes_no",
      "ask": "rsi(C, 14) > 50"
    },
    "drawdown": {
      "type": "yes_no",
      "ask": "C < 0.8 * max(H, 252)"
    },
    "drop10": {
      "type": "yes_no",
      "instructions": "Will it drop at least 10% at some point in the next month?"
    }
  }
}
Response JSON (IBIT, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "above_200d": {
      "yes_no": 0.7234,
      "rule": "C > sma(C, 200)",
      "basis": "comparison"
    },
    "rsi50": {
      "yes_no": 0.111,
      "rule": "rsi(C, 14) > 50",
      "basis": "rule"
    },
    "drawdown": {
      "yes_no": 0.9082,
      "rule": "C < 0.8 * max(H, 252)",
      "basis": "rule"
    },
    "drop10": {
      "yes_no": 0.566
    }
  },
  "context": {
    "symbol": "IBIT",
    "as_of": "2026-10-30"
  }
}

max rsi sma

Crypto trader · example 4

Is ether (ETHA) oversold enough to start a position?

Look for an oversold read in the spot ether ETF: short-term RSI, a stretch below the band and a z-score low.

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

State

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

Questions

rsi2rulersi(C, 2) < 10
Two-day RSI under 10
below_bandruleC < bblower(C, 20, 2)
Closed under the lower Bollinger band
zlowrulezscore(C, 20) < -2
Two deviations under the 20-day mean
willr_lowrulewillr(14) < -80
Williams %R under -80 (oversold)
bounceforecastWill it rally at least 5% at some point in the next month?
A 5% rally within a month

Answers

QuestionAnswerReading
rsi2
Two-day RSI under 10
0.5481on the line (true)
below_band
Closed under the lower Bollinger band
0.47on the line (false)
zlow
Two deviations under the 20-day mean
0.4485on the line (false)
willr_low
Williams %R under -80 (oversold)
0.7011true
bounce
A 5% rally within a month
0.71672% · likely

What it means

For ETHA on the session of 2026-10-30: True now: Williams %R under -80 (oversold). On the line: Two-day RSI under 10; Closed under the lower Bollinger band; Two deviations under the 20-day mean. Forecasts: A 5% rally within a month 72%.

Several oversold rules at once describe a washed-out market; the rally forecast is the odds of a bounce, not a floor.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "ETHA"
  },
  "questions": {
    "rsi2": {
      "type": "yes_no",
      "ask": "rsi(C, 2) < 10"
    },
    "below_band": {
      "type": "yes_no",
      "ask": "C < bblower(C, 20, 2)"
    },
    "zlow": {
      "type": "yes_no",
      "ask": "zscore(C, 20) < -2"
    },
    "willr_low": {
      "type": "yes_no",
      "ask": "willr(14) < -80"
    },
    "bounce": {
      "type": "yes_no",
      "instructions": "Will it rally at least 5% at some point in the next month?"
    }
  }
}
Response JSON (ETHA, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "rsi2": {
      "yes_no": 0.5481,
      "rule": "rsi(C, 2) < 10",
      "basis": "rule"
    },
    "below_band": {
      "yes_no": 0.47,
      "rule": "C < bblower(C, 20, 2)",
      "basis": "rule"
    },
    "zlow": {
      "yes_no": 0.4485,
      "rule": "zscore(C, 20) < -2",
      "basis": "rule"
    },
    "willr_low": {
      "yes_no": 0.7011,
      "rule": "willr(14) < -80",
      "basis": "rule"
    },
    "bounce": {
      "yes_no": 0.716
    }
  },
  "context": {
    "symbol": "ETHA",
    "as_of": "2026-10-30"
  }
}

bblower rsi willr zscore

Crypto trader · example 5

MSTR: bitcoin proxy with an earnings date

MSTR trades like leveraged bitcoin but also reports earnings. Check the report date, the last reaction and the volatility before trading it.

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

State

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

Questions

earn_soonEnglish → ruleIs earnings in the next 14 days?
big_reactionruleabs(last_earnings_move) > 5
Last earnings move bigger than 5%
atr3ruleatr_pct(14) > 3
A typical day moves more than 3%
hv40rulestd(log(C / C[-1]), 20) * sqrt(252) > 0.4
Annualized 20-day volatility above 40%
big_moveforecastWill there be a big move in either direction in the next 5 days?
A big move either way in 5 days

Answers

QuestionAnswerReading
earn_soon
Is earnings in the next 14 days
compiled to days_to_earnings <= 14
0.0537false
big_reaction
Last earnings move bigger than 5%
0.9038true
atr3
A typical day moves more than 3%
0.9463true
hv40
Annualized 20-day volatility above 40%
0.9288true
big_move
A big move either way in 5 days
0.29530% · unlikely

Actions

Rules on the answers decide what to send.

earn_soon >= 0.6 and atr3 >= 0.6→Slackcrypto-desk
atr3 >= 0.6→Slackcrypto-desk
What each action would send 1 of 2 fired · dry run, nothing sent
event_warningrule false: skipped
vol_onlywould send (dry run)Slack → crypto-desk
{
  "text": "MSTR (2026-10-30): high-volatility regime (ATR over 3% 95%), no report close (5%). Big move in 5 days: 30%."
}

What it means

For MSTR on the session of 2026-10-30: True now: Last earnings move bigger than 5%; A typical day moves more than 3%; Annualized 20-day volatility above 40%. Not true: Is earnings in the next 14 days. Forecasts: A big move either way in 5 days 30%. Fired: vol_only (Slack → crypto-desk).

Two branches: an earnings window on top of high volatility is the stronger warning; volatility alone still gets a note.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "MSTR"
  },
  "questions": {
    "earn_soon": {
      "type": "yes_no",
      "instructions": "Is earnings in the next 14 days?"
    },
    "big_reaction": {
      "type": "yes_no",
      "ask": "abs(last_earnings_move) > 5"
    },
    "atr3": {
      "type": "yes_no",
      "ask": "atr_pct(14) > 3"
    },
    "hv40": {
      "type": "yes_no",
      "ask": "std(log(C / C[-1]), 20) * sqrt(252) > 0.4"
    },
    "big_move": {
      "type": "yes_no",
      "instructions": "Will there be a big move in either direction in the next 5 days?"
    }
  },
  "actions": [
    {
      "id": "event_warning",
      "when": "earn_soon >= 0.6 and atr3 >= 0.6",
      "do": "slack",
      "connection": "crypto-desk",
      "message": "{{symbol}} ({{as_of}}): earnings within 14 days on top of ATR over 3% of price. Last reaction over 5%: {{big_reaction|pct}}. Size for both."
    },
    {
      "id": "vol_only",
      "when": "atr3 >= 0.6",
      "do": "slack",
      "connection": "crypto-desk",
      "message": "{{symbol}} ({{as_of}}): high-volatility regime (ATR over 3% {{atr3|pct}}), no report close ({{earn_soon|pct}}). Big move in 5 days: {{big_move|pct}}."
    }
  ],
  "dry_run": true
}
Response JSON (MSTR, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "earn_soon": {
      "yes_no": 0.0537,
      "rule": "days_to_earnings <= 14",
      "basis": "pattern"
    },
    "big_reaction": {
      "yes_no": 0.9038,
      "rule": "abs(last_earnings_move) > 5",
      "basis": "rule"
    },
    "atr3": {
      "yes_no": 0.9463,
      "rule": "atr_pct(14) > 3",
      "basis": "rule"
    },
    "hv40": {
      "yes_no": 0.9288,
      "rule": "std(log(C / C[-1]), 20) * sqrt(252) > 0.4",
      "basis": "rule"
    },
    "big_move": {
      "yes_no": 0.295
    }
  },
  "context": {
    "symbol": "MSTR",
    "as_of": "2026-10-30"
  },
  "actions": [
    {
      "id": "event_warning",
      "fired": false,
      "status": "skipped"
    },
    {
      "id": "vol_only",
      "fired": true,
      "status": "dry_run",
      "do": "slack",
      "connection": "crypto-desk",
      "preview": {
        "text": "MSTR (2026-10-30): high-volatility regime (ATR over 3% 95%), no report close (5%). Big move in 5 days: 30%."
      }
    }
  ]
}

abs atr_pct days_to_earnings last_earnings_move log offset sqrt std

Crypto trader · example 6

Bitcoin miners RIOT and MARA: who has momentum?

Miners move with bitcoin but with more beta. Compare trend strength (ADX), direction and the odds of a 10% rally.

ora-fin-0.1.12 symbols, one request each5 questions
  1. State2 symbols
  2. Questions5 asked
  3. Answersreal, captured
  4. Actionsnone

State

{"symbol":"RIOT"} then MARA, one request each. The server fills in the latest completed session.

Questions

adx_upruleadx(14) > 20 and diplus(14) > diminus(14)
Trending up (ADX over 20 and +DI over −DI)
dirulediplus(14) > diminus(14)
+DI above -DI (buyers in control)
rocruleroc(C, 20) > 5
Up more than 5% in 20 sessions
atr3ruleatr_pct(14) > 3
A typical day moves more than 3%
rally10forecastWill it rally at least 10% at some point in the next month?
A 10% rally within a month

Answers

Symboladx_upruledirulerocruleatr3rulerally10forecast
RIOT0.07930.07930.06630.94630.888
MARA0.08190.08190.06780.94630.89

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: Trending up (ADX over 20 and +DI over −DI): true for none of 2. +DI above -DI (buyers in control): true for none of 2. Up more than 5% in 20 sessions: true for none of 2. A typical day moves more than 3%: true for RIOT, MARA of 2. Highest odds for “A 10% rally within a month”: MARA at 89%.

ADX says whether there is a trend at all and the DI lines say which way; prefer the miner where both agree.

Request JSON (RIOT; the others differ only in the symbol)
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "RIOT"
  },
  "questions": {
    "adx_up": {
      "type": "yes_no",
      "ask": "adx(14) > 20 and diplus(14) > diminus(14)"
    },
    "di": {
      "type": "yes_no",
      "ask": "diplus(14) > diminus(14)"
    },
    "roc": {
      "type": "yes_no",
      "ask": "roc(C, 20) > 5"
    },
    "atr3": {
      "type": "yes_no",
      "ask": "atr_pct(14) > 3"
    },
    "rally10": {
      "type": "yes_no",
      "instructions": "Will it rally at least 10% at some point in the next month?"
    }
  }
}
Response JSON (RIOT, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "adx_up": {
      "yes_no": 0.0793,
      "rule": "adx(14) > 20 and diplus(14) > diminus(14)",
      "basis": "rule"
    },
    "di": {
      "yes_no": 0.0793,
      "rule": "diplus(14) > diminus(14)",
      "basis": "rule"
    },
    "roc": {
      "yes_no": 0.0663,
      "rule": "roc(C, 20) > 5",
      "basis": "rule"
    },
    "atr3": {
      "yes_no": 0.9463,
      "rule": "atr_pct(14) > 3",
      "basis": "rule"
    },
    "rally10": {
      "yes_no": 0.888
    }
  },
  "context": {
    "symbol": "RIOT",
    "as_of": "2026-10-30"
  }
}

adx atr_pct diminus diplus roc

Crypto trader · example 7

Did a reversal candle print in IBIT after a selloff?

After a drop in bitcoin, look for a morning star, a hammer or a piercing line in the ETF's daily bars.

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

State

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

Questions

morningrulemorning_star()
morning star candle: A red bar, a small bar (half its body or less) that stays under its close, then a green bar closing above the middle of the first.
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).
down3English → ruleHas the stock closed lower 3 days in a row?
up_weekforecastWill the stock be higher in a week?
Higher in a week

Answers

QuestionAnswerReading
morning
morning star candle: A red bar, a small bar (half its body or less) that stays under its close, then a green bar closing above the middle of the first.
0.0937false
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.0751false
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.0723false
down3
Has the stock closed lower 3 days in a row
compiled to (C < C[-1]) and (C[-1] < C[-2]) and (C[-2] < C[-3])
0.2769false
up_week
Higher in a week
0.52853% · close to even

What it means

For IBIT on the session of 2026-10-30: Not true: morning star candle: A red bar, a small bar (half its body or less) that stays under its close, then a green bar closing above the middle of the first.; 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).; Has the stock closed lower 3 days in a row. Forecasts: Higher in a week 53%.

A reversal candle after a run of down closes is a reason to watch for follow-through; one candle on its own is not a trend change.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "IBIT"
  },
  "questions": {
    "morning": {
      "type": "yes_no",
      "ask": "morning_star()"
    },
    "hammer": {
      "type": "yes_no",
      "ask": "hammer()"
    },
    "piercing": {
      "type": "yes_no",
      "ask": "piercing_line()"
    },
    "down3": {
      "type": "yes_no",
      "instructions": "Has the stock closed lower 3 days in a row?"
    },
    "up_week": {
      "type": "yes_no",
      "instructions": "Will the stock be higher in a week?"
    }
  }
}
Response JSON (IBIT, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "morning": {
      "yes_no": 0.0937,
      "rule": "morning_star()",
      "basis": "rule"
    },
    "hammer": {
      "yes_no": 0.0751,
      "rule": "hammer()",
      "basis": "rule"
    },
    "piercing": {
      "yes_no": 0.0723,
      "rule": "piercing_line()",
      "basis": "rule"
    },
    "down3": {
      "yes_no": 0.2769,
      "rule": "(C < C[-1]) and (C[-1] < C[-2]) and (C[-2] < C[-3])",
      "basis": "pattern"
    },
    "up_week": {
      "yes_no": 0.528
    }
  },
  "context": {
    "symbol": "IBIT",
    "as_of": "2026-10-30"
  }
}

hammer morning_star offset piercing_line

Crypto trader · example 8

GBTC vs its own long average: discount fading or not?

Check GBTC's position against its 100-day mean and a linear-regression slope to see if the trend is steady or rolling over.

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

State

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

Questions

mean100ruleC > mean(C, 100)
Close above its 100-day mean
sloperulelinreg(C, 20) > ref(linreg(C, 20), -5)
20-day regression line rising over a week
wmarulewma(C, 10) > wma(C, 30)
10-day WMA above the 30-day WMA
drop5forecastWill it drop at least 5% at some point in the next month?
A 5% drawdown within a month

Answers

QuestionAnswerReading
mean100
Close above its 100-day mean
0.7924true
slope
20-day regression line rising over a week
0.2434false
wma
10-day WMA above the 30-day WMA
0.2093false
drop5
A 5% drawdown within a month
0.57357% · close to even

What it means

For GBTC on the session of 2026-10-30: True now: Close above its 100-day mean. Not true: 20-day regression line rising over a week; 10-day WMA above the 30-day WMA. Forecasts: A 5% drawdown within a month 57%.

A rising regression line and a fast weighted average above the slow one describe a steady trend; when they flip, the trend is losing its slope.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "GBTC"
  },
  "questions": {
    "mean100": {
      "type": "yes_no",
      "ask": "C > mean(C, 100)"
    },
    "slope": {
      "type": "yes_no",
      "ask": "linreg(C, 20) > ref(linreg(C, 20), -5)"
    },
    "wma": {
      "type": "yes_no",
      "ask": "wma(C, 10) > wma(C, 30)"
    },
    "drop5": {
      "type": "yes_no",
      "instructions": "Will it drop at least 5% at some point in the next month?"
    }
  }
}
Response JSON (GBTC, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "mean100": {
      "yes_no": 0.7924,
      "rule": "C > mean(C, 100)",
      "basis": "rule"
    },
    "slope": {
      "yes_no": 0.2434,
      "rule": "linreg(C, 20) > ref(linreg(C, 20), -5)",
      "basis": "rule"
    },
    "wma": {
      "yes_no": 0.2093,
      "rule": "wma(C, 10) > wma(C, 30)",
      "basis": "rule"
    },
    "drop5": {
      "yes_no": 0.573
    }
  },
  "context": {
    "symbol": "GBTC",
    "as_of": "2026-10-30"
  }
}

linreg mean ref wma

Crypto trader · example 9

Will IBIT gap on Monday after a weekend in bitcoin?

Bitcoin trades all weekend but the ETF does not. Before the Friday close, check the gap odds and how wide the recent days have been.

ora-fin-0.1.1IBIT5 questions2 actionsworkflow · Fri at 15:30 ET
  1. ScheduleFri at 15:30 ET
  2. StateIBIT
  3. Questions5 asked
  4. Answersreal, captured
  5. Actions2 rules · dry run

State

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

Questions

gap_upforecastWill it gap up tomorrow?
A gap up tomorrow
gap_downforecastWill it gap down tomorrow?
A gap down tomorrow
wideruletr() > 1.5 * ref(atr(14), -1)
True range 1.5× yesterday's ATR
gap_atrruleabs(O - C[-1]) > 0.5 * ref(atr(14), -1)
Gap bigger than half an ATR
vol_riseforecastWill volatility rise over the next 5 days?
Volatility rising over 5 days

Answers

QuestionAnswerReading
gap_up
A gap up tomorrow
0.21221% · unlikely
gap_down
A gap down tomorrow
0.13413% · unlikely
wide
True range 1.5× yesterday's ATR
0.8948true
gap_atr
Gap bigger than half an ATR
0.9444true
vol_rise
Volatility rising over 5 days
0.4646% · close to even

Actions

Rules on the answers decide what to send.

gap_up >= 0.2 or gap_down >= 0.2→Emailme
else→Emailme
What each action would send 1 of 2 fired · dry run, nothing sent
weekend_notewould send (dry run)Email → me
{
  "subject": "IBIT: weekend gap risk",
  "text": "IBIT (2026-10-30): gap up 21%, gap down 13%. Recent wide day: 89%. Decide whether to hold through the weekend."
}
calmrule false: skipped

What it means

For IBIT on the session of 2026-10-30: True now: True range 1.5× yesterday's ATR; Gap bigger than half an ATR. Forecasts: A gap up tomorrow 21%; A gap down tomorrow 13%; Volatility rising over 5 days 46%. Fired: weekend_note (Email → me).

The Friday workflow sends one of two emails: a gap-risk note or an all-clear, so holding through the weekend is a deliberate choice.

As a scheduled workflow (Fri at 15: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": "Will IBIT gap on Monday after a weekend in bitcoin?",
  "symbols": "IBIT",
  "days": [
    5
  ],
  "at_time": "15:30",
  "model": "ora-fin-0.1.1",
  "questions": {
    "gap_up": {
      "type": "yes_no",
      "instructions": "Will it gap up tomorrow?"
    },
    "gap_down": {
      "type": "yes_no",
      "instructions": "Will it gap down tomorrow?"
    },
    "wide": {
      "type": "yes_no",
      "ask": "tr() > 1.5 * ref(atr(14), -1)"
    },
    "gap_atr": {
      "type": "yes_no",
      "ask": "abs(O - C[-1]) > 0.5 * ref(atr(14), -1)"
    },
    "vol_rise": {
      "type": "yes_no",
      "instructions": "Will volatility rise over the next 5 days?"
    }
  },
  "actions": [
    {
      "id": "weekend_note",
      "when": "gap_up >= 0.2 or gap_down >= 0.2",
      "do": "email",
      "connection": "me",
      "subject": "{{symbol}}: weekend gap risk",
      "message": "{{symbol}} ({{as_of}}): gap up {{gap_up|pct}}, gap down {{gap_down|pct}}. Recent wide day: {{wide|pct}}. Decide whether to hold through the weekend."
    },
    {
      "id": "calm",
      "when": "else",
      "do": "email",
      "connection": "me",
      "subject": "{{symbol}}: no unusual weekend gap odds",
      "message": "{{symbol}} ({{as_of}}): gap odds are low (up {{gap_up|pct}}, down {{gap_down|pct}})."
    }
  ]
}
Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "IBIT"
  },
  "questions": {
    "gap_up": {
      "type": "yes_no",
      "instructions": "Will it gap up tomorrow?"
    },
    "gap_down": {
      "type": "yes_no",
      "instructions": "Will it gap down tomorrow?"
    },
    "wide": {
      "type": "yes_no",
      "ask": "tr() > 1.5 * ref(atr(14), -1)"
    },
    "gap_atr": {
      "type": "yes_no",
      "ask": "abs(O - C[-1]) > 0.5 * ref(atr(14), -1)"
    },
    "vol_rise": {
      "type": "yes_no",
      "instructions": "Will volatility rise over the next 5 days?"
    }
  },
  "actions": [
    {
      "id": "weekend_note",
      "when": "gap_up >= 0.2 or gap_down >= 0.2",
      "do": "email",
      "connection": "me",
      "subject": "{{symbol}}: weekend gap risk",
      "message": "{{symbol}} ({{as_of}}): gap up {{gap_up|pct}}, gap down {{gap_down|pct}}. Recent wide day: {{wide|pct}}. Decide whether to hold through the weekend."
    },
    {
      "id": "calm",
      "when": "else",
      "do": "email",
      "connection": "me",
      "subject": "{{symbol}}: no unusual weekend gap odds",
      "message": "{{symbol}} ({{as_of}}): gap odds are low (up {{gap_up|pct}}, down {{gap_down|pct}})."
    }
  ],
  "dry_run": true
}
Response JSON (IBIT, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "gap_up": {
      "yes_no": 0.212
    },
    "gap_down": {
      "yes_no": 0.134
    },
    "wide": {
      "yes_no": 0.8948,
      "rule": "tr() > 1.5 * ref(atr(14), -1)",
      "basis": "rule"
    },
    "gap_atr": {
      "yes_no": 0.9444,
      "rule": "abs(O - C[-1]) > 0.5 * ref(atr(14), -1)",
      "basis": "rule"
    },
    "vol_rise": {
      "yes_no": 0.46
    }
  },
  "context": {
    "symbol": "IBIT",
    "as_of": "2026-10-30"
  },
  "actions": [
    {
      "id": "weekend_note",
      "fired": true,
      "status": "dry_run",
      "do": "email",
      "connection": "me",
      "preview": {
        "subject": "IBIT: weekend gap risk",
        "text": "IBIT (2026-10-30): gap up 21%, gap down 13%. Recent wide day: 89%. Decide whether to hold through the weekend."
      }
    },
    {
      "id": "calm",
      "fired": false,
      "status": "skipped"
    }
  ]
}

abs atr offset ref tr

Crypto trader · example 10

BITO (bitcoin futures ETF): trend and volatility

BITO holds futures, not spot. Check whether it confirms the spot ETFs' trend and how volatile it is.

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

State

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

Questions

above_50druleC > sma(C, 50)
Above the 50-day average
hvEnglish → ruleIs 20-day historical volatility above 40%?
paysEnglish → ruleDoes the stock pay a dividend?
atr_risingruleatr(14) > 1.2 * ref(atr(14), -10)
ATR up 20% in two weeks
up_weekforecastWill the stock be higher in a week?
Higher in a week

Answers

QuestionAnswerReading
above_50d
Above the 50-day average
0.157false
hv
Is 20-day historical volatility above 40%
compiled to std(log(C / C[-1]), 20) * sqrt(20 / 19) * sqrt(252) > 0.4
0.137false
pays
Does the stock pay a dividend
compiled to pays_dividend > 0.5
0.8591true
atr_rising
ATR up 20% in two weeks
0.1225false
up_week
Higher in a week
0.4949% · close to even

What it means

For BITO on the session of 2026-10-30: True now: Does the stock pay a dividend. Not true: Above the 50-day average; Is 20-day historical volatility above 40%; ATR up 20% in two weeks. Forecasts: Higher in a week 49%.

BITO pays distributions from futures roll income, so the dividend fact can be true even though bitcoin pays nothing.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "BITO"
  },
  "questions": {
    "above_50d": {
      "type": "yes_no",
      "ask": "C > sma(C, 50)"
    },
    "hv": {
      "type": "yes_no",
      "instructions": "Is 20-day historical volatility above 40%?"
    },
    "pays": {
      "type": "yes_no",
      "instructions": "Does the stock pay a dividend?"
    },
    "atr_rising": {
      "type": "yes_no",
      "ask": "atr(14) > 1.2 * ref(atr(14), -10)"
    },
    "up_week": {
      "type": "yes_no",
      "instructions": "Will the stock be higher in a week?"
    }
  }
}
Response JSON (BITO, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "above_50d": {
      "yes_no": 0.157,
      "rule": "C > sma(C, 50)",
      "basis": "rule"
    },
    "hv": {
      "yes_no": 0.137,
      "rule": "std(log(C / C[-1]), 20) * sqrt(20 / 19) * sqrt(252) > 0.4",
      "basis": "pattern"
    },
    "pays": {
      "yes_no": 0.8591,
      "rule": "pays_dividend > 0.5",
      "basis": "pattern"
    },
    "atr_rising": {
      "yes_no": 0.1225,
      "rule": "atr(14) > 1.2 * ref(atr(14), -10)",
      "basis": "rule"
    },
    "up_week": {
      "yes_no": 0.49
    }
  },
  "context": {
    "symbol": "BITO",
    "as_of": "2026-10-30"
  }
}

atr log offset pays_dividend ref sma sqrt std

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.

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