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 11–20 of 20 · page 2 of 2
Social trading community · example 11
Tweezer bottom at support in BA?
A member calls a double-low reversal. Check the tweezer pattern, support and the trend it sits in.
- StateBA
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"BA"} The server fills in the latest completed session.
Questions
tweezer | rule | tweezer_bottom()tweezer bottom candle: Red then green, with lows within 0.1% of each other. |
near_sup | rule | C >= swinglow(5) and C <= 1.03 * swinglow(5)Within 3% above the last swing low |
failed_bd | rule | L < lowest(L, 20) and C > lowest(L, 20)Undercut the 20-day low and closed back above it |
below_200d | English → rule | Is the stock below its 200-day moving average? |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Question | Answer | Reading |
|---|---|---|
tweezertweezer bottom candle: Red then green, with lows within 0.1% of each other. | 0.1092 | false |
near_supWithin 3% above the last swing low | 0.1473 | false |
failed_bdUndercut the 20-day low and closed back above it | 0.225 | false |
below_200dIs the stock below its 200-day moving average compiled to C < sma(C, 200) | 0.9446 | true |
up_weekHigher in a week | 0.352 | 35% · unlikely |
What it means
For BA on the session of 2026-10-30: True now: Is the stock below its 200-day moving average. Not true: tweezer bottom candle: Red then green, with lows within 0.1% of each other.; Within 3% above the last swing low; Undercut the 20-day low and closed back above it. Forecasts: Higher in a week 35%.
A tweezer at support with a failed breakdown is a cleaner reversal story than the candle alone; the trend rule keeps it honest.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "BA"
},
"questions": {
"tweezer": {
"type": "yes_no",
"ask": "tweezer_bottom()"
},
"near_sup": {
"type": "yes_no",
"ask": "C >= swinglow(5) and C <= 1.03 * swinglow(5)"
},
"failed_bd": {
"type": "yes_no",
"ask": "L < lowest(L, 20) and C > lowest(L, 20)"
},
"below_200d": {
"type": "yes_no",
"instructions": "Is the stock below its 200-day moving average?"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Response JSON (BA, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"tweezer": {
"yes_no": 0.1092,
"rule": "tweezer_bottom()",
"basis": "rule"
},
"near_sup": {
"yes_no": 0.1473,
"rule": "C >= swinglow(5) and C <= 1.03 * swinglow(5)",
"basis": "rule"
},
"failed_bd": {
"yes_no": 0.225,
"rule": "L < lowest(L, 20) and C > lowest(L, 20)",
"basis": "rule"
},
"below_200d": {
"yes_no": 0.9446,
"rule": "C < sma(C, 200)",
"basis": "comparison"
},
"up_week": {
"yes_no": 0.352
}
},
"context": {
"symbol": "BA",
"as_of": "2026-10-30"
}
}Social trading community · example 12
Review a member's trade idea in DIS before it gets posted
Moderators check every idea against the same risk rules: liquidity, stop distance and risk/reward. The verdict goes by email.
- StateDIS
- Questions5 asked
- Answersreal, captured
- Actions2 rules · dry run
State
{"symbol":"DIS"} The server fills in the latest completed session.
Questions
liquid | rule | avg(C * V, 20) > 100000000Trades more than $100 million a day |
stop | English → rule | Is a stop below yesterday's low less than 1 ATR away? |
rr | rule | C > swinglow(5) and C < swinghigh(5) and swinghigh(5) - C >= 2 * (C - swinglow(5))At least 2:1 to the last swing high, stop at the last swing low |
earn_clear | rule | C > sma(C, 50) and days_to_earnings > 5Above the 50-day, no earnings in the next 5 days |
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 |
|---|---|---|
liquidTrades more than $100 million a day | 0.9463 | true |
stopIs a stop below yesterday's low less than 1 ATR away compiled to (C > L[-1]) and (C - L[-1] < 1 * atr(14)) | 0.6758 | true |
rrAt least 2:1 to the last swing high, stop at the last swing low | 0.1174 | false |
earn_clearAbove the 50-day, no earnings in the next 5 days | 0.8885 | true |
drop5A 5% drawdown within a month | 0.325 | 33% · unlikely |
Actions
Rules on the answers decide what to send.
liquid >= 0.6 and rr >= 0.6→Emailmoderatorselse→Emailmoderators{
"subject": "Idea needs work: DIS",
"text": "DIS (2026-10-30): risk/reward 12%, liquid 95%. Ask the member to adjust the stop or target."
}What it means
For DIS on the session of 2026-10-30: True now: Trades more than $100 million a day; Is a stop below yesterday's low less than 1 ATR away; Above the 50-day, no earnings in the next 5 days. Not true: At least 2:1 to the last swing high, stop at the last swing low. Forecasts: A 5% drawdown within a month 33%. Fired: needs_work (Email → moderators).
Moderators get a verdict either way, and the rules are the same for every member's idea.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "DIS"
},
"questions": {
"liquid": {
"type": "yes_no",
"ask": "avg(C * V, 20) > 100000000"
},
"stop": {
"type": "yes_no",
"instructions": "Is a stop below yesterday's low less than 1 ATR away?"
},
"rr": {
"type": "yes_no",
"ask": "C > swinglow(5) and C < swinghigh(5) and swinghigh(5) - C >= 2 * (C - swinglow(5))"
},
"earn_clear": {
"type": "yes_no",
"ask": "C > sma(C, 50) and days_to_earnings > 5"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
},
"actions": [
{
"id": "approve",
"when": "liquid >= 0.6 and rr >= 0.6",
"do": "email",
"connection": "moderators",
"subject": "Idea OK: {{symbol}}",
"message": "{{symbol}} ({{as_of}}) passes: liquid, risk/reward at least 2:1 ({{rr|pct}}). Stop within 1 ATR {{stop|pct}}, clear of earnings {{earn_clear|pct}}."
},
{
"id": "needs_work",
"when": "else",
"do": "email",
"connection": "moderators",
"subject": "Idea needs work: {{symbol}}",
"message": "{{symbol}} ({{as_of}}): risk/reward {{rr|pct}}, liquid {{liquid|pct}}. Ask the member to adjust the stop or target."
}
],
"dry_run": true
}Response JSON (DIS, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"liquid": {
"yes_no": 0.9463,
"rule": "avg(C * V, 20) > 100000000",
"basis": "rule"
},
"stop": {
"yes_no": 0.6758,
"rule": "(C > L[-1]) and (C - L[-1] < 1 * atr(14))",
"basis": "pattern"
},
"rr": {
"yes_no": 0.1174,
"rule": "C > swinglow(5) and C < swinghigh(5) and swinghigh(5) - C >= 2 * (C - swinglow(5))",
"basis": "rule"
},
"earn_clear": {
"yes_no": 0.8885,
"rule": "C > sma(C, 50) and days_to_earnings > 5",
"basis": "rule"
},
"drop5": {
"yes_no": 0.325
}
},
"context": {
"symbol": "DIS",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "approve",
"fired": false,
"status": "skipped"
},
{
"id": "needs_work",
"fired": true,
"status": "dry_run",
"do": "email",
"connection": "moderators",
"preview": {
"subject": "Idea needs work: DIS",
"text": "DIS (2026-10-30): risk/reward 12%, liquid 95%. Ask the member to adjust the stop or target."
}
}
]
}Social trading community · example 13
Trend-following club: is SPY still a hold?
The club's one rule is to hold SPY above the 200-day. Post the status every weekday after the close.
- ScheduleMon–Fri at 16:20 ET
- StateSPY
- Questions4 asked
- Answersreal, captured
- Actions2 rules · dry run
State
{"symbol":"SPY"} The server fills in the latest completed session.
Questions
above_200d | English → rule | Is the stock above its 200-day moving average? |
days_up | rule | sum(C > sma(C, 200), 20) >= 15Above the 200-day on at least 15 of the last 20 closes |
slope | rule | sma(C, 200) > ref(sma(C, 200), -20)The 200-day average is rising |
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 |
|---|---|---|
above_200dIs the stock above its 200-day moving average compiled to C > sma(C, 200) | 0.9451 | true |
days_upAbove the 200-day on at least 15 of the last 20 closes | 0.9418 | true |
slopeThe 200-day average is rising | 0.9463 | true |
drop5A 5% drawdown within a month | 0.203 | 20% · unlikely |
Actions
Rules on the answers decide what to send.
above_200d >= 0.6→Slackcommunity-generalelse→Slackcommunity-general{
"text": "SPY (2026-10-30): above the 200-day. Hold. (15 of 20 closes above: 94%)"
}What it means
For SPY on the session of 2026-10-30: True now: Is the stock above its 200-day moving average; Above the 200-day on at least 15 of the last 20 closes; The 200-day average is rising. Forecasts: A 5% drawdown within a month 20%. Fired: status (Slack → community-general).
A simple, public rule posted every day keeps the club consistent; the forecast is shown for context only.
As a scheduled workflow (Mon–Fri at 16:20 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": "Trend-following club: is SPY still a hold?",
"symbols": "SPY",
"days": [
1,
2,
3,
4,
5
],
"at_time": "16:20",
"model": "ora-fin-0.1.1",
"questions": {
"above_200d": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"days_up": {
"type": "yes_no",
"ask": "sum(C > sma(C, 200), 20) >= 15"
},
"slope": {
"type": "yes_no",
"ask": "sma(C, 200) > ref(sma(C, 200), -20)"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
},
"actions": [
{
"id": "status",
"when": "above_200d >= 0.6",
"do": "slack",
"connection": "community-general",
"message": "{{symbol}} ({{as_of}}): above the 200-day. Hold. (15 of 20 closes above: {{days_up|pct}})"
},
{
"id": "exit",
"when": "else",
"do": "slack",
"connection": "community-general",
"message": "{{symbol}} ({{as_of}}): closed under the 200-day. The club rule says step aside."
}
]
}Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "SPY"
},
"questions": {
"above_200d": {
"type": "yes_no",
"instructions": "Is the stock above its 200-day moving average?"
},
"days_up": {
"type": "yes_no",
"ask": "sum(C > sma(C, 200), 20) >= 15"
},
"slope": {
"type": "yes_no",
"ask": "sma(C, 200) > ref(sma(C, 200), -20)"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
},
"actions": [
{
"id": "status",
"when": "above_200d >= 0.6",
"do": "slack",
"connection": "community-general",
"message": "{{symbol}} ({{as_of}}): above the 200-day. Hold. (15 of 20 closes above: {{days_up|pct}})"
},
{
"id": "exit",
"when": "else",
"do": "slack",
"connection": "community-general",
"message": "{{symbol}} ({{as_of}}): closed under the 200-day. The club rule says step aside."
}
],
"dry_run": true
}Response JSON (SPY, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"above_200d": {
"yes_no": 0.9451,
"rule": "C > sma(C, 200)",
"basis": "comparison"
},
"days_up": {
"yes_no": 0.9418,
"rule": "sum(C > sma(C, 200), 20) >= 15",
"basis": "rule"
},
"slope": {
"yes_no": 0.9463,
"rule": "sma(C, 200) > ref(sma(C, 200), -20)",
"basis": "rule"
},
"drop5": {
"yes_no": 0.203
}
},
"context": {
"symbol": "SPY",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "status",
"fired": true,
"status": "dry_run",
"do": "slack",
"connection": "community-general",
"preview": {
"text": "SPY (2026-10-30): above the 200-day. Hold. (15 of 20 closes above: 94%)"
}
},
{
"id": "exit",
"fired": false,
"status": "skipped"
}
]
}Social trading community · example 14
Pivot-style levels for QQQ from yesterday's bar
Members like pivot levels. Check where the close sits against the bar's midpoint, typical price and OHLC average.
- StateQQQ
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"QQQ"} The server fills in the latest completed session.
Questions
above_mid | rule | C > hl2()Close above the bar's midpoint (H+L)/2 |
above_typ | rule | C > hlc3()Close above the typical price (H+L+C)/3 |
avg4 | rule | ohlc4() > ref(ohlc4(), -1)Today's OHLC average above yesterday's |
close_top | rule | (C - L) / (H - L) > 0.75Closed in the top quarter of the day's range |
up_tomorrow | forecast | Will the stock be up tomorrow? Up tomorrow |
Answers
| Question | Answer | Reading |
|---|---|---|
above_midClose above the bar's midpoint (H+L)/2 | 0.3629 | false |
above_typClose above the typical price (H+L+C)/3 | 0.3629 | false |
avg4Today's OHLC average above yesterday's | 0.0537 | false |
close_topClosed in the top quarter of the day's range | 0.1376 | false |
up_tomorrowUp tomorrow | 0.533 | 53% · close to even |
What it means
For QQQ on the session of 2026-10-30: Not true: Close above the bar's midpoint (H+L)/2; Close above the typical price (H+L+C)/3; Today's OHLC average above yesterday's; Closed in the top quarter of the day's range. Forecasts: Up tomorrow 53%.
These are the building blocks of pivot levels, answered exactly; the tomorrow forecast is the model's odds, shown separately.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "QQQ"
},
"questions": {
"above_mid": {
"type": "yes_no",
"ask": "C > hl2()"
},
"above_typ": {
"type": "yes_no",
"ask": "C > hlc3()"
},
"avg4": {
"type": "yes_no",
"ask": "ohlc4() > ref(ohlc4(), -1)"
},
"close_top": {
"type": "yes_no",
"ask": "(C - L) / (H - L) > 0.75"
},
"up_tomorrow": {
"type": "yes_no",
"instructions": "Will the stock be up tomorrow?"
}
}
}Response JSON (QQQ, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"above_mid": {
"yes_no": 0.3629,
"rule": "C > hl2()",
"basis": "rule"
},
"above_typ": {
"yes_no": 0.3629,
"rule": "C > hlc3()",
"basis": "rule"
},
"avg4": {
"yes_no": 0.0537,
"rule": "ohlc4() > ref(ohlc4(), -1)",
"basis": "rule"
},
"close_top": {
"yes_no": 0.1376,
"rule": "(C - L) / (H - L) > 0.75",
"basis": "rule"
},
"up_tomorrow": {
"yes_no": 0.533
}
},
"context": {
"symbol": "QQQ",
"as_of": "2026-10-30"
}
}Social trading community · example 15
Bear case on PYPL: lower highs and a broken average
Members post short ideas too. Check lower swing highs, a death-cross setup and selling on volume.
- StatePYPL
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"PYPL"} The server fills in the latest completed session.
Questions
lower_high | rule | swinghigh(3, 1) < swinghigh(3, 2)Latest swing high below the one before |
death | rule | sma(C, 50) < sma(C, 200)50-day average below the 200-day |
down_vol | rule | C < C[-1] and V > 1.5 * ref(avg(V, 20), -1)Down on heavy volume |
below_50d | English → rule | Is the stock more than 5% below its 50-day moving average? |
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 |
|---|---|---|
lower_highLatest swing high below the one before | 0.1377 | false |
death50-day average below the 200-day | 0.0723 | false |
down_volDown on heavy volume | 0.3255 | false |
below_50dIs the stock more than 5% below its 50-day moving average compiled to C < sma(C, 50) * 0.95 | 0.1591 | false |
drop5A 5% drawdown within a month | 0.483 | 48% · close to even |
What it means
For PYPL on the session of 2026-10-30: Not true: Latest swing high below the one before; 50-day average below the 200-day; Down on heavy volume; Is the stock more than 5% below its 50-day moving average. Forecasts: A 5% drawdown within a month 48%.
The bear case is strongest when the structure (lower highs) and the averages agree; one without the other is a mixed picture.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "PYPL"
},
"questions": {
"lower_high": {
"type": "yes_no",
"ask": "swinghigh(3, 1) < swinghigh(3, 2)"
},
"death": {
"type": "yes_no",
"ask": "sma(C, 50) < sma(C, 200)"
},
"down_vol": {
"type": "yes_no",
"ask": "C < C[-1] and V > 1.5 * ref(avg(V, 20), -1)"
},
"below_50d": {
"type": "yes_no",
"instructions": "Is the stock more than 5% below its 50-day moving average?"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
}
}Response JSON (PYPL, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"lower_high": {
"yes_no": 0.1377,
"rule": "swinghigh(3, 1) < swinghigh(3, 2)",
"basis": "rule"
},
"death": {
"yes_no": 0.0723,
"rule": "sma(C, 50) < sma(C, 200)",
"basis": "rule"
},
"down_vol": {
"yes_no": 0.3255,
"rule": "C < C[-1] and V > 1.5 * ref(avg(V, 20), -1)",
"basis": "rule"
},
"below_50d": {
"yes_no": 0.1591,
"rule": "C < sma(C, 50) * 0.95",
"basis": "comparison"
},
"drop5": {
"yes_no": 0.483
}
},
"context": {
"symbol": "PYPL",
"as_of": "2026-10-30"
}
}Social trading community · example 16
How many days in a row has KO been up?
A fun stat members ask about: up-day streaks, net up days and how long since the last 20-day high.
- StateKO
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"KO"} The server fills in the latest completed session.
Questions
up3 | English → rule | Has the stock closed higher 3 days in a row? |
net_up | rule | sum(sign(C - C[-1]), 10) > 2More than two net up days in the last ten |
since_high | rule | barssince(C > highest(C, 20)) > 10More than 10 sessions since the last 20-day closing high |
mostly_up | rule | sum(C > C[-1], 10) >= 6Up on at least six of the last ten days |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Question | Answer | Reading |
|---|---|---|
up3Has the stock closed higher 3 days in a row compiled to (C > C[-1]) and (C[-1] > C[-2]) and (C[-2] > C[-3]) | 0.768 | true |
net_upMore than two net up days in the last ten | 0.1928 | false |
since_highMore than 10 sessions since the last 20-day closing high | 0.289 | false |
mostly_upUp on at least six of the last ten days | 0.1928 | false |
up_weekHigher in a week | 0.549 | 55% · close to even |
What it means
For KO on the session of 2026-10-30: True now: Has the stock closed higher 3 days in a row. Not true: More than two net up days in the last ten; More than 10 sessions since the last 20-day closing high; Up on at least six of the last ten days. Forecasts: Higher in a week 55%.
sign() turns each day into up or down and sum() counts them; barssince() says how stale the last breakout is.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "KO"
},
"questions": {
"up3": {
"type": "yes_no",
"instructions": "Has the stock closed higher 3 days in a row?"
},
"net_up": {
"type": "yes_no",
"ask": "sum(sign(C - C[-1]), 10) > 2"
},
"since_high": {
"type": "yes_no",
"ask": "barssince(C > highest(C, 20)) > 10"
},
"mostly_up": {
"type": "yes_no",
"ask": "sum(C > C[-1], 10) >= 6"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Response JSON (KO, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"up3": {
"yes_no": 0.768,
"rule": "(C > C[-1]) and (C[-1] > C[-2]) and (C[-2] > C[-3])",
"basis": "pattern"
},
"net_up": {
"yes_no": 0.1928,
"rule": "sum(sign(C - C[-1]), 10) > 2",
"basis": "rule"
},
"since_high": {
"yes_no": 0.289,
"rule": "barssince(C > highest(C, 20)) > 10",
"basis": "rule"
},
"mostly_up": {
"yes_no": 0.1928,
"rule": "sum(C > C[-1], 10) >= 6",
"basis": "rule"
},
"up_week": {
"yes_no": 0.549
}
},
"context": {
"symbol": "KO",
"as_of": "2026-10-30"
}
}Social trading community · example 17
Dividend crew: PEP, JNJ and MO income check
The income channel tracks three payers: yield, growth record, ex-dates and any cut.
- State3 symbols
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"PEP"} then JNJ, MO, one request each. The server fills in the latest completed session.
Questions
yield3 | rule | div_yield_ttm > 3Yield above 3% |
grow10 | English → rule | Has the stock grown its dividend for 10 years in a row? |
ex_soon | rule | days_to_ex_div <= 30Goes ex-dividend within 30 days |
cut | English → rule | Did the stock cut its dividend last time? |
raise | forecast | Will the company raise its dividend next year? Raising the dividend next year |
Answers
| Symbol | yield3rule | grow10rule | ex_soonrule | cutrule | raiseforecast |
|---|---|---|---|---|---|
PEP | 0.9463 | 0.9463 | 0.0537 | 0.1409 | 0.496 |
JNJ | 0.0648 | 0.9463 | 0.9187 | 0.1409 | 0.495 |
MO | 0.9463 | 0.9463 | 0.0537 | 0.1409 | 0.551 |
true false not known for rules; forecasts are odds. Hover a column for its question.
What it means
Session of 2026-10-30, 3 symbols: Yield above 3%: true for PEP, MO of 3. Has the stock grown its dividend for 10 years in a row: true for PEP, JNJ, MO of 3. Goes ex-dividend within 30 days: true for JNJ of 3. Did the stock cut its dividend last time: true for none of 3. Highest odds for “Raising the dividend next year”: MO at 55%.
Dividend facts come from the payment record; the raise-next-year question is the model's odds and is shown as such.
Request JSON (PEP; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "PEP"
},
"questions": {
"yield3": {
"type": "yes_no",
"ask": "div_yield_ttm > 3"
},
"grow10": {
"type": "yes_no",
"instructions": "Has the stock grown its dividend for 10 years in a row?"
},
"ex_soon": {
"type": "yes_no",
"ask": "days_to_ex_div <= 30"
},
"cut": {
"type": "yes_no",
"instructions": "Did the stock cut its dividend last time?"
},
"raise": {
"type": "yes_no",
"instructions": "Will the company raise its dividend next year?"
}
}
}Response JSON (PEP, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"yield3": {
"yes_no": 0.9463,
"rule": "div_yield_ttm > 3",
"basis": "rule"
},
"grow10": {
"yes_no": 0.9463,
"rule": "years_of_growth >= 10",
"basis": "pattern"
},
"ex_soon": {
"yes_no": 0.0537,
"rule": "days_to_ex_div <= 30",
"basis": "rule"
},
"cut": {
"yes_no": 0.1409,
"rule": "cut_last > 0.5",
"basis": "pattern"
},
"raise": {
"yes_no": 0.496
}
},
"context": {
"symbol": "PEP",
"as_of": "2026-10-30"
}
}Social trading community · example 18
Relay community signals to a Microsoft Teams channel
Some members follow on Teams. Send the same MACD-cross signal on ORCL to a Teams incoming webhook.
- StateORCL
- Questions4 asked
- Answersreal, captured
- Actions2 rules · dry run
State
{"symbol":"ORCL"} The server fills in the latest completed session.
Questions
macd_x | English → rule | Did MACD cross above its signal line today? |
zero | English → rule | Is MACD above zero? |
trend | 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 |
|---|---|---|
macd_xDid MACD cross above its signal line today compiled to (macd(C) > macdsignal(C)) and (ref(macd(C), -1) <= ref(macdsignal(C), -1)) | 0.2101 | false |
zeroIs MACD above zero compiled to macd(C) > 0 | 0.1486 | false |
trendAbove the 50-day average | 0.1242 | false |
up_weekHigher in a week | 0.407 | 41% · close to even |
Actions
Rules on the answers decide what to send.
macd_x >= 0.6→Webhookcommunity-teamsmacd_x >= 0.6→Webhookcommunity-discordWhat it means
For ORCL on the session of 2026-10-30: Not true: Did MACD cross above its signal line today; Is MACD above zero; Above the 50-day average. Forecasts: Higher in a week 41%. No action fired: every rule was false.
One rule, two destinations: the Teams body uses text and the Discord body uses content, each shaped the way the platform expects.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "ORCL"
},
"questions": {
"macd_x": {
"type": "yes_no",
"instructions": "Did MACD cross above its signal line today?"
},
"zero": {
"type": "yes_no",
"instructions": "Is MACD above zero?"
},
"trend": {
"type": "yes_no",
"ask": "C > sma(C, 50)"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
},
"actions": [
{
"id": "teams",
"when": "macd_x >= 0.6",
"do": "webhook",
"connection": "community-teams",
"body": {
"text": "{{symbol}} ({{as_of}}): MACD crossed above its signal. Above zero {{zero|pct}}, above 50-day {{trend|pct}}, higher in a week {{up_week|pct}}."
}
},
{
"id": "discord",
"when": "macd_x >= 0.6",
"do": "webhook",
"connection": "community-discord",
"body": {
"content": "{{symbol}} MACD cross-up ({{as_of}}). Higher in a week {{up_week|pct}}."
}
}
],
"dry_run": true
}Response JSON (ORCL, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"macd_x": {
"yes_no": 0.2101,
"rule": "(macd(C) > macdsignal(C)) and (ref(macd(C), -1) <= ref(macdsignal(C), -1))",
"basis": "comparison"
},
"zero": {
"yes_no": 0.1486,
"rule": "macd(C) > 0",
"basis": "pattern"
},
"trend": {
"yes_no": 0.1242,
"rule": "C > sma(C, 50)",
"basis": "rule"
},
"up_week": {
"yes_no": 0.407
}
},
"context": {
"symbol": "ORCL",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "teams",
"fired": false,
"status": "skipped"
},
{
"id": "discord",
"fired": false,
"status": "skipped"
}
]
}Social trading community · example 19
Oversold, adjusted for the trend: CRM
The community's oversold rule uses a looser RSI line in uptrends and a stricter one in downtrends.
- StateCRM
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"CRM"} The server fills in the latest completed session.
Questions
regime_os | rule | rsi(C, 14) < iif(C > sma(C, 200), 40, 30)RSI under 40 in an uptrend, under 30 in a downtrend |
regime_lib | rule | (C > sma(C, 200) and rsi(C, 14) < 40) or (C < sma(C, 200) and rsi(C, 14) < 25)Oversold, with the line set by the trend |
upper_wick | rule | H - greatest(O, C) > 2 * abs(C - O)Upper wick more than twice the body |
bounce | forecast | Will it rally at least 5% at some point in the next month? A 5% rally within a month |
Answers
| Question | Answer | Reading |
|---|---|---|
regime_osRSI under 40 in an uptrend, under 30 in a downtrend | 0.3687 | false |
regime_libOversold, with the line set by the trend | 0.3598 | false |
upper_wickUpper wick more than twice the body | 0.4089 | on the line (false) |
bounceA 5% rally within a month | 0.733 | 73% · likely |
What it means
For CRM on the session of 2026-10-30: Not true: RSI under 40 in an uptrend, under 30 in a downtrend; Oversold, with the line set by the trend. On the line: Upper wick more than twice the body. Forecasts: A 5% rally within a month 73%.
iif() picks the threshold by trend inside one rule; the long upper wick check guards against buying into selling pressure.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "CRM"
},
"questions": {
"regime_os": {
"type": "yes_no",
"ask": "rsi(C, 14) < iif(C > sma(C, 200), 40, 30)"
},
"regime_lib": {
"type": "yes_no",
"ask": "(C > sma(C, 200) and rsi(C, 14) < 40) or (C < sma(C, 200) and rsi(C, 14) < 25)"
},
"upper_wick": {
"type": "yes_no",
"ask": "H - greatest(O, C) > 2 * abs(C - O)"
},
"bounce": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
}
}Response JSON (CRM, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"regime_os": {
"yes_no": 0.3687,
"rule": "rsi(C, 14) < iif(C > sma(C, 200), 40, 30)",
"basis": "rule"
},
"regime_lib": {
"yes_no": 0.3598,
"rule": "(C > sma(C, 200) and rsi(C, 14) < 40) or (C < sma(C, 200) and rsi(C, 14) < 25)",
"basis": "rule"
},
"upper_wick": {
"yes_no": 0.4089,
"rule": "H - greatest(O, C) > 2 * abs(C - O)",
"basis": "rule"
},
"bounce": {
"yes_no": 0.733
}
},
"context": {
"symbol": "CRM",
"as_of": "2026-10-30"
}
}Social trading community · example 20
What is NFLX's annualized volatility, really?
A member asks how volatility is calculated. Show the log-return formula as a rule next to the English question.
- StateNFLX
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"NFLX"} The server fills in the latest completed session.
Questions
hv_rule | rule | std(log(C / C[-1]), 20) * sqrt(252) > 0.320-day annualized volatility above 30% (log returns) |
hv_en | English → rule | Is 20-day historical volatility above 40%? |
low_bars | rule | lowestbars(L, 20) >= 15The 20-day low is at least 15 bars old |
vol_up | forecast | Will volatility be higher over the next month? Higher volatility next month |
Answers
| Question | Answer | Reading |
|---|---|---|
hv_rule20-day annualized volatility above 30% (log returns) | 0.8865 | true |
hv_enIs 20-day historical volatility above 40% compiled to std(log(C / C[-1]), 20) * sqrt(20 / 19) * sqrt(252) > 0.4 | 0.0786 | false |
low_barsThe 20-day low is at least 15 bars old | 0.0771 | false |
vol_upHigher volatility next month | 0.45 | 45% · close to even |
What it means
For NFLX on the session of 2026-10-30: True now: 20-day annualized volatility above 30% (log returns). Not true: Is 20-day historical volatility above 40%; The 20-day low is at least 15 bars old. Forecasts: Higher volatility next month 45%.
The English question compiles to nearly the same formula as the hand-written rule; posting both shows members exactly what was measured.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "NFLX"
},
"questions": {
"hv_rule": {
"type": "yes_no",
"ask": "std(log(C / C[-1]), 20) * sqrt(252) > 0.3"
},
"hv_en": {
"type": "yes_no",
"instructions": "Is 20-day historical volatility above 40%?"
},
"low_bars": {
"type": "yes_no",
"ask": "lowestbars(L, 20) >= 15"
},
"vol_up": {
"type": "yes_no",
"instructions": "Will volatility be higher over the next month?"
}
}
}Response JSON (NFLX, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"hv_rule": {
"yes_no": 0.8865,
"rule": "std(log(C / C[-1]), 20) * sqrt(252) > 0.3",
"basis": "rule"
},
"hv_en": {
"yes_no": 0.0786,
"rule": "std(log(C / C[-1]), 20) * sqrt(20 / 19) * sqrt(252) > 0.4",
"basis": "pattern"
},
"low_bars": {
"yes_no": 0.0771,
"rule": "lowestbars(L, 20) >= 15",
"basis": "rule"
},
"vol_up": {
"yes_no": 0.45
}
},
"context": {
"symbol": "NFLX",
"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.