Ora
All use cases All industries

Individuals

Retail investorActive day traderSwing traderOptions traderDividend investorLong-term passive investorCrypto traderFX traderCommodities traderSocial trading communityStudents and universities

Buy side

Financial advisor / RIAWealth managerFamily officeHedge fund PMQuant researcherPortfolio manager (long-only)Risk managerPrivate equityVC / growth investorFund-of-funds allocator

Sell side

Equity research analystSell-side sales traderExecution trader / deskMarket makerProp trading firmCompliance officer

Corporates

Investor relations teamCorporate treasuryCFO officeBank credit analystFinancial journalist / media

Builders

Quant developerFintech app builderRobo-advisorBroker appAlgo / bot developerData vendor / platformTrading educator / newsletter

Institutions

ETF issuerIndex providerInsurance investment officePension fundEndowmentSovereign wealth fund

Use cases · Sell side

Execution trader / desk: 20 ways to use Ora

Works orders: liquidity, volatility, gaps and when to be patient or aggressive. Each example is a complete, runnable request with the real answers it returned (36 requests, captured 2026-10-31), what they mean and, where it fits, the action it would send.

Answers were captured on ora-fin-0.1.1. Another model changes the request JSON and the Playground link; run it there to see its answers.
Rule functions and facts used by this player (50)

offset 9ref 8atr 7avg 5sma 3std 3min 3hlc3 2sum 2abs 2log 2sqrt 2bbupper 2rsi 2bbmid 2tr 1max 1swinghigh 1willr 1days_since_earnings 1days_to_earnings 1last_earnings_move 1next_report_amc 1bblower 1atr_pct 1swinglow 1ema 1linreg 1rec 1rma 1zscore 1days_since_reverse_split 1days_since_split 1days_to_split 1last_split_ratio 1cci 1stochd 1stochk 1dark_cloud 1engulfing_bear 1gravestone_doji 1hanging_man 1highest 1shooting_star 1median 1obv 1percentrank 1between 1doji 1cum 1

Examples 11–20 of 20 · page 2 of 2

Execution trader / desk · example 11

KO buy: rest bids near swing-low support?

For a patient buy, check whether price sits just above the last two swing lows and whether support is rising.

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

State

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

Questions

near_supruleC >= swinglow(5) and C <= 1.03 * swinglow(5)
Within 3% above the last swing low
rising_lowsruleswinglow(5, 1) > swinglow(5, 2)
Latest swing low (strength 5) above the one before
above_low2ruleC > swinglow(3, 2)
Close above the second-latest swing low (strength 3)
stop_closeruleC > swinglow(5) and C - swinglow(5) < 1.5 * atr(14)
A stop under the last swing low is within 1.5 ATR
new_lowforecastWill it make a new 20-day low in the next week?
A new 20-day low next week

Answers

QuestionAnswerReading
near_sup
Within 3% above the last swing low
0.0643false
rising_lows
Latest swing low (strength 5) above the one before
0.1446false
above_low2
Close above the second-latest swing low (strength 3)
0.9458true
stop_close
A stop under the last swing low is within 1.5 ATR
0.0615false
new_low
A new 20-day low next week
0.0354% · unlikely

What it means

For KO on the session of 2026-10-30: True now: Close above the second-latest swing low (strength 3). Not true: Within 3% above the last swing low; Latest swing low (strength 5) above the one before; A stop under the last swing low is within 1.5 ATR. Forecasts: A new 20-day low next week 4%.

Near rising support, resting bids make sense; the new-low forecast warns when support may not hold.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "KO"
  },
  "questions": {
    "near_sup": {
      "type": "yes_no",
      "ask": "C >= swinglow(5) and C <= 1.03 * swinglow(5)"
    },
    "rising_lows": {
      "type": "yes_no",
      "ask": "swinglow(5, 1) > swinglow(5, 2)"
    },
    "above_low2": {
      "type": "yes_no",
      "ask": "C > swinglow(3, 2)"
    },
    "stop_close": {
      "type": "yes_no",
      "ask": "C > swinglow(5) and C - swinglow(5) < 1.5 * atr(14)"
    },
    "new_low": {
      "type": "yes_no",
      "instructions": "Will it make a new 20-day low in the next week?"
    }
  }
}
Response JSON (KO, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "near_sup": {
      "yes_no": 0.0643,
      "rule": "C >= swinglow(5) and C <= 1.03 * swinglow(5)",
      "basis": "rule"
    },
    "rising_lows": {
      "yes_no": 0.1446,
      "rule": "swinglow(5, 1) > swinglow(5, 2)",
      "basis": "rule"
    },
    "above_low2": {
      "yes_no": 0.9458,
      "rule": "C > swinglow(3, 2)",
      "basis": "rule"
    },
    "stop_close": {
      "yes_no": 0.0615,
      "rule": "C > swinglow(5) and C - swinglow(5) < 1.5 * atr(14)",
      "basis": "rule"
    },
    "new_low": {
      "yes_no": 0.035
    }
  },
  "context": {
    "symbol": "KO",
    "as_of": "2026-10-30"
  }
}

atr swinglow

Execution trader / desk · example 12

ORCL: is the short-term trend smooth enough to lean on?

Compare price with exponential and Wilder-smoothed averages to judge whether to front-load the order.

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

State

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

Questions

emaruleC > ema(C, 10)
Close above the 10-day EMA
rmaruleC > rma(C, 14)
Close above the 14-day Wilder average
recruleC > rec(C, self + 0.1 * (C - self))
Close above a custom exponential average (alpha 0.1)
sloperulelinreg(C, 10) > ref(linreg(C, 10), -3)
10-day regression line rising over three sessions
up_tomforecastWill the stock be up tomorrow?
Up tomorrow

Answers

QuestionAnswerReading
ema
Close above the 10-day EMA
0.2571false
rma
Close above the 14-day Wilder average
0.1931false
rec
Close above a custom exponential average (alpha 0.1)
0.2388false
slope
10-day regression line rising over three sessions
0.9031true
up_tom
Up tomorrow
0.40941% · close to even

What it means

For ORCL on the session of 2026-10-30: True now: 10-day regression line rising over three sessions. Not true: Close above the 10-day EMA; Close above the 14-day Wilder average; Close above a custom exponential average (alpha 0.1). Forecasts: Up tomorrow 41%.

When every smoothed average is below price, the trend is with the buyer and front-loading is reasonable.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "ORCL"
  },
  "questions": {
    "ema": {
      "type": "yes_no",
      "ask": "C > ema(C, 10)"
    },
    "rma": {
      "type": "yes_no",
      "ask": "C > rma(C, 14)"
    },
    "rec": {
      "type": "yes_no",
      "ask": "C > rec(C, self + 0.1 * (C - self))"
    },
    "slope": {
      "type": "yes_no",
      "ask": "linreg(C, 10) > ref(linreg(C, 10), -3)"
    },
    "up_tom": {
      "type": "yes_no",
      "instructions": "Will the stock be up tomorrow?"
    }
  }
}
Response JSON (ORCL, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "ema": {
      "yes_no": 0.2571,
      "rule": "C > ema(C, 10)",
      "basis": "rule"
    },
    "rma": {
      "yes_no": 0.1931,
      "rule": "C > rma(C, 14)",
      "basis": "rule"
    },
    "rec": {
      "yes_no": 0.2388,
      "rule": "C > rec(C, self + 0.1 * (C - self))",
      "basis": "rule"
    },
    "slope": {
      "yes_no": 0.9031,
      "rule": "linreg(C, 10) > ref(linreg(C, 10), -3)",
      "basis": "rule"
    },
    "up_tom": {
      "yes_no": 0.409
    }
  },
  "context": {
    "symbol": "ORCL",
    "as_of": "2026-10-30"
  }
}

ema linreg rec ref rma

Execution trader / desk · example 13

End-of-day context for TCA: what kind of day was it?

Email the TCA team a description of each traded name's session so slippage is judged against conditions.

ora-fin-0.1.13 symbols, one request each4 questions1 actionworkflow · Mon–Fri at 16:40 ET
  1. ScheduleMon–Fri at 16:40 ET
  2. State3 symbols
  3. Questions4 asked
  4. Answersreal, captured
  5. Actions1 rule · dry run

State

{"symbol":"AAPL"} then JPM, XOM, one request each. The server fills in the latest completed session.

Questions

widerule(H - L) > 2 * avg(H - L, 20)
Range more than twice the 20-day average range
trend_dayrule(O <= L + 0.2 * (H - L)) and (C >= H - 0.2 * (H - L))
A trend day up: opened near the low, closed near the high
vol2xruleV > 2 * ref(avg(V, 20), -1)
Volume more than twice the previous 20-day average
shockrulezscore(C / C[-1] - 1, 20) < -2
A two-sigma down day

Answers

Symbolwideruletrend_dayrulevol2xruleshockruleFired
AAPL0.86530.05370.24730.253tca
JPM0.28880.05370.08320.5937tca
XOM0.0540.2740.29580.0537tca

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.

wide >= 0→Emailtca-team
AAPL 1 of 1 fired · dry run, nothing sent
tcawould send (dry run)Email → tca-team
{
  "subject": "Session context AAPL 2026-10-30",
  "text": "AAPL: wide range 87%, trend day 5%, volume spike 25%, return shock 25%."
}
JPM 1 of 1 fired · dry run, nothing sent
tcawould send (dry run)Email → tca-team
{
  "subject": "Session context JPM 2026-10-30",
  "text": "JPM: wide range 29%, trend day 5%, volume spike 8%, return shock 59%."
}
XOM 1 of 1 fired · dry run, nothing sent
tcawould send (dry run)Email → tca-team
{
  "subject": "Session context XOM 2026-10-30",
  "text": "XOM: wide range 5%, trend day 27%, volume spike 30%, return shock 5%."
}

What it means

Session of 2026-10-30, 3 symbols: Range more than twice the 20-day average range: true for AAPL of 3. A trend day up: opened near the low, closed near the high: true for none of 3. Volume more than twice the previous 20-day average: true for none of 3. A two-sigma down day: true for none of 3. tca fired for AAPL, JPM, XOM.

Slippage on a wide or shock day is not the same as slippage on a quiet one; TCA gets the context with every fill report.

As a scheduled workflow (Mon–Fri at 16:40 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": "End-of-day context for TCA: what kind of day was it?",
  "symbols": "AAPL JPM XOM",
  "days": [
    1,
    2,
    3,
    4,
    5
  ],
  "at_time": "16:40",
  "model": "ora-fin-0.1.1",
  "questions": {
    "wide": {
      "type": "yes_no",
      "ask": "(H - L) > 2 * avg(H - L, 20)"
    },
    "trend_day": {
      "type": "yes_no",
      "ask": "(O <= L + 0.2 * (H - L)) and (C >= H - 0.2 * (H - L))"
    },
    "vol2x": {
      "type": "yes_no",
      "ask": "V > 2 * ref(avg(V, 20), -1)"
    },
    "shock": {
      "type": "yes_no",
      "ask": "zscore(C / C[-1] - 1, 20) < -2"
    }
  },
  "actions": [
    {
      "id": "tca",
      "when": "wide >= 0",
      "do": "email",
      "connection": "tca-team",
      "subject": "Session context {{symbol}} {{as_of}}",
      "message": "{{symbol}}: wide range {{wide|pct}}, trend day {{trend_day|pct}}, volume spike {{vol2x|pct}}, return shock {{shock|pct}}."
    }
  ]
}
Request JSON (AAPL; the others differ only in the symbol)
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "AAPL"
  },
  "questions": {
    "wide": {
      "type": "yes_no",
      "ask": "(H - L) > 2 * avg(H - L, 20)"
    },
    "trend_day": {
      "type": "yes_no",
      "ask": "(O <= L + 0.2 * (H - L)) and (C >= H - 0.2 * (H - L))"
    },
    "vol2x": {
      "type": "yes_no",
      "ask": "V > 2 * ref(avg(V, 20), -1)"
    },
    "shock": {
      "type": "yes_no",
      "ask": "zscore(C / C[-1] - 1, 20) < -2"
    }
  },
  "actions": [
    {
      "id": "tca",
      "when": "wide >= 0",
      "do": "email",
      "connection": "tca-team",
      "subject": "Session context {{symbol}} {{as_of}}",
      "message": "{{symbol}}: wide range {{wide|pct}}, trend day {{trend_day|pct}}, volume spike {{vol2x|pct}}, return shock {{shock|pct}}."
    }
  ],
  "dry_run": true
}
Response JSON (AAPL, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "wide": {
      "yes_no": 0.8653,
      "rule": "(H - L) > 2 * avg(H - L, 20)",
      "basis": "rule"
    },
    "trend_day": {
      "yes_no": 0.0537,
      "rule": "(O <= L + 0.2 * (H - L)) and (C >= H - 0.2 * (H - L))",
      "basis": "rule"
    },
    "vol2x": {
      "yes_no": 0.2473,
      "rule": "V > 2 * ref(avg(V, 20), -1)",
      "basis": "rule"
    },
    "shock": {
      "yes_no": 0.253,
      "rule": "zscore(C / C[-1] - 1, 20) < -2",
      "basis": "rule"
    }
  },
  "context": {
    "symbol": "AAPL",
    "as_of": "2026-10-30"
  },
  "actions": [
    {
      "id": "tca",
      "fired": true,
      "status": "dry_run",
      "do": "email",
      "connection": "tca-team",
      "preview": {
        "subject": "Session context AAPL 2026-10-30",
        "text": "AAPL: wide range 87%, trend day 5%, volume spike 25%, return shock 25%."
      }
    }
  ]
}

avg offset ref zscore

Execution trader / desk · example 14

Corporate-action check before a large order in SMCI

Make sure no split is pending or recent before sizing an order off historical volumes.

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

State

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

Questions

split3yruledays_since_split <= 1095
Split in the last three years
announcedruledays_to_split <= 365
A split is announced
rev1yEnglish → ruleHas the stock done a reverse split in the past year?
ratioEnglish → ruleWas the last split at least 2-for-1?
liquidruleavg(C * V, 20) > 100000000
Trades more than $100 million a day

Answers

QuestionAnswerReading
split3y
Split in the last three years
0.9463true
announced
A split is announced
0.0537false
rev1y
Has the stock done a reverse split in the past year
compiled to days_since_reverse_split <= 365
0.0537false
ratio
Was the last split at least 2-for-1
compiled to last_split_ratio >= 2
0.9463true
liquid
Trades more than $100 million a day
0.9463true

What it means

For SMCI on the session of 2026-10-30: True now: Split in the last three years; Was the last split at least 2-for-1; Trades more than $100 million a day. Not true: A split is announced; Has the stock done a reverse split in the past year.

A recent or pending split changes share counts; the desk adjusts volume-based limits when any split fact is true.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "SMCI"
  },
  "questions": {
    "split3y": {
      "type": "yes_no",
      "ask": "days_since_split <= 1095"
    },
    "announced": {
      "type": "yes_no",
      "ask": "days_to_split <= 365"
    },
    "rev1y": {
      "type": "yes_no",
      "instructions": "Has the stock done a reverse split in the past year?"
    },
    "ratio": {
      "type": "yes_no",
      "instructions": "Was the last split at least 2-for-1?"
    },
    "liquid": {
      "type": "yes_no",
      "ask": "avg(C * V, 20) > 100000000"
    }
  }
}
Response JSON (SMCI, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "split3y": {
      "yes_no": 0.9463,
      "rule": "days_since_split <= 1095",
      "basis": "rule"
    },
    "announced": {
      "yes_no": 0.0537,
      "rule": "days_to_split <= 365",
      "basis": "rule"
    },
    "rev1y": {
      "yes_no": 0.0537,
      "rule": "days_since_reverse_split <= 365",
      "basis": "pattern"
    },
    "ratio": {
      "yes_no": 0.9463,
      "rule": "last_split_ratio >= 2",
      "basis": "pattern"
    },
    "liquid": {
      "yes_no": 0.9463,
      "rule": "avg(C * V, 20) > 100000000",
      "basis": "rule"
    }
  },
  "context": {
    "symbol": "SMCI",
    "as_of": "2026-10-30"
  }
}

avg days_since_reverse_split days_since_split days_to_split last_split_ratio

Execution trader / desk · example 15

Pairs leg timing: XOM vs CVX relative momentum

Decide which leg of an energy pair to work first from momentum and stochastic readings.

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

State

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

Questions

stoch_kdEnglish → ruleIs stochastic %K above %D?
stoch_drulestochd(14) > 50
Stochastic %D above 50
ccirulecci(20) > 0
CCI(20) above zero
rocEnglish → ruleIs the 10-day rate of change positive?
up_tomforecastWill the stock be up tomorrow?
Up tomorrow

Answers

Symbolstoch_kdrulestoch_druleccirulerocruleup_tomforecast
XOM0.71010.91610.9190.89480.574
CVX0.71760.89580.89610.8840.587

true false not known for rules; forecasts are odds. Hover a column for its question.

What it means

Session of 2026-10-30, 2 symbols: Is stochastic %K above %D: true for XOM, CVX of 2. Stochastic %D above 50: true for XOM, CVX of 2. CCI(20) above zero: true for XOM, CVX of 2. Is the 10-day rate of change positive: true for XOM, CVX of 2. Highest odds for “Up tomorrow”: CVX at 59%.

Work the leg with weaker short-term momentum first when buying, stronger first when selling.

Request JSON (XOM; the others differ only in the symbol)
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "XOM"
  },
  "questions": {
    "stoch_kd": {
      "type": "yes_no",
      "instructions": "Is stochastic %K above %D?"
    },
    "stoch_d": {
      "type": "yes_no",
      "ask": "stochd(14) > 50"
    },
    "cci": {
      "type": "yes_no",
      "ask": "cci(20) > 0"
    },
    "roc": {
      "type": "yes_no",
      "instructions": "Is the 10-day rate of change positive?"
    },
    "up_tom": {
      "type": "yes_no",
      "instructions": "Will the stock be up tomorrow?"
    }
  }
}
Response JSON (XOM, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "stoch_kd": {
      "yes_no": 0.7101,
      "rule": "stochk(14, 3, 3) > stochd(14, 3, 3)",
      "basis": "comparison"
    },
    "stoch_d": {
      "yes_no": 0.9161,
      "rule": "stochd(14) > 50",
      "basis": "rule"
    },
    "cci": {
      "yes_no": 0.919,
      "rule": "cci(20) > 0",
      "basis": "rule"
    },
    "roc": {
      "yes_no": 0.8948,
      "rule": "C > C[-10]",
      "basis": "pattern"
    },
    "up_tom": {
      "yes_no": 0.574
    }
  },
  "context": {
    "symbol": "XOM",
    "as_of": "2026-10-30"
  }
}

cci offset stochd stochk

Execution trader / desk · example 16

COST sell program: bearish candles say finish early

Speed up a sell program if a bearish reversal candle prints at the highs.

ora-fin-0.1.1COST6 questions1 action
  1. StateCOST
  2. Questions6 asked
  3. Answersreal, captured
  4. Actions1 rule · dry run

State

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

Questions

eng_bearruleengulfing_bear()
engulfing bear candle: A red body that engulfs yesterday's green body.
darkruledark_cloud()
dark cloud candle: After a green day, opens above its close and closes below the middle of its body (but above its open).
graverulegravestone_doji()
gravestone doji candle: Doji with a long upper wick and almost no lower wick.
hangrulehanging_man()
hanging man candle: Hammer shape, closing above the close five bars back.
star_highruleshooting_star() and H > highest(H, 20)
Shooting star at a 20-day high
drop5forecastWill it drop at least 5% at some point in the next month?
A 5% drawdown within a month

Answers

QuestionAnswerReading
eng_bear
engulfing bear candle: A red body that engulfs yesterday's green body.
0.0912false
dark
dark cloud candle: After a green day, opens above its close and closes below the middle of its body (but above its open).
0.0812false
grave
gravestone doji candle: Doji with a long upper wick and almost no lower wick.
0.0924false
hang
hanging man candle: Hammer shape, closing above the close five bars back.
0.0612false
star_high
Shooting star at a 20-day high
0.0924false
drop5
A 5% drawdown within a month
0.31932% · unlikely

Actions

Rules on the answers decide what to send.

eng_bear >= 0.6 or dark >= 0.6 or star_high >= 0.6→Webhookems
What each action would send 0 of 1 fired · dry run, nothing sent
speed_uprule false: skipped

What it means

For COST on the session of 2026-10-30: Not true: 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).; gravestone doji candle: Doji with a long upper wick and almost no lower wick.; hanging man candle: Hammer shape, closing above the close five bars back.; Shooting star at a 20-day high. Forecasts: A 5% drawdown within a month 32%. No action fired: every rule was false.

A bearish candle at the highs is a reason to finish selling sooner; with none true the schedule stays as is.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "COST"
  },
  "questions": {
    "eng_bear": {
      "type": "yes_no",
      "ask": "engulfing_bear()"
    },
    "dark": {
      "type": "yes_no",
      "ask": "dark_cloud()"
    },
    "grave": {
      "type": "yes_no",
      "ask": "gravestone_doji()"
    },
    "hang": {
      "type": "yes_no",
      "ask": "hanging_man()"
    },
    "star_high": {
      "type": "yes_no",
      "ask": "shooting_star() and H > highest(H, 20)"
    },
    "drop5": {
      "type": "yes_no",
      "instructions": "Will it drop at least 5% at some point in the next month?"
    }
  },
  "actions": [
    {
      "id": "speed_up",
      "when": "eng_bear >= 0.6 or dark >= 0.6 or star_high >= 0.6",
      "do": "webhook",
      "connection": "ems",
      "body": {
        "symbol": "{{symbol}}",
        "side": "sell",
        "instruction": "increase_participation",
        "participation": 0.2,
        "reason": "bearish_reversal_candle",
        "as_of": "{{as_of}}"
      }
    }
  ],
  "dry_run": true
}
Response JSON (COST, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "eng_bear": {
      "yes_no": 0.0912,
      "rule": "engulfing_bear()",
      "basis": "rule"
    },
    "dark": {
      "yes_no": 0.0812,
      "rule": "dark_cloud()",
      "basis": "rule"
    },
    "grave": {
      "yes_no": 0.0924,
      "rule": "gravestone_doji()",
      "basis": "rule"
    },
    "hang": {
      "yes_no": 0.0612,
      "rule": "hanging_man()",
      "basis": "rule"
    },
    "star_high": {
      "yes_no": 0.0924,
      "rule": "shooting_star() and H > highest(H, 20)",
      "basis": "rule"
    },
    "drop5": {
      "yes_no": 0.319
    }
  },
  "context": {
    "symbol": "COST",
    "as_of": "2026-10-30"
  },
  "actions": [
    {
      "id": "speed_up",
      "fired": false,
      "status": "skipped"
    }
  ]
}

dark_cloud engulfing_bear gravestone_doji hanging_man highest shooting_star

Execution trader / desk · example 17

QQQ: open below yesterday's low means wait

Before a buy at the open, check whether the open broke yesterday's low or reclaimed it.

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

State

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

Questions

open_belowruleO < L[-1]
Opened below yesterday's low
reclaimruleO < L[-1] and C > C[-1]
Opened under yesterday's low, closed up on the day
open_aboveEnglish → ruleDid the stock open above yesterday's close?
close_hiruleC > H[-1]
Closed above yesterday's high
gap_up_tomforecastWill it gap up tomorrow?
A gap up tomorrow

Answers

QuestionAnswerReading
open_below
Opened below yesterday's low
0.9357true
reclaim
Opened under yesterday's low, closed up on the day
0.0537false
open_above
Did the stock open above yesterday's close
compiled to O > C[-1]
0.0537false
close_hi
Closed above yesterday's high
0.0537false
gap_up_tom
A gap up tomorrow
0.13714% · unlikely

What it means

For QQQ on the session of 2026-10-30: True now: Opened below yesterday's low. Not true: Opened under yesterday's low, closed up on the day; Did the stock open above yesterday's close; Closed above yesterday's high. Forecasts: A gap up tomorrow 14%.

An open below the prior low that is not reclaimed tells the desk to stay patient on buys.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "QQQ"
  },
  "questions": {
    "open_below": {
      "type": "yes_no",
      "ask": "O < L[-1]"
    },
    "reclaim": {
      "type": "yes_no",
      "ask": "O < L[-1] and C > C[-1]"
    },
    "open_above": {
      "type": "yes_no",
      "instructions": "Did the stock open above yesterday's close?"
    },
    "close_hi": {
      "type": "yes_no",
      "ask": "C > H[-1]"
    },
    "gap_up_tom": {
      "type": "yes_no",
      "instructions": "Will it gap up tomorrow?"
    }
  }
}
Response JSON (QQQ, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "open_below": {
      "yes_no": 0.9357,
      "rule": "O < L[-1]",
      "basis": "rule"
    },
    "reclaim": {
      "yes_no": 0.0537,
      "rule": "O < L[-1] and C > C[-1]",
      "basis": "rule"
    },
    "open_above": {
      "yes_no": 0.0537,
      "rule": "O > C[-1]",
      "basis": "comparison"
    },
    "close_hi": {
      "yes_no": 0.0537,
      "rule": "C > H[-1]",
      "basis": "rule"
    },
    "gap_up_tom": {
      "yes_no": 0.137
    }
  },
  "context": {
    "symbol": "QQQ",
    "as_of": "2026-10-30"
  }
}

offset

Execution trader / desk · example 18

Weekly volume profile: DIA, IWM, EFA, EEM, TLT

Every Monday, record which ETFs saw volume rank highly last week, to plan size limits for the week.

ora-fin-0.1.15 symbols, one request each4 questionsworkflow · Mon at 08:30 ET
  1. ScheduleMon at 08:30 ET
  2. State5 symbols
  3. Questions4 asked
  4. Answersreal, captured
  5. Actionsnone

State

{"symbol":"DIA"} then IWM, EFA, EEM, TLT, one request each. The server fills in the latest completed session.

Questions

rankrulepercentrank(V, 50) > 90
Volume in the top tenth of 50 sessions
obvEnglish → ruleIs on-balance volume higher than 20 sessions ago?
medianruleV > median(V, 50)
Volume above its 50-day median
spikeforecastWill volume spike tomorrow?
A volume spike tomorrow

Answers

Symbolrankruleobvrulemedianrulespikeforecast
DIA0.49520.72260.9050.057
IWM0.1540.42110.59350.018
EFA0.64190.5120.93770.063
EEM0.67930.06850.94560.103
TLT0.15990.92030.67260.027

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: Volume in the top tenth of 50 sessions: true for EFA, EEM of 5. Is on-balance volume higher than 20 sessions ago: true for DIA, TLT of 5. Volume above its 50-day median: true for DIA, EFA, EEM, TLT of 5. Highest odds for “A volume spike tomorrow”: EEM at 10%.

High-rank volume weeks allow larger child orders; quiet weeks get smaller ones.

As a scheduled workflow (Mon at 08: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 volume profile: DIA, IWM, EFA, EEM, TLT",
  "symbols": "DIA IWM EFA EEM TLT",
  "days": [
    1
  ],
  "at_time": "08:30",
  "model": "ora-fin-0.1.1",
  "questions": {
    "rank": {
      "type": "yes_no",
      "ask": "percentrank(V, 50) > 90"
    },
    "obv": {
      "type": "yes_no",
      "instructions": "Is on-balance volume higher than 20 sessions ago?"
    },
    "median": {
      "type": "yes_no",
      "ask": "V > median(V, 50)"
    },
    "spike": {
      "type": "yes_no",
      "instructions": "Will volume spike tomorrow?"
    }
  }
}
Request JSON (DIA; the others differ only in the symbol)
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "DIA"
  },
  "questions": {
    "rank": {
      "type": "yes_no",
      "ask": "percentrank(V, 50) > 90"
    },
    "obv": {
      "type": "yes_no",
      "instructions": "Is on-balance volume higher than 20 sessions ago?"
    },
    "median": {
      "type": "yes_no",
      "ask": "V > median(V, 50)"
    },
    "spike": {
      "type": "yes_no",
      "instructions": "Will volume spike tomorrow?"
    }
  }
}
Response JSON (DIA, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "rank": {
      "yes_no": 0.4952,
      "rule": "percentrank(V, 50) > 90",
      "basis": "rule"
    },
    "obv": {
      "yes_no": 0.7226,
      "rule": "obv() > ref(obv(), -20)",
      "basis": "pattern"
    },
    "median": {
      "yes_no": 0.905,
      "rule": "V > median(V, 50)",
      "basis": "rule"
    },
    "spike": {
      "yes_no": 0.057
    }
  },
  "context": {
    "symbol": "DIA",
    "as_of": "2026-10-30"
  }
}

median obv percentrank ref

Execution trader / desk · example 19

PG: neutral RSI and mid-band price, a calm day to execute

Confirm a calm, neutral tape before releasing a large staples order in one go.

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

State

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

Questions

neutralrulebetween(rsi(C, 14), 40, 60)
RSI(14) between 40 and 60
midEnglish → ruleIs the stock above the middle Bollinger Band?
atr_loEnglish → ruleIs the 14-day ATR less than 2% of the price?
dojiruledoji()
doji candle: Body at most 10% of the day's range.
calmforecastWill volatility calm down over the next 5 days?
Volatility calming over 5 days

Answers

QuestionAnswerReading
neutral
RSI(14) between 40 and 60
0.05false
mid
Is the stock above the middle Bollinger Band
compiled to C > bbmid(C, 20)
0.9171true
atr_lo
Is the 14-day ATR less than 2% of the price
compiled to atr(14) / C < 0.02
0.7818true
doji
doji candle: Body at most 10% of the day's range.
0.0537false
calm
Volatility calming over 5 days
0.70170% · likely

What it means

For PG on the session of 2026-10-30: True now: Is the stock above the middle Bollinger Band; Is the 14-day ATR less than 2% of the price. Not true: RSI(14) between 40 and 60; doji candle: Body at most 10% of the day's range.. Forecasts: Volatility calming over 5 days 70%.

Neutral momentum and low ATR describe a calm tape where a larger release costs less.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "PG"
  },
  "questions": {
    "neutral": {
      "type": "yes_no",
      "ask": "between(rsi(C, 14), 40, 60)"
    },
    "mid": {
      "type": "yes_no",
      "instructions": "Is the stock above the middle Bollinger Band?"
    },
    "atr_lo": {
      "type": "yes_no",
      "instructions": "Is the 14-day ATR less than 2% of the price?"
    },
    "doji": {
      "type": "yes_no",
      "ask": "doji()"
    },
    "calm": {
      "type": "yes_no",
      "instructions": "Will volatility calm down over the next 5 days?"
    }
  }
}
Response JSON (PG, real)
{
  "model": "ora-fin-0.1.1",
  "answers": {
    "neutral": {
      "yes_no": 0.05,
      "rule": "between(rsi(C, 14), 40, 60)",
      "basis": "rule"
    },
    "mid": {
      "yes_no": 0.9171,
      "rule": "C > bbmid(C, 20)",
      "basis": "comparison"
    },
    "atr_lo": {
      "yes_no": 0.7818,
      "rule": "atr(14) / C < 0.02",
      "basis": "pattern"
    },
    "doji": {
      "yes_no": 0.0537,
      "rule": "doji()",
      "basis": "rule"
    },
    "calm": {
      "yes_no": 0.701
    }
  },
  "context": {
    "symbol": "PG",
    "as_of": "2026-10-30"
  }
}

atr bbmid between doji rsi

Execution trader / desk · example 20

HD: buyers in control over the long run?

Use cumulative up versus down closes and weekly lows to decide whether to rush a buy before the tape lifts.

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

State

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

Questions

cumrulecum(C > C[-1]) > cum(C < C[-1])
More up closes than down closes over the full history
mostly_uprulesum(C > C[-1], 10) >= 6
Up on at least six of the last ten days
wk_lowrulemin(L, 5) > ref(min(L, 5), -5)
This week's low is above last week's
up_weekforecastWill the stock be higher in a week?
Higher in a week

Answers

QuestionAnswerReading
cum
More up closes than down closes over the full history
0.9463true
mostly_up
Up on at least six of the last ten days
0.1785false
wk_low
This week's low is above last week's
0.8545true
up_week
Higher in a week
0.55255% · close to even

What it means

For HD on the session of 2026-10-30: True now: More up closes than down closes over the full history; This week's low is above last week's. Not true: Up on at least six of the last ten days. Forecasts: Higher in a week 55%.

Persistent buying argues against waiting too long; a mixed record argues for a slower schedule.

Request JSON
{
  "model": "ora-fin-0.1.1",
  "state": {
    "symbol": "HD"
  },
  "questions": {
    "cum": {
      "type": "yes_no",
      "ask": "cum(C > C[-1]) > cum(C < C[-1])"
    },
    "mostly_up": {
      "type": "yes_no",
      "ask": "sum(C > C[-1], 10) >= 6"
    },
    "wk_low": {
      "type": "yes_no",
      "ask": "min(L, 5) > ref(min(L, 5), -5)"
    },
    "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": {
    "cum": {
      "yes_no": 0.9463,
      "rule": "cum(C > C[-1]) > cum(C < C[-1])",
      "basis": "rule"
    },
    "mostly_up": {
      "yes_no": 0.1785,
      "rule": "sum(C > C[-1], 10) >= 6",
      "basis": "rule"
    },
    "wk_low": {
      "yes_no": 0.8545,
      "rule": "min(L, 5) > ref(min(L, 5), -5)",
      "basis": "rule"
    },
    "up_week": {
      "yes_no": 0.552
    }
  },
  "context": {
    "symbol": "HD",
    "as_of": "2026-10-30"
  }
}

cum min offset ref sum

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 Sell side: Equity research analyst, Sell-side sales trader, Market maker, Prop trading firm, Compliance officer.

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