Use cases · Individuals
Swing trader: 20 ways to use Ora
Holds for days to weeks: trend, pullback entries, swing structure, stops and risk/reward. Each example is a complete, runnable request with the real answers it returned (35 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 (47)
sma 8swinglow 8swinghigh 6highest 5ref 5atr 4ema 3offset 3min 3days_to_earnings 2adx 2avg 2diminus 2diplus 2rsi 2max 2roc 2linreg 1rma 1wma 1cci 1stochd 1stochk 1willr 1lowest 1bblower 1bbmid 1bbupper 1std 1engulfing_bull 1harami_bull 1piercing_line 1abs 1beat_streak 1last_earnings_move 1next_report_bmo 1mean 1rec 1barssince 1lowestbars 1crossdown 1dark_cloud 1engulfing_bear 1percentrank 1zscore 1cum 1log 1
Examples 11–20 of 20 · page 2 of 2
Swing trader · example 11
Hold or close a swing in NFLX before earnings
Swing traders often exit before a report; check the calendar and the stock's habit of big reactions.
- StateNFLX
- Questions5 asked
- Answersreal, captured
- Actions2 rules · dry run
State
{"symbol":"NFLX"} The server fills in the latest completed session.
Questions
soon | rule | days_to_earnings <= 10Reports earnings within 10 days |
big | rule | abs(last_earnings_move) > 5Last earnings move bigger than 5% |
streak | rule | beat_streak >= 4Beat four quarters in a row |
bmo | English → rule | Does the stock report before the market opens next time? |
big5 | forecast | Will there be a big move in either direction in the next 5 days? A big move either way in 5 days |
Answers
| Question | Answer | Reading |
|---|---|---|
soonReports earnings within 10 days | 0.0537 | false |
bigLast earnings move bigger than 5% | 0.9463 | true |
streakBeat four quarters in a row | 0.55 | on the line (true) |
bmoDoes the stock report before the market opens next time compiled to next_report_bmo > 0.5 | 0.1409 | false |
big5A big move either way in 5 days | 0.325 | 33% · unlikely |
Actions
Rules on the answers decide what to send.
soon >= 0.6 and big >= 0.6→Slackswing-deskelse→Slackswing-desk{
"text": "NFLX (2026-10-30): no earnings conflict (within 10 days 5%). Hold to plan."
}What it means
For NFLX on the session of 2026-10-30: True now: Last earnings move bigger than 5%. Not true: Reports earnings within 10 days; Does the stock report before the market opens next time. On the line: Beat four quarters in a row. Forecasts: A big move either way in 5 days 33%. Fired: hold (Slack → swing-desk).
If the report is within ten days and reactions are usually large, the swing is closed before the print.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "NFLX"
},
"questions": {
"soon": {
"type": "yes_no",
"ask": "days_to_earnings <= 10"
},
"big": {
"type": "yes_no",
"ask": "abs(last_earnings_move) > 5"
},
"streak": {
"type": "yes_no",
"ask": "beat_streak >= 4"
},
"bmo": {
"type": "yes_no",
"instructions": "Does the stock report before the market opens next time?"
},
"big5": {
"type": "yes_no",
"instructions": "Will there be a big move in either direction in the next 5 days?"
}
},
"actions": [
{
"id": "close_before",
"when": "soon >= 0.6 and big >= 0.6",
"do": "slack",
"connection": "swing-desk",
"message": "{{symbol}} ({{as_of}}): earnings within 10 days and the last reaction was over 5%. Close or hedge the swing."
},
{
"id": "hold",
"when": "else",
"do": "slack",
"connection": "swing-desk",
"message": "{{symbol}} ({{as_of}}): no earnings conflict (within 10 days {{soon|pct}}). Hold to plan."
}
],
"dry_run": true
}Response JSON (NFLX, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"soon": {
"yes_no": 0.0537,
"rule": "days_to_earnings <= 10",
"basis": "rule"
},
"big": {
"yes_no": 0.9463,
"rule": "abs(last_earnings_move) > 5",
"basis": "rule"
},
"streak": {
"yes_no": 0.55,
"rule": "beat_streak >= 4",
"basis": "rule"
},
"bmo": {
"yes_no": 0.1409,
"rule": "next_report_bmo > 0.5",
"basis": "pattern"
},
"big5": {
"yes_no": 0.325
}
},
"context": {
"symbol": "NFLX",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "close_before",
"fired": false,
"status": "skipped"
},
{
"id": "hold",
"fired": true,
"status": "dry_run",
"do": "slack",
"connection": "swing-desk",
"preview": {
"text": "NFLX (2026-10-30): no earnings conflict (within 10 days 5%). Hold to plan."
}
}
]
}abs beat_streak days_to_earnings last_earnings_move next_report_bmo
Swing trader · example 12
Adaptive average with rec(): is HD above its smoothed price
A recursive exponential smoother (10% per bar) as a trend line, written with rec().
- StateHD
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"HD"} The server fills in the latest completed session.
Questions
above_rec | rule | C > rec(C, self + 0.1 * (C - self))Above a recursive 10%-per-bar smoother |
above_ema | rule | C > ema(C, 20)Above the 20-day EMA |
mean100 | rule | C > mean(C, 100)Above the 100-day mean |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Question | Answer | Reading |
|---|---|---|
above_recAbove a recursive 10%-per-bar smoother | 0.9046 | true |
above_emaAbove the 20-day EMA | 0.9048 | true |
mean100Above the 100-day mean | 0.699 | true |
up_weekHigher in a week | 0.552 | 55% · close to even |
What it means
For HD on the session of 2026-10-30: True now: Above a recursive 10%-per-bar smoother; Above the 20-day EMA; Above the 100-day mean. Forecasts: Higher in a week 55%.
Above the adaptive line and the 100-day mean is a trend to stay with; below both is no long swing.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "HD"
},
"questions": {
"above_rec": {
"type": "yes_no",
"ask": "C > rec(C, self + 0.1 * (C - self))"
},
"above_ema": {
"type": "yes_no",
"ask": "C > ema(C, 20)"
},
"mean100": {
"type": "yes_no",
"ask": "C > mean(C, 100)"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Response JSON (HD, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"above_rec": {
"yes_no": 0.9046,
"rule": "C > rec(C, self + 0.1 * (C - self))",
"basis": "rule"
},
"above_ema": {
"yes_no": 0.9048,
"rule": "C > ema(C, 20)",
"basis": "rule"
},
"mean100": {
"yes_no": 0.699,
"rule": "C > mean(C, 100)",
"basis": "rule"
},
"up_week": {
"yes_no": 0.552
}
},
"context": {
"symbol": "HD",
"as_of": "2026-10-30"
}
}Swing trader · example 13
Basing after an old breakout: CRM
Has it been more than 30 sessions since the last breakout, and is the base tight?
- StateCRM
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"CRM"} The server fills in the latest completed session.
Questions
quiet | rule | barssince(C > highest(C, 20)) > 30No 20-day breakout for 30 sessions |
tight | rule | (max(H, 10) - min(L, 10)) / C < 0.05A tight 10-day base (under 5% of price) |
recent_low | rule | lowestbars(L, 20) >= 15The 20-day low is at least 15 bars old |
base_vol | rule | V < 0.6 * avg(V, 20)Volume under 60% of normal |
break_res | forecast | Will it break above resistance this week? Breaking resistance this week |
Answers
| Question | Answer | Reading |
|---|---|---|
quietNo 20-day breakout for 30 sessions | 0.0553 | false |
tightA tight 10-day base (under 5% of price) | 0.1218 | false |
recent_lowThe 20-day low is at least 15 bars old | 0.6005 | true |
base_volVolume under 60% of normal | 0.2454 | false |
break_resBreaking resistance this week | 0.544 | 54% · close to even |
What it means
For CRM on the session of 2026-10-30: True now: The 20-day low is at least 15 bars old. Not true: No 20-day breakout for 30 sessions; A tight 10-day base (under 5% of price); Volume under 60% of normal. Forecasts: Breaking resistance this week 54%.
A long, quiet, tight base with drying volume is a stock to set an alert above; it is not yet a trade.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "CRM"
},
"questions": {
"quiet": {
"type": "yes_no",
"ask": "barssince(C > highest(C, 20)) > 30"
},
"tight": {
"type": "yes_no",
"ask": "(max(H, 10) - min(L, 10)) / C < 0.05"
},
"recent_low": {
"type": "yes_no",
"ask": "lowestbars(L, 20) >= 15"
},
"base_vol": {
"type": "yes_no",
"ask": "V < 0.6 * avg(V, 20)"
},
"break_res": {
"type": "yes_no",
"instructions": "Will it break above resistance this week?"
}
}
}Response JSON (CRM, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"quiet": {
"yes_no": 0.0553,
"rule": "barssince(C > highest(C, 20)) > 30",
"basis": "rule"
},
"tight": {
"yes_no": 0.1218,
"rule": "(max(H, 10) - min(L, 10)) / C < 0.05",
"basis": "rule"
},
"recent_low": {
"yes_no": 0.6005,
"rule": "lowestbars(L, 20) >= 15",
"basis": "rule"
},
"base_vol": {
"yes_no": 0.2454,
"rule": "V < 0.6 * avg(V, 20)",
"basis": "rule"
},
"break_res": {
"yes_no": 0.544
}
},
"context": {
"symbol": "CRM",
"as_of": "2026-10-30"
}
}Swing trader · example 14
Rising weekly lows on COST
Each week's low above the week before is a clean swing uptrend in five-day blocks.
- StateCOST
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"COST"} The server fills in the latest completed session.
Questions
weekly_low | rule | min(L, 5) > ref(min(L, 5), -5)This week's low is above last week's |
range_exp | rule | (max(H, 5) - min(L, 5)) > 1.5 * ref(max(H, 5) - min(L, 5), -5)This week's range is 1.5× last week's |
leader | rule | roc(C, 63) > 10 and C >= 0.95 * max(H, 63)Up more than 10% in a quarter, near the high |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Question | Answer | Reading |
|---|---|---|
weekly_lowThis week's low is above last week's | 0.3501 | false |
range_expThis week's range is 1.5× last week's | 0.2177 | false |
leaderUp more than 10% in a quarter, near the high | 0.2031 | false |
up_weekHigher in a week | 0.519 | 52% · close to even |
What it means
For COST on the session of 2026-10-30: Not true: This week's low is above last week's; This week's range is 1.5× last week's; Up more than 10% in a quarter, near the high. Forecasts: Higher in a week 52%.
Rising weekly lows and quarter leadership keep the swing on; a range expansion week against it is the warning.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "COST"
},
"questions": {
"weekly_low": {
"type": "yes_no",
"ask": "min(L, 5) > ref(min(L, 5), -5)"
},
"range_exp": {
"type": "yes_no",
"ask": "(max(H, 5) - min(L, 5)) > 1.5 * ref(max(H, 5) - min(L, 5), -5)"
},
"leader": {
"type": "yes_no",
"ask": "roc(C, 63) > 10 and C >= 0.95 * max(H, 63)"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Response JSON (COST, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"weekly_low": {
"yes_no": 0.3501,
"rule": "min(L, 5) > ref(min(L, 5), -5)",
"basis": "rule"
},
"range_exp": {
"yes_no": 0.2177,
"rule": "(max(H, 5) - min(L, 5)) > 1.5 * ref(max(H, 5) - min(L, 5), -5)",
"basis": "rule"
},
"leader": {
"yes_no": 0.2031,
"rule": "roc(C, 63) > 10 and C >= 0.95 * max(H, 63)",
"basis": "rule"
},
"up_week": {
"yes_no": 0.519
}
},
"context": {
"symbol": "COST",
"as_of": "2026-10-30"
}
}Swing trader · example 15
Swing short setup in INTC: lower highs under the 50-day
Short only weak names: lower swing highs, below the 50-day, a bearish candle.
- StateINTC
- Questions6 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"INTC"} The server fills in the latest completed session.
Questions
lh_ll | English → rule | Is the stock making lower swing highs and lower swing lows? |
below50 | rule | C < sma(C, 50)Below the 50-day |
cross_dn | rule | crossdown(sma(C, 20), sma(C, 50))20-day crossed below the 50-day today |
bear | rule | engulfing_bear()engulfing bear candle: A red body that engulfs yesterday's green body. |
dark | rule | dark_cloud()dark cloud candle: After a green day, opens above its close and closes below the middle of its body (but above its open). |
down_week | forecast | Will the stock be lower in a week? Lower in a week |
Answers
| Question | Answer | Reading |
|---|---|---|
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.1552 | false |
below50Below the 50-day | 0.9415 | true |
cross_dn20-day crossed below the 50-day today | 0.05 | false |
bearengulfing bear candle: A red body that engulfs yesterday's green body. | 0.0537 | false |
darkdark cloud candle: After a green day, opens above its close and closes below the middle of its body (but above its open). | 0.0537 | false |
down_weekLower in a week | 0.541 | 54% · close to even |
Actions
Rules on the answers decide what to send.
lh_ll >= 0.6 and below50 >= 0.6 and (bear >= 0.6 or dark >= 0.6)→EmailmeWhat it means
For INTC on the session of 2026-10-30: True now: Below the 50-day. Not true: Is the stock making lower swing highs and lower swing lows; 20-day crossed below the 50-day today; engulfing bear candle: A red body that engulfs yesterday's green body.; dark cloud candle: After a green day, opens above its close and closes below the middle of its body (but above its open).. Forecasts: Lower in a week 54%. No action fired: every rule was false.
Lower pivots below a falling average plus a bearish candle is the short entry; without the structure, no short.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "INTC"
},
"questions": {
"lh_ll": {
"type": "yes_no",
"instructions": "Is the stock making lower swing highs and lower swing lows?"
},
"below50": {
"type": "yes_no",
"ask": "C < sma(C, 50)"
},
"cross_dn": {
"type": "yes_no",
"ask": "crossdown(sma(C, 20), sma(C, 50))"
},
"bear": {
"type": "yes_no",
"ask": "engulfing_bear()"
},
"dark": {
"type": "yes_no",
"ask": "dark_cloud()"
},
"down_week": {
"type": "yes_no",
"instructions": "Will the stock be lower in a week?"
}
},
"actions": [
{
"id": "short_idea",
"when": "lh_ll >= 0.6 and below50 >= 0.6 and (bear >= 0.6 or dark >= 0.6)",
"do": "email",
"connection": "me",
"subject": "Short setup: {{symbol}}",
"message": "{{symbol}} ({{as_of}}): lower swing highs and lows under the 50-day with a bearish candle. Lower in a week {{down_week|pct}}."
}
],
"dry_run": true
}Response JSON (INTC, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"lh_ll": {
"yes_no": 0.1552,
"rule": "(swinghigh(5, 1) < swinghigh(5, 2)) and (swinglow(5, 1) < swinglow(5, 2))",
"basis": "pattern"
},
"below50": {
"yes_no": 0.9415,
"rule": "C < sma(C, 50)",
"basis": "rule"
},
"cross_dn": {
"yes_no": 0.05,
"rule": "crossdown(sma(C, 20), sma(C, 50))",
"basis": "rule"
},
"bear": {
"yes_no": 0.0537,
"rule": "engulfing_bear()",
"basis": "rule"
},
"dark": {
"yes_no": 0.0537,
"rule": "dark_cloud()",
"basis": "rule"
},
"down_week": {
"yes_no": 0.541
}
},
"context": {
"symbol": "INTC",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "short_idea",
"fired": false,
"status": "skipped"
}
]
}Swing trader · example 16
Friday swing review: my watchlist after the close
Every Friday, the same setup questions over the swing watchlist, posted to Slack only where a setup exists.
- ScheduleFri at 17:00 ET
- State6 symbols
- Questions4 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"AAPL"} then MSFT, NVDA, AMD, AMZN, JPM, one request each. The server fills in the latest completed session.
Questions
entry | rule | C > sma(C, 200) and C < sma(C, 20) and rsi(C, 14) > 40Uptrend, under the 20-day, RSI still above 40 |
bo | rule | C > highest(C, 20)20-day closing breakout |
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 |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Symbol | entryrule | borule | rrrule | up_weekforecast | Fired |
|---|---|---|---|---|---|
AAPL | 0.3287 | 0.3146 | 0.4055 | 0.59 | none |
MSFT | 0.7427 | 0.0604 | 0.2721 | 0.574 | setup |
NVDA | 0.2184 | 0.0537 | 0.2736 | 0.527 | none |
AMD | 0.4783 | 0.0537 | 0.5233 | 0.577 | none |
AMZN | 0.3073 | 0.0545 | 0.3251 | 0.493 | none |
JPM | 0.3149 | 0.1865 | 0.3877 | 0.558 | none |
true false not known for rules; forecasts are odds. Hover a column for its question.
Actions
Rules on the answers decide what to send. Each symbol runs its own request, so each one can fire.
entry >= 0.6 or bo >= 0.6→Slackswing-desk{
"text": "MSFT (2026-10-30): setup for next week. Pullback entry 74%, 20-day breakout 6%, 2:1 reward 27%, higher in a week 57%."
}What it means
Session of 2026-10-30, 6 symbols: Uptrend, under the 20-day, RSI still above 40: true for MSFT of 6. 20-day closing breakout: true for none of 6. At least 2:1 to the last swing high, stop at the last swing low: true for none of 6. Highest odds for “Higher in a week”: AAPL at 59%. setup fired for MSFT.
The weekend list is whatever had an entry or a breakout; everything else waits a week.
As a scheduled workflow (Fri at 17:00 ET)
Create it under Workflows in the console: it runs these questions for every symbol on the schedule and fires the actions per symbol. The answers above are what one run returned.
{
"name": "Friday swing review: my watchlist after the close",
"symbols": "AAPL MSFT NVDA AMD AMZN JPM",
"days": [
5
],
"at_time": "17:00",
"model": "ora-fin-0.1.1",
"questions": {
"entry": {
"type": "yes_no",
"ask": "C > sma(C, 200) and C < sma(C, 20) and rsi(C, 14) > 40"
},
"bo": {
"type": "yes_no",
"ask": "C > highest(C, 20)"
},
"rr": {
"type": "yes_no",
"ask": "C > swinglow(5) and C < swinghigh(5) and swinghigh(5) - C >= 2 * (C - swinglow(5))"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
},
"actions": [
{
"id": "setup",
"when": "entry >= 0.6 or bo >= 0.6",
"do": "slack",
"connection": "swing-desk",
"message": "{{symbol}} ({{as_of}}): setup for next week. Pullback entry {{entry|pct}}, 20-day breakout {{bo|pct}}, 2:1 reward {{rr|pct}}, higher in a week {{up_week|pct}}."
}
]
}Request JSON (AAPL; the others differ only in the symbol)
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "AAPL"
},
"questions": {
"entry": {
"type": "yes_no",
"ask": "C > sma(C, 200) and C < sma(C, 20) and rsi(C, 14) > 40"
},
"bo": {
"type": "yes_no",
"ask": "C > highest(C, 20)"
},
"rr": {
"type": "yes_no",
"ask": "C > swinglow(5) and C < swinghigh(5) and swinghigh(5) - C >= 2 * (C - swinglow(5))"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
},
"actions": [
{
"id": "setup",
"when": "entry >= 0.6 or bo >= 0.6",
"do": "slack",
"connection": "swing-desk",
"message": "{{symbol}} ({{as_of}}): setup for next week. Pullback entry {{entry|pct}}, 20-day breakout {{bo|pct}}, 2:1 reward {{rr|pct}}, higher in a week {{up_week|pct}}."
}
],
"dry_run": true
}Response JSON (AAPL, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"entry": {
"yes_no": 0.3287,
"rule": "C > sma(C, 200) and C < sma(C, 20) and rsi(C, 14) > 40",
"basis": "rule"
},
"bo": {
"yes_no": 0.3146,
"rule": "C > highest(C, 20)",
"basis": "rule"
},
"rr": {
"yes_no": 0.4055,
"rule": "C > swinglow(5) and C < swinghigh(5) and swinghigh(5) - C >= 2 * (C - swinglow(5))",
"basis": "rule"
},
"up_week": {
"yes_no": 0.59
}
},
"context": {
"symbol": "AAPL",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "setup",
"fired": false,
"status": "skipped"
}
]
}Swing trader · example 17
Percent-rank strength: is GS's 3-month return near the top of its year
Rank today's momentum against its own last year instead of a fixed threshold.
- StateGS
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"GS"} The server fills in the latest completed session.
Questions
rank | rule | percentrank(roc(C, 63), 252) > 803-month return in the top 20% of the past year |
roc | rule | roc(C, 20) > 5Up more than 5% in 20 sessions |
zs | rule | zscore(C, 50) > 1Close more than 1 standard deviation above its 50-day mean |
rally5 | forecast | Will it rally at least 5% at some point in the next month? A 5% rally within a month |
Answers
| Question | Answer | Reading |
|---|---|---|
rank3-month return in the top 20% of the past year | 0.0537 | false |
rocUp more than 5% in 20 sessions | 0.1196 | false |
zsClose more than 1 standard deviation above its 50-day mean | 0.0604 | false |
rally5A 5% rally within a month | 0.615 | 62% · likely |
What it means
For GS on the session of 2026-10-30: Not true: 3-month return in the top 20% of the past year; Up more than 5% in 20 sessions; Close more than 1 standard deviation above its 50-day mean. Forecasts: A 5% rally within a month 62%.
Momentum in the top fifth of its own year is a leader to buy on pullbacks; a z-score above one says it is extended now.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "GS"
},
"questions": {
"rank": {
"type": "yes_no",
"ask": "percentrank(roc(C, 63), 252) > 80"
},
"roc": {
"type": "yes_no",
"ask": "roc(C, 20) > 5"
},
"zs": {
"type": "yes_no",
"ask": "zscore(C, 50) > 1"
},
"rally5": {
"type": "yes_no",
"instructions": "Will it rally at least 5% at some point in the next month?"
}
}
}Response JSON (GS, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"rank": {
"yes_no": 0.0537,
"rule": "percentrank(roc(C, 63), 252) > 80",
"basis": "rule"
},
"roc": {
"yes_no": 0.1196,
"rule": "roc(C, 20) > 5",
"basis": "rule"
},
"zs": {
"yes_no": 0.0604,
"rule": "zscore(C, 50) > 1",
"basis": "rule"
},
"rally5": {
"yes_no": 0.615
}
},
"context": {
"symbol": "GS",
"as_of": "2026-10-30"
}
}Swing trader · example 18
Cumulative up-vs-down days on PEP
Over the whole history loaded, have up days outnumbered down days, and is the recent stretch stronger?
- StatePEP
- Questions4 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"PEP"} The server fills in the latest completed session.
Questions
cum | rule | cum(C > C[-1]) > cum(C < C[-1])Up days outnumber down days over the loaded history |
two_up | rule | C > C[-1] and C[-1] > C[-2]Two higher closes in a row |
log_up | rule | log(C / C[-20]) > 0.03Log return over 20 sessions above 3% |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Question | Answer | Reading |
|---|---|---|
cumUp days outnumber down days over the loaded history | 0.9463 | true |
two_upTwo higher closes in a row | 0.8044 | true |
log_upLog return over 20 sessions above 3% | 0.8685 | true |
up_weekHigher in a week | 0.505 | 51% · close to even |
What it means
For PEP on the session of 2026-10-30: True now: Up days outnumber down days over the loaded history; Two higher closes in a row; Log return over 20 sessions above 3%. Forecasts: Higher in a week 51%.
A long-run up-day surplus with a rising month supports a swing long in a defensive name.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "PEP"
},
"questions": {
"cum": {
"type": "yes_no",
"ask": "cum(C > C[-1]) > cum(C < C[-1])"
},
"two_up": {
"type": "yes_no",
"ask": "C > C[-1] and C[-1] > C[-2]"
},
"log_up": {
"type": "yes_no",
"ask": "log(C / C[-20]) > 0.03"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Response JSON (PEP, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"cum": {
"yes_no": 0.9463,
"rule": "cum(C > C[-1]) > cum(C < C[-1])",
"basis": "rule"
},
"two_up": {
"yes_no": 0.8044,
"rule": "C > C[-1] and C[-1] > C[-2]",
"basis": "rule"
},
"log_up": {
"yes_no": 0.8685,
"rule": "log(C / C[-20]) > 0.03",
"basis": "rule"
},
"up_week": {
"yes_no": 0.505
}
},
"context": {
"symbol": "PEP",
"as_of": "2026-10-30"
}
}Swing trader · example 19
Risk/reward check sent to my journal (Zapier)
Log every planned swing with its reward-to-risk check to a trading journal through a Zapier webhook.
- StateUNH
- Questions5 asked
- Answersreal, captured
- Actions1 rule · dry run
State
{"symbol":"UNH"} The server fills in the latest completed session.
Questions
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 |
stop | rule | C > swinglow(5) and C - swinglow(5) < 1.5 * atr(14)A stop under the last swing low is within 1.5 ATR |
entry | English → rule | Is the stock in an uptrend with a pullback to the 20-day (entry zone)? |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
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 |
|---|---|---|
rrAt least 2:1 to the last swing high, stop at the last swing low | 0.1345 | false |
stopA stop under the last swing low is within 1.5 ATR | 0.1081 | false |
entryIs the stock in an uptrend with a pullback to the 20-day (entry zone) compiled to (C > sma(C, 50)) and (sma(C, 50) > sma(C, 200)) and (L <= sma(C, 20) * 1.01) and (C >= sma(C, 20)) | 0.3632 | false |
up_weekHigher in a week | 0.485 | 49% · close to even |
drop5A 5% drawdown within a month | 0.428 | 43% · close to even |
Actions
Rules on the answers decide what to send.
rr >= 0 →Webhookzapier-journal{
"symbol": "UNH",
"date": "2026-10-30",
"reward_2to1": 0.1345,
"stop_within_1_5_atr": 0.1081,
"entry_zone": 0.3632,
"p_up_week": 0.485,
"p_drop5": 0.428
}What it means
For UNH on the session of 2026-10-30: Not true: At least 2:1 to the last swing high, stop at the last swing low; A stop under the last swing low is within 1.5 ATR; Is the stock in an uptrend with a pullback to the 20-day (entry zone). Forecasts: Higher in a week 49%; A 5% drawdown within a month 43%. Fired: journal (Webhook → zapier-journal).
Every run is logged; the journal shows later whether 2:1 setups worked better than the rest.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "UNH"
},
"questions": {
"rr": {
"type": "yes_no",
"ask": "C > swinglow(5) and C < swinghigh(5) and swinghigh(5) - C >= 2 * (C - swinglow(5))"
},
"stop": {
"type": "yes_no",
"ask": "C > swinglow(5) and C - swinglow(5) < 1.5 * atr(14)"
},
"entry": {
"type": "yes_no",
"instructions": "Is the stock in an uptrend with a pullback to the 20-day (entry zone)?"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
},
"drop5": {
"type": "yes_no",
"instructions": "Will it drop at least 5% at some point in the next month?"
}
},
"actions": [
{
"id": "journal",
"when": "rr >= 0 ",
"do": "webhook",
"connection": "zapier-journal",
"body": {
"symbol": "{{symbol}}",
"date": "{{as_of}}",
"reward_2to1": "{{rr}}",
"stop_within_1_5_atr": "{{stop}}",
"entry_zone": "{{entry}}",
"p_up_week": "{{up_week}}",
"p_drop5": "{{drop5}}"
}
}
],
"dry_run": true
}Response JSON (UNH, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"rr": {
"yes_no": 0.1345,
"rule": "C > swinglow(5) and C < swinghigh(5) and swinghigh(5) - C >= 2 * (C - swinglow(5))",
"basis": "rule"
},
"stop": {
"yes_no": 0.1081,
"rule": "C > swinglow(5) and C - swinglow(5) < 1.5 * atr(14)",
"basis": "rule"
},
"entry": {
"yes_no": 0.3632,
"rule": "(C > sma(C, 50)) and (sma(C, 50) > sma(C, 200)) and (L <= sma(C, 20) * 1.01) and (C >= sma(C, 20))",
"basis": "pattern"
},
"up_week": {
"yes_no": 0.485
},
"drop5": {
"yes_no": 0.428
}
},
"context": {
"symbol": "UNH",
"as_of": "2026-10-30"
},
"actions": [
{
"id": "journal",
"fired": true,
"status": "dry_run",
"do": "webhook",
"connection": "zapier-journal",
"preview": {
"body": {
"symbol": "UNH",
"date": "2026-10-30",
"reward_2to1": 0.1345,
"stop_within_1_5_atr": 0.1081,
"entry_zone": 0.3632,
"p_up_week": 0.485,
"p_drop5": 0.428
}
}
}
]
}Swing trader · example 20
Monthly and weekly trend agree on GE
Swing trades work best when the month and the week point the same way.
- StateGE
- Questions5 asked
- Answersreal, captured
- Actionsnone
State
{"symbol":"GE"} The server fills in the latest completed session.
Questions
month | rule | C > C[-21]Higher than a month ago |
week | rule | C > C[-5]Higher than a week ago |
stack | 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 |
hh | English → rule | Is the stock making higher swing highs and higher swing lows? |
up_week | forecast | Will the stock be higher in a week? Higher in a week |
Answers
| Question | Answer | Reading |
|---|---|---|
monthHigher than a month ago | 0.2586 | false |
weekHigher than a week ago | 0.9062 | true |
stackStacked averages: close > 20 EMA > 50 > 200 | 0.1106 | false |
hhIs 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.1895 | false |
up_weekHigher in a week | 0.496 | 50% · close to even |
What it means
For GE on the session of 2026-10-30: True now: Higher than a week ago. Not true: Higher than a month ago; Stacked averages: close > 20 EMA > 50 > 200; Is the stock making higher swing highs and higher swing lows. Forecasts: Higher in a week 50%.
When both the month and week are up and averages stack, the trader takes long swings only.
Request JSON
{
"model": "ora-fin-0.1.1",
"state": {
"symbol": "GE"
},
"questions": {
"month": {
"type": "yes_no",
"ask": "C > C[-21]"
},
"week": {
"type": "yes_no",
"ask": "C > C[-5]"
},
"stack": {
"type": "yes_no",
"ask": "C > ema(C, 20) and ema(C, 20) > sma(C, 50) and sma(C, 50) > sma(C, 200)"
},
"hh": {
"type": "yes_no",
"instructions": "Is the stock making higher swing highs and higher swing lows?"
},
"up_week": {
"type": "yes_no",
"instructions": "Will the stock be higher in a week?"
}
}
}Response JSON (GE, real)
{
"model": "ora-fin-0.1.1",
"answers": {
"month": {
"yes_no": 0.2586,
"rule": "C > C[-21]",
"basis": "rule"
},
"week": {
"yes_no": 0.9062,
"rule": "C > C[-5]",
"basis": "rule"
},
"stack": {
"yes_no": 0.1106,
"rule": "C > ema(C, 20) and ema(C, 20) > sma(C, 50) and sma(C, 50) > sma(C, 200)",
"basis": "rule"
},
"hh": {
"yes_no": 0.1895,
"rule": "(swinghigh(5, 1) > swinghigh(5, 2)) and (swinglow(5, 1) > swinglow(5, 2))",
"basis": "pattern"
},
"up_week": {
"yes_no": 0.496
}
},
"context": {
"symbol": "GE",
"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, Options trader, Dividend investor, Long-term passive investor, Crypto trader, FX trader, Commodities trader, Social trading community, Students and universities.