Use cases · Individuals
Social trading community: 20 ways to use Ora
A group that shares setups and wants the same checks, in the same words, posted to its channel. Each example is a complete, runnable request with the real answers it returned (31 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)
sma 10offset 7ref 6abs 5avg 4highest 3max 3swinghigh 3swinglow 3atr 3rsi 2macd 2macdsignal 2roc 2days_to_earnings 2log 2sqrt 2std 2sum 2ema 1doji 1gravestone_doji 1marubozu 1outside_bar 1spinning_top 1beat_streak 1last_earnings_move 1next_report_amc 1atr_pct 1zscore 1three_white_soldiers 1gap_down 1gap_up 1hanging_man 1highestbars 1shooting_star 1lowest 1tweezer_bottom 1hl2 1hlc3 1ohlc4 1barssince 1sign 1cut_last 1days_to_ex_div 1div_yield_ttm 1years_of_growth 1greatest 1iif 1lowestbars 1
Examples 1–10 of 20 · page 1 of 2
Social trading community · example 1
A Discord bot that posts volume breakouts in NVDA
The community wants one shared definition of a breakout. When NVDA closes at a 20-day high on 1.5x volume, the bot posts to Discord.
- StateNVDA
- Questions4 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"NVDA"} The server fills in the latest completed session.
Questions
breakout | English → rule | Is this a breakout entry: a new 20-day closing high on 1.5x average volume? |
near_high | rule | C >= 0.98 * max(H, 252)Within 2% of the 52-week high |
rsi_hot | rule | rsi(C, 14) > 70RSI above 70 |
new_high | forecast | Will it make a new 20-day high in the next week? A new 20-day high next week |
Answers
| Question | Answer | Reading |
|---|---|---|
breakoutIs this a breakout entry: a new 20-day closing high on 1.5x average volume compiled to (C > highest(C, 20)) and (V > 1.5 * ref(avg(V, 20), -1)) | 0.0537 | false |
near_highWithin 2% of the 52-week high | 0.0537 | false |
rsi_hotRSI above 70 | 0.0537 | false |
new_highA new 20-day high next week | 0.027 | 3% · unlikely |
Actions
Rules on the answers decide what to send.
breakout >= 0.6→Webhookcommunity-discordWhat it means
For NVDA on the session of 2026-10-30: Not true: Is this a breakout entry: a new 20-day closing high on 1.5x average volume; Within 2% of the 52-week high; RSI above 70. Forecasts: A new 20-day high next week 3%. No action fired: every rule was false.
Everyone sees the same rule behind the post, so arguments are about the trade, not about what counts as a breakout.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "NVDA"
},
"questions": {
"breakout": {
"type": "yes_no",
"instructions": "Is this a breakout entry: a new 20-day closing high on 1.5x average volume?"
},
"near_high": {
"type": "yes_no",
"ask": "C >= 0.98 * max(H, 252)"
},
"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": "post",
"when": "breakout >= 0.6",
"do": "webhook",
"connection": "community-discord",
"body": {
"content": "Breakout: {{symbol}} ({{as_of}}) closed at a 20-day high on 1.5x volume ({{breakout|pct}}). Near the 52-week high {{near_high|pct}}, RSI over 70 {{rsi_hot|pct}}. Not advice: do your own work."
}
}
],
"dry_run": true
}Response JSON (NVDA, 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": "pattern"
},
"near_high": {
"yes_no": 0.0537,
"rule": "C >= 0.98 * max(H, 252)",
"basis": "rule"
},
"rsi_hot": {
"yes_no": 0.0537,
"rule": "rsi(C, 14) > 70",
"basis": "rule"
},
"new_high": {
"yes_no": 0.027
}
},
"context": {
"symbol": "NVDA",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "post",
"fired": false,
"status": "skipped"
}
]
}Social trading community · example 2
Setup of the day: TSLA bull or bear case
Members vote on a setup; the bot posts the facts for both sides first so the vote starts from the same data.
- StateTSLA
- Questions5 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"TSLA"} The server fills in the latest completed session.
Questions
trend | rule | C > sma(C, 50)Above the 50-day average |
hh_hl | English → rule | Is the stock making higher swing highs and higher swing lows? |
lh_ll | English → rule | Is the stock making lower swing highs and lower swing lows? |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
down_week | forecast | Will the stock be lower in a week? Lower in a week |
Answers
| Question | Answer | Reading |
|---|---|---|
trendAbove the 50-day average | 0.8961 | true |
hh_hlIs the stock making higher swing highs and higher swing lows compiled to (swinghigh(5, 1) > swinghigh(5, 2)) and (swinglow(5, 1) > swinglow(5, 2)) | 0.5439 | on the line (true) |
lh_llIs the stock making lower swing highs and lower swing lows compiled to (swinghigh(5, 1) < swinghigh(5, 2)) and (swinglow(5, 1) < swinglow(5, 2)) | 0.4322 | on the line (false) |
up_weekHigher in a week | 0.487 | 49% · close to even |
down_weekLower in a week | 0.455 | 46% · close to even |
Actions
Rules on the answers decide what to send.
else→Webhookcommunity-discord{
"content": "Vote: TSLA (2026-10-30). Above 50-day 90%. Higher highs and lows 54%, lower highs and lows 43%. Model: higher in a week 49%, lower 46%. Bull or bear?"
}What it means
For TSLA on the session of 2026-10-30: True now: Above the 50-day average. On the line: Is the stock making higher swing highs and higher swing lows; Is the stock making lower swing highs and lower swing lows. Forecasts: Higher in a week 49%; Lower in a week 46%. Fired: poll (Webhook → community-discord).
A lone else branch always fires, so the poll post goes out every time with the latest facts in it.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "TSLA"
},
"questions": {
"trend": {
"type": "yes_no",
"ask": "C > sma(C, 50)"
},
"hh_hl": {
"type": "yes_no",
"instructions": "Is the stock making higher swing highs and higher swing lows?"
},
"lh_ll": {
"type": "yes_no",
"instructions": "Is the stock making lower swing highs and lower swing lows?"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
},
"down_week": {
"type": "yes_no",
"instructions": "Will the stock be lower in a week?"
}
},
"actions": [
{
"id": "poll",
"when": "else",
"do": "webhook",
"connection": "community-discord",
"body": {
"content": "Vote: {{symbol}} ({{as_of}}). Above 50-day {{trend|pct}}. Higher highs and lows {{hh_hl|pct}}, lower highs and lows {{lh_ll|pct}}. Model: higher in a week {{up_week|pct}}, lower {{down_week|pct}}. Bull or bear?"
}
}
],
"dry_run": true
}Response JSON (TSLA, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.8961,
"rule": "C > sma(C, 50)",
"basis": "rule"
},
"hh_hl": {
"yes_no": 0.5439,
"rule": "(swinghigh(5, 1) > swinghigh(5, 2)) and (swinglow(5, 1) > swinglow(5, 2))",
"basis": "pattern"
},
"lh_ll": {
"yes_no": 0.4322,
"rule": "(swinghigh(5, 1) < swinghigh(5, 2)) and (swinglow(5, 1) < swinglow(5, 2))",
"basis": "pattern"
},
"up_week": {
"yes_no": 0.487
},
"down_week": {
"yes_no": 0.455
}
},
"context": {
"symbol": "TSLA",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "poll",
"fired": true,
"status": "dry_run",
"do": "webhook",
"connection": "community-discord",
"preview": {
"body": {
"content": "Vote: TSLA (2026-10-30). Above 50-day 90%. Higher highs and lows 54%, lower highs and lows 43%. Model: higher in a week 49%, lower 46%. Bull or bear?"
}
}
}
]
}Social trading community · example 3
Community watchlist scan: AAPL, AMD, NFLX, JPM, XOM
The group's weekly watchlist, one request per name: trend, momentum and the odds of a 5% rally.
- State5 symbols
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"AAPL"} then AMD, NFLX, JPM, XOM, one request each. The server fills in the latest completed session.
Questions
trend | rule | C > ema(C, 20) and ema(C, 20) > sma(C, 50) and sma(C, 50) > sma(C, 200)Stacked averages: close > 20 EMA > 50 > 200 |
macd | English → rule | Is the MACD line above its signal line? |
roc | rule | roc(C, 20) > 5Up more than 5% in 20 sessions |
rally5 | forecast | Will it rally at least 5% at some point in the next month? A 5% rally within a month |
Answers
| Symbol | trendrule | macdrule | rocrule | rally5forecast |
|---|---|---|---|---|
AAPL | 0.7079 | 0.3962 | 0.3147 | 0.446 |
AMD | 0.1048 | 0.2076 | 0.0932 | 0.836 |
NFLX | 0.0537 | 0.1584 | 0.1119 | 0.645 |
JPM | 0.2309 | 0.88 | 0.1823 | 0.385 |
XOM | 0.9436 | 0.8459 | 0.9298 | 0.511 |
true false not known for rules; forecasts are odds. Hover a column for its question.
What it means
Session of 2026-10-30, 5 symbols: Stacked averages: close > 20 EMA > 50 > 200: true for AAPL, XOM of 5. Is the MACD line above its signal line: true for JPM, XOM of 5. Up more than 5% in 20 sessions: true for XOM of 5. Highest odds for “A 5% rally within a month”: AMD at 84%.
Identical questions on each name make the ranking transparent; members can rerun it themselves and get the same answers.
Request JSON (AAPL; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "AAPL"
},
"questions": {
"trend": {
"type": "yes_no",
"ask": "C > ema(C, 20) and ema(C, 20) > sma(C, 50) and sma(C, 50) > sma(C, 200)"
},
"macd": {
"type": "yes_no",
"instructions": "Is the MACD line above its signal line?"
},
"roc": {
"type": "yes_no",
"ask": "roc(C, 20) > 5"
},
"rally5": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
}
}Response JSON (AAPL, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"trend": {
"yes_no": 0.7079,
"rule": "C > ema(C, 20) and ema(C, 20) > sma(C, 50) and sma(C, 50) > sma(C, 200)",
"basis": "rule"
},
"macd": {
"yes_no": 0.3962,
"rule": "macd(C) > macdsignal(C)",
"basis": "comparison"
},
"roc": {
"yes_no": 0.3147,
"rule": "roc(C, 20) > 5",
"basis": "rule"
},
"rally5": {
"yes_no": 0.446
}
},
"context": {
"symbol": "AAPL",
"as_of": "2026-10-30"
}
}Social trading community · example 4
Candle check: did AMZN print a doji, a spinning top or a marubozu?
Members argue about candle names. Settle it with the exact definitions in the rule language.
- StateAMZN
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"AMZN"} The server fills in the latest completed session.
Questions
doji | rule | doji()doji candle: Body at most 10% of the day's range. |
spinning | rule | spinning_top()spinning top candle: Small body (10–30% of range) with wicks of at least a quarter of the range on both sides. |
marubozu | rule | marubozu()marubozu candle: Body at least 90% of the range: almost no wicks. |
gravestone | rule | gravestone_doji()gravestone doji candle: Doji with a long upper wick and almost no lower wick. |
outside | rule | outside_bar()outside bar candle: Today's high above yesterday's and low below it. |
Answers
| Question | Answer | Reading |
|---|---|---|
dojidoji candle: Body at most 10% of the day's range. | 0.0537 | false |
spinningspinning top candle: Small body (10–30% of range) with wicks of at least a quarter of the range on both sides. | 0.0592 | false |
marubozumarubozu candle: Body at least 90% of the range: almost no wicks. | 0.0555 | false |
gravestonegravestone doji candle: Doji with a long upper wick and almost no lower wick. | 0.0537 | false |
outsideoutside bar candle: Today's high above yesterday's and low below it. | 0.0661 | false |
What it means
For AMZN on the session of 2026-10-30: Not true: doji candle: Body at most 10% of the day's range.; spinning top candle: Small body (10–30% of range) with wicks of at least a quarter of the range on both sides.; marubozu candle: Body at least 90% of the range: almost no wicks.; gravestone doji candle: Doji with a long upper wick and almost no lower wick.; outside bar candle: Today's high above yesterday's and low below it..
Each candle function has one precise definition, so the answer is the same for every member who asks.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "AMZN"
},
"questions": {
"doji": {
"type": "yes_no",
"ask": "doji()"
},
"spinning": {
"type": "yes_no",
"ask": "spinning_top()"
},
"marubozu": {
"type": "yes_no",
"ask": "marubozu()"
},
"gravestone": {
"type": "yes_no",
"ask": "gravestone_doji()"
},
"outside": {
"type": "yes_no",
"ask": "outside_bar()"
}
}
}Response JSON (AMZN, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"doji": {
"yes_no": 0.0537,
"rule": "doji()",
"basis": "rule"
},
"spinning": {
"yes_no": 0.0592,
"rule": "spinning_top()",
"basis": "rule"
},
"marubozu": {
"yes_no": 0.0555,
"rule": "marubozu()",
"basis": "rule"
},
"gravestone": {
"yes_no": 0.0537,
"rule": "gravestone_doji()",
"basis": "rule"
},
"outside": {
"yes_no": 0.0661,
"rule": "outside_bar()",
"basis": "rule"
}
},
"context": {
"symbol": "AMZN",
"as_of": "2026-10-30"
}
}Social trading community · example 5
Earnings thread: AMD before its report
Open an earnings thread with the facts: report date and time, beat streak, last reaction, and the model's view of the next quarter.
- StateAMD
- Questions5 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"AMD"} The server fills in the latest completed session.
Questions
soon | English → rule | Is earnings in the next 14 days? |
amc | English → rule | Does the stock report after the close next time? |
streak | English → rule | Has the stock beaten EPS estimates 4 quarters in a row? |
last_move | rule | abs(last_earnings_move) > 5Last earnings move bigger than 5% |
beat_next | forecast | Will the stock beat earnings next quarter? Beating earnings next quarter |
Answers
| Question | Answer | Reading |
|---|---|---|
soonIs earnings in the next 14 days compiled to days_to_earnings <= 14 | 0.9463 | true |
amcDoes the stock report after the close next time compiled to next_report_amc > 0.5 | 0.8591 | true |
streakHas the stock beaten EPS estimates 4 quarters in a row compiled to beat_streak >= 4 | 0.9463 | true |
last_moveLast earnings move bigger than 5% | 0.9463 | true |
beat_nextBeating earnings next quarter | 0.563 | 56% · close to even |
Actions
Rules on the answers decide what to send.
soon >= 0.6→Slackcommunity-earnings{
"text": "Earnings thread: AMD reports within 14 days (2026-10-30). After the close 86%. 4-quarter beat streak 95%. Last reaction over 5% 95%. Model on beating next quarter: 56%."
}What it means
For AMD on the session of 2026-10-30: True now: Is earnings in the next 14 days; Does the stock report after the close next time; Has the stock beaten EPS estimates 4 quarters in a row; Last earnings move bigger than 5%. Forecasts: Beating earnings next quarter 56%. Fired: thread (Slack → community-earnings).
Facts and the forecast are labelled differently in the post, so members can see which part is record and which part is odds.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "AMD"
},
"questions": {
"soon": {
"type": "yes_no",
"instructions": "Is earnings in the next 14 days?"
},
"amc": {
"type": "yes_no",
"instructions": "Does the stock report after the close next time?"
},
"streak": {
"type": "yes_no",
"instructions": "Has the stock beaten EPS estimates 4 quarters in a row?"
},
"last_move": {
"type": "yes_no",
"ask": "abs(last_earnings_move) > 5"
},
"beat_next": {
"type": "yes_no",
"instructions": "Will the stock beat earnings next quarter?"
}
},
"actions": [
{
"id": "thread",
"when": "soon >= 0.6",
"do": "slack",
"connection": "community-earnings",
"message": "Earnings thread: {{symbol}} reports within 14 days ({{as_of}}). After the close {{amc|pct}}. 4-quarter beat streak {{streak|pct}}. Last reaction over 5% {{last_move|pct}}. Model on beating next quarter: {{beat_next|pct}}."
}
],
"dry_run": true
}Response JSON (AMD, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"soon": {
"yes_no": 0.9463,
"rule": "days_to_earnings <= 14",
"basis": "pattern"
},
"amc": {
"yes_no": 0.8591,
"rule": "next_report_amc > 0.5",
"basis": "pattern"
},
"streak": {
"yes_no": 0.9463,
"rule": "beat_streak >= 4",
"basis": "pattern"
},
"last_move": {
"yes_no": 0.9463,
"rule": "abs(last_earnings_move) > 5",
"basis": "rule"
},
"beat_next": {
"yes_no": 0.563
}
},
"context": {
"symbol": "AMD",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "thread",
"fired": true,
"status": "dry_run",
"do": "slack",
"connection": "community-earnings",
"preview": {
"text": "Earnings thread: AMD reports within 14 days (2026-10-30). After the close 86%. 4-quarter beat streak 95%. Last reaction over 5% 95%. Model on beating next quarter: 56%."
}
}
]
}abs beat_streak days_to_earnings last_earnings_move next_report_amc
Social trading community · example 6
Heads-up post: SMCI volatility is extreme
Warn newer members before they chase a volatile name: ATR, historical volatility and the size of today's move.
- StateSMCI
- Questions5 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"SMCI"} The server fills in the latest completed session.
Questions
atr3 | rule | atr_pct(14) > 3A typical day moves more than 3% |
hv | rule | std(log(C / C[-1]), 20) * sqrt(252) > 0.4Annualized 20-day volatility above 40% |
move | English → rule | Was today's move bigger than 1.5 ATR? |
shock | rule | zscore(C / C[-1] - 1, 20) < -2A two-sigma down day |
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 |
|---|---|---|
atr3A typical day moves more than 3% | 0.9463 | true |
hvAnnualized 20-day volatility above 40% | 0.9336 | true |
moveWas today's move bigger than 1.5 ATR compiled to abs(C - C[-1]) > 1.5 * atr(14) | 0.0702 | false |
shockA two-sigma down day | 0.099 | false |
drop10A 10% drawdown within a month | 0.752 | 75% · likely |
Actions
Rules on the answers decide what to send.
atr3 >= 0.6 or hv >= 0.6→Webhookcommunity-discord{
"content": "Risk note on SMCI (2026-10-30): ATR over 3% 95%, HV over 40% 93%, 10% drawdown odds 75%. Size small if you trade it."
}What it means
For SMCI on the session of 2026-10-30: True now: A typical day moves more than 3%; Annualized 20-day volatility above 40%. Not true: Was today's move bigger than 1.5 ATR; A two-sigma down day. Forecasts: A 10% drawdown within a month 75%. Fired: warn (Webhook → community-discord).
The warning goes out on volatility rules, not on direction, so it helps both bulls and bears size sensibly.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "SMCI"
},
"questions": {
"atr3": {
"type": "yes_no",
"ask": "atr_pct(14) > 3"
},
"hv": {
"type": "yes_no",
"ask": "std(log(C / C[-1]), 20) * sqrt(252) > 0.4"
},
"move": {
"type": "yes_no",
"instructions": "Was today's move bigger than 1.5 ATR?"
},
"shock": {
"type": "yes_no",
"ask": "zscore(C / C[-1] - 1, 20) < -2"
},
"drop10": {
"type": "yes_no",
"instructions": "Will it drop at least 10% at some point in the next month?"
}
},
"actions": [
{
"id": "warn",
"when": "atr3 >= 0.6 or hv >= 0.6",
"do": "webhook",
"connection": "community-discord",
"body": {
"content": "Risk note on {{symbol}} ({{as_of}}): ATR over 3% {{atr3|pct}}, HV over 40% {{hv|pct}}, 10% drawdown odds {{drop10|pct}}. Size small if you trade it."
}
}
],
"dry_run": true
}Response JSON (SMCI, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"atr3": {
"yes_no": 0.9463,
"rule": "atr_pct(14) > 3",
"basis": "rule"
},
"hv": {
"yes_no": 0.9336,
"rule": "std(log(C / C[-1]), 20) * sqrt(252) > 0.4",
"basis": "rule"
},
"move": {
"yes_no": 0.0702,
"rule": "abs(C - C[-1]) > 1.5 * atr(14)",
"basis": "pattern"
},
"shock": {
"yes_no": 0.099,
"rule": "zscore(C / C[-1] - 1, 20) < -2",
"basis": "rule"
},
"drop10": {
"yes_no": 0.752
}
},
"context": {
"symbol": "SMCI",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "warn",
"fired": true,
"status": "dry_run",
"do": "webhook",
"connection": "community-discord",
"preview": {
"body": {
"content": "Risk note on SMCI (2026-10-30): ATR over 3% 95%, HV over 40% 93%, 10% drawdown odds 75%. Size small if you trade it."
}
}
}
]
}Social trading community · example 7
Three white soldiers in MU?
A member spotted three strong green candles. Check the pattern, the volume behind it and where it sits against the 50-day.
- StateMU
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"MU"} The server fills in the latest completed session.
Questions
soldiers | rule | three_white_soldiers()three white soldiers candle: Three green bars, each closing higher and opening inside the previous body. |
green3 | English → rule | Were the last 3 candles all green? |
volume | rule | V > avg(V, 20)Volume above its 20-day average |
above_50d | rule | C > sma(C, 50)Above the 50-day average |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Question | Answer | Reading |
|---|---|---|
soldiersthree white soldiers candle: Three green bars, each closing higher and opening inside the previous body. | 0.0647 | false |
green3Were the last 3 candles all green compiled to (C > O) and (C[-1] > O[-1]) and (C[-2] > O[-2]) | 0.1097 | false |
volumeVolume above its 20-day average | 0.7811 | true |
above_50dAbove the 50-day average | 0.1166 | false |
up_weekHigher in a week | 0.606 | 61% · likely |
What it means
For MU on the session of 2026-10-30: True now: Volume above its 20-day average. Not true: three white soldiers candle: Three green bars, each closing higher and opening inside the previous body.; Were the last 3 candles all green; Above the 50-day average. Forecasts: Higher in a week 61%.
The pattern function is stricter than three green candles (each opens inside the last body); the volume rule says whether it had participation.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "MU"
},
"questions": {
"soldiers": {
"type": "yes_no",
"ask": "three_white_soldiers()"
},
"green3": {
"type": "yes_no",
"instructions": "Were the last 3 candles all green?"
},
"volume": {
"type": "yes_no",
"ask": "V > avg(V, 20)"
},
"above_50d": {
"type": "yes_no",
"ask": "C > sma(C, 50)"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Response JSON (MU, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"soldiers": {
"yes_no": 0.0647,
"rule": "three_white_soldiers()",
"basis": "rule"
},
"green3": {
"yes_no": 0.1097,
"rule": "(C > O) and (C[-1] > O[-1]) and (C[-2] > O[-2])",
"basis": "pattern"
},
"volume": {
"yes_no": 0.7811,
"rule": "V > avg(V, 20)",
"basis": "rule"
},
"above_50d": {
"yes_no": 0.1166,
"rule": "C > sma(C, 50)",
"basis": "rule"
},
"up_week": {
"yes_no": 0.606
}
},
"context": {
"symbol": "MU",
"as_of": "2026-10-30"
}
}Social trading community · example 8
Gap recap: did INTC gap up or down, and did it hold?
A morning recap post: unfilled gap patterns, gap size against ATR and whether the gap reclaimed or faded by the close.
- StateINTC
- Questions6 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"INTC"} The server fills in the latest completed session.
Questions
gap_up | rule | gap_up()gap up candle: Today's whole range is above yesterday's high: an unfilled gap up. |
gap_down | rule | gap_down()gap down candle: Today's whole range is below yesterday's low. |
gap_atr | rule | abs(O - C[-1]) > 0.5 * ref(atr(14), -1)Gap bigger than half an ATR |
faded | rule | O > C[-1] and C < C[-1]Gapped up but closed under yesterday's close |
reclaimed | rule | O < L[-1] and C > C[-1]Opened under yesterday's low, closed up on the day |
gap_tomorrow | forecast | Will it gap down tomorrow? A gap down tomorrow |
Answers
| Question | Answer | Reading |
|---|---|---|
gap_upgap up candle: Today's whole range is above yesterday's high: an unfilled gap up. | 0.0537 | false |
gap_downgap down candle: Today's whole range is below yesterday's low. | 0.9463 | true |
gap_atrGap bigger than half an ATR | 0.9463 | true |
fadedGapped up but closed under yesterday's close | 0.0537 | false |
reclaimedOpened under yesterday's low, closed up on the day | 0.0537 | false |
gap_tomorrowA gap down tomorrow | 0.319 | 32% · unlikely |
What it means
For INTC on the session of 2026-10-30: True now: gap down candle: Today's whole range is below yesterday's low.; Gap bigger than half an ATR. Not true: gap up candle: Today's whole range is above yesterday's high: an unfilled gap up.; Gapped up but closed under yesterday's close; Opened under yesterday's low, closed up on the day. Forecasts: A gap down tomorrow 32%.
gap_up() and gap_down() are unfilled gaps (the whole range beyond yesterday); the fade and reclaim rules describe what happened during the day.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "INTC"
},
"questions": {
"gap_up": {
"type": "yes_no",
"ask": "gap_up()"
},
"gap_down": {
"type": "yes_no",
"ask": "gap_down()"
},
"gap_atr": {
"type": "yes_no",
"ask": "abs(O - C[-1]) > 0.5 * ref(atr(14), -1)"
},
"faded": {
"type": "yes_no",
"ask": "O > C[-1] and C < C[-1]"
},
"reclaimed": {
"type": "yes_no",
"ask": "O < L[-1] and C > C[-1]"
},
"gap_tomorrow": {
"type": "yes_no",
"instructions": "Will it gap down tomorrow?"
}
}
}Response JSON (INTC, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"gap_up": {
"yes_no": 0.0537,
"rule": "gap_up()",
"basis": "rule"
},
"gap_down": {
"yes_no": 0.9463,
"rule": "gap_down()",
"basis": "rule"
},
"gap_atr": {
"yes_no": 0.9463,
"rule": "abs(O - C[-1]) > 0.5 * ref(atr(14), -1)",
"basis": "rule"
},
"faded": {
"yes_no": 0.0537,
"rule": "O > C[-1] and C < C[-1]",
"basis": "rule"
},
"reclaimed": {
"yes_no": 0.0537,
"rule": "O < L[-1] and C > C[-1]",
"basis": "rule"
},
"gap_tomorrow": {
"yes_no": 0.319
}
},
"context": {
"symbol": "INTC",
"as_of": "2026-10-30"
}
}Social trading community · example 9
Weekly momentum leaderboard: QQQ, SMH, XLE, XLF, XLV, XLU
Rank sector ETFs every Friday by momentum and trend, posted as one line per fund to the community Slack.
- ScheduleFri at 16:30 ET
- State6 symbols
- Questions4 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"QQQ"} then SMH, XLE, XLF, XLV, XLU, one request each. The server fills in the latest completed session.
Questions
roc | rule | roc(C, 20) > 5Up more than 5% in 20 sessions |
quarter | rule | roc(C, 63) > 10 and C >= 0.95 * max(H, 63)Up more than 10% in a quarter, near the high |
trend | rule | C > sma(C, 50)Above the 50-day average |
beat_spy | forecast | Will it beat SPY over the next month? Beating SPY over a month |
Answers
| Symbol | rocrule | quarterrule | trendrule | beat_spyforecast | Fired |
|---|---|---|---|---|---|
QQQ | 0.0537 | 0.0537 | 0.0653 | 0.525 | line |
SMH | 0.054 | 0.0593 | 0.0829 | 0.538 | line |
XLE | 0.897 | 0.9336 | 0.9432 | 0.55 | line |
XLF | 0.606 | 0.0785 | 0.6692 | 0.448 | line |
XLV | 0.9157 | 0.8322 | 0.9447 | 0.534 | line |
XLU | 0.8282 | 0.0549 | 0.8865 | 0.445 | 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.
else→Slackcommunity-general{
"text": "QQQ (2026-10-30): 20-day ROC over 5% 5%, quarter leader 5%, above 50-day 7%, beats SPY next month 52%."
}{
"text": "SMH (2026-10-30): 20-day ROC over 5% 5%, quarter leader 6%, above 50-day 8%, beats SPY next month 54%."
}{
"text": "XLE (2026-10-30): 20-day ROC over 5% 90%, quarter leader 93%, above 50-day 94%, beats SPY next month 55%."
}{
"text": "XLF (2026-10-30): 20-day ROC over 5% 61%, quarter leader 8%, above 50-day 67%, beats SPY next month 45%."
}{
"text": "XLV (2026-10-30): 20-day ROC over 5% 92%, quarter leader 83%, above 50-day 94%, beats SPY next month 53%."
}{
"text": "XLU (2026-10-30): 20-day ROC over 5% 83%, quarter leader 5%, above 50-day 89%, beats SPY next month 44%."
}What it means
Session of 2026-10-30, 6 symbols: Up more than 5% in 20 sessions: true for XLE, XLF, XLV, XLU of 6. Up more than 10% in a quarter, near the high: true for XLE, XLV of 6. Above the 50-day average: true for XLE, XLF, XLV, XLU of 6. Highest odds for “Beating SPY over a month”: XLE at 55%. line fired for QQQ, SMH, XLE, XLF, XLV, XLU.
Every fund gets a line every Friday; the leaderboard is just the order members read them in.
As a scheduled workflow (Fri at 16: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": "Weekly momentum leaderboard: QQQ, SMH, XLE, XLF, XLV, XLU",
"symbols": "QQQ SMH XLE XLF XLV XLU",
"days": [
5
],
"at_time": "16:30",
"model": "ora-fin-0.1.1",
"questions": {
"roc": {
"type": "yes_no",
"ask": "roc(C, 20) > 5"
},
"quarter": {
"type": "yes_no",
"ask": "roc(C, 63) > 10 and C >= 0.95 * max(H, 63)"
},
"trend": {
"type": "yes_no",
"ask": "C > sma(C, 50)"
},
"beat_spy": {
"type": "yes_no",
"instructions": "Will it beat SPY over the next month?"
}
},
"actions": [
{
"id": "line",
"when": "else",
"do": "slack",
"connection": "community-general",
"message": "{{symbol}} ({{as_of}}): 20-day ROC over 5% {{roc|pct}}, quarter leader {{quarter|pct}}, above 50-day {{trend|pct}}, beats SPY next month {{beat_spy|pct}}."
}
]
}Request JSON (QQQ; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "QQQ"
},
"questions": {
"roc": {
"type": "yes_no",
"ask": "roc(C, 20) > 5"
},
"quarter": {
"type": "yes_no",
"ask": "roc(C, 63) > 10 and C >= 0.95 * max(H, 63)"
},
"trend": {
"type": "yes_no",
"ask": "C > sma(C, 50)"
},
"beat_spy": {
"type": "yes_no",
"instructions": "Will it beat SPY over the next month?"
}
},
"actions": [
{
"id": "line",
"when": "else",
"do": "slack",
"connection": "community-general",
"message": "{{symbol}} ({{as_of}}): 20-day ROC over 5% {{roc|pct}}, quarter leader {{quarter|pct}}, above 50-day {{trend|pct}}, beats SPY next month {{beat_spy|pct}}."
}
],
"dry_run": true
}Response JSON (QQQ, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"roc": {
"yes_no": 0.0537,
"rule": "roc(C, 20) > 5",
"basis": "rule"
},
"quarter": {
"yes_no": 0.0537,
"rule": "roc(C, 63) > 10 and C >= 0.95 * max(H, 63)",
"basis": "rule"
},
"trend": {
"yes_no": 0.0653,
"rule": "C > sma(C, 50)",
"basis": "rule"
},
"beat_spy": {
"yes_no": 0.525
}
},
"context": {
"symbol": "QQQ",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "line",
"fired": true,
"status": "dry_run",
"do": "slack",
"connection": "community-general",
"preview": {
"text": "QQQ (2026-10-30): 20-day ROC over 5% 5%, quarter leader 5%, above 50-day 7%, beats SPY next month 52%."
}
}
]
}Social trading community · example 10
Hanging man at the highs in COST?
Check a warning candle after a run, and whether the stock is actually at its highs when it prints.
- StateCOST
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"COST"} The server fills in the latest completed session.
Questions
hanging | rule | hanging_man()hanging man candle: Hammer shape, closing above the close five bars back. |
shooting | rule | shooting_star() and H > highest(H, 20)Shooting star at a 20-day high |
near_high | English → rule | Is the stock within 5% of its 52-week high? |
recent_high | rule | highestbars(H, 20) <= 3Set its 20-day high in the last four sessions |
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 |
|---|---|---|
hanginghanging man candle: Hammer shape, closing above the close five bars back. | 0.0612 | false |
shootingShooting star at a 20-day high | 0.0924 | false |
near_highIs the stock within 5% of its 52-week high compiled to abs(C / max(H, 252) - 1) <= 0.05 | 0.1824 | false |
recent_highSet its 20-day high in the last four sessions | 0.7184 | true |
drop5A 5% drawdown within a month | 0.319 | 32% · unlikely |
What it means
For COST on the session of 2026-10-30: True now: Set its 20-day high in the last four sessions. Not true: hanging man candle: Hammer shape, closing above the close five bars back.; Shooting star at a 20-day high; Is the stock within 5% of its 52-week high. Forecasts: A 5% drawdown within a month 32%.
A hanging man only matters near a high; the recent-high rule (highestbars) says how many bars ago the top was.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "COST"
},
"questions": {
"hanging": {
"type": "yes_no",
"ask": "hanging_man()"
},
"shooting": {
"type": "yes_no",
"ask": "shooting_star() and H > highest(H, 20)"
},
"near_high": {
"type": "yes_no",
"instructions": "Is the stock within 5% of its 52-week high?"
},
"recent_high": {
"type": "yes_no",
"ask": "highestbars(H, 20) <= 3"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
}
}Response JSON (COST, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"hanging": {
"yes_no": 0.0612,
"rule": "hanging_man()",
"basis": "rule"
},
"shooting": {
"yes_no": 0.0924,
"rule": "shooting_star() and H > highest(H, 20)",
"basis": "rule"
},
"near_high": {
"yes_no": 0.1824,
"rule": "abs(C / max(H, 252) - 1) <= 0.05",
"basis": "comparison"
},
"recent_high": {
"yes_no": 0.7184,
"rule": "highestbars(H, 20) <= 3",
"basis": "rule"
},
"drop5": {
"yes_no": 0.319
}
},
"context": {
"symbol": "COST",
"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 Individuals: Retail investor, Active day trader, Swing trader, Options trader, Dividend investor, Long-term passive investor, Crypto trader, FX trader, Commodities trader, Students and universities.