Configuration & operations
AdminConfiguration reference
One place for every scheduled activity, cache, and threshold that shapes how SentinelHub runs — and what each one means.
SentinelHub has two moving parts. A trading engine is the only component that ever places, modifies, or cancels an order. An intelligence layer reads everything, reasons about it, and refreshes the feeds you see — but it is strictly read-only and can never trade. That boundary is why most of the schedules below are marked read-only.
Why this page exists
Scheduled activities
Everything that runs on a clock. "Executing" jobs belong to the trading engine and can place protected orders during market hours; every other job is read-only intelligence — research briefs, feed refreshes, evaluations, and heartbeat alarms.
| Activity | What it does | When it runs | Mode |
|---|---|---|---|
| RSI-2 scan | Scans the ETF universe for mean-reversion entries and places protected (bracket) orders for qualifying signals. | 09:45 ET open scan, then every 30 min :00/:30, 10:00–15:30 ET, Mon–Fri (13 scans/day; the raw 09:30 open stays dropped per ENH-002, 09:45 supersedes it) | Executing |
| Position monitor | Checks open positions between scans — trailing stops and exit management. | Every 30 min, :15 and :45, 10:00–15:45 ET, Mon–Fri | Executing |
| Trend strategy scan | Trend-following / breakout scan (paper / shadow — no live orders). | Every 30 min, :05 and :35, 10:00–15:35 ET, Mon–Fri | Read-only |
| Squeeze strategy scan | Volatility-squeeze breakout scan (paper / shadow — no live orders). | Every 30 min, :10 and :40, 10:00–15:40 ET, Mon–Fri | Read-only |
| Momentum monthly rebalance | Dual-momentum (GEM) rebalance on the last trading day of the month. | 3:35 PM ET, last trading day of month (guarded inside the job) | Executing |
| Macro rotation rebalance | Macro-regime rotation rebalance on the last trading day of the month (paper — no live orders). | 3:40 PM ET, last trading day of month | Read-only |
| Pre-market research brief | Reads the regime, breadth and dislocation candidates and posts a brief. Observational only — never trades. | 9:00 AM ET, Mon–Fri | Read-only |
| Daily positioning scan | Dislocation Researcher — authors Recovery Theses (WATCH) from live sector dislocations into the corpus. Never trades. | 9:15 AM ET, Mon–Fri | Read-only |
| Thesis cycle | Composes SentinelHub's own market thesis, ages out invalidated views, and weighs any submitted outside opinions against our own evidence (the Adversarial Gate). Advisory — never trades. | ~4:30 PM ET (post-close), Mon–Fri | Read-only |
| Alpaca asset-listing refresh | Refreshes the cached tradable-asset universe from the broker; prunes snapshots older than 90 days. | 8:30 AM ET, Mon–Fri | Read-only |
| Decision-freshness heartbeat | Alarm that pages if no decision has been logged recently during market hours — catches 'daemon alive, scans dead'. | Every hour at :55, 11:55–15:55 ET, Mon–Fri (90-min staleness threshold) | Read-only |
| SQLite decision sync | Mirrors the immutable JSON decision logs into a SQLite analytics store for calibration and divergence queries. | 4:05 PM ET, Mon–Fri (post-close) | Read-only |
| End-of-day Slack summary | Posts the closing-bell digest — day entries/exits/P&L, month-to-date, equity/peak/drawdown. | 4:10 PM ET, Mon–Fri | Read-only |
| End-of-day reflection | Aggregates the day's decisions, trades and outcomes into a structured reflection digest. | 4:30 PM ET, Mon–Fri | Read-only |
| LLM-as-judge evaluator | Scores the last 24h of decisions with an LLM judge; writes scores back to the database and traces. | 4:45 PM ET, Mon–Fri | Read-only |
| Nightly health check | Runs diagnostics, refreshes the equity/performance snapshot and updates status reports. | 10:00 PM ET, daily | Read-only |
| News-ticker refresh | Refreshes the rolling news ticker from the latest geopolitical and market news. Runs 24/7 (news happens off-session). | Every 20 min (operator-configurable: 5/10/15/20/30/60 min), UTC | Read-only |
| Sentiment briefing refresh | Synthesises the 'Market Conditions' sentiment briefing (both the 30-minute and today windows in one call). | Every 30 min, :00 and :30, 10:00–16:00 ET, Mon–Fri | Read-only |
| G8 news-digest refresh | Refreshes the grounded per-country news digest across the G8 economies so off-session surprises reach the briefing. | Every 30 min, :00 and :30, 06:00–23:00, UTC | Read-only |
| Macro dislocation check | Read-only check for sudden regime shifts, VIX spikes and FOMC-window proximity. | Every 15 min, 09:00–16:00 ET, Mon–Fri | Read-only |
| Discretionary review refresh | Re-runs the discretionary exit advisor for every held PAPER position so the panel reads a warm cache. Advisory only — the engine owns exits. | Every 30 min, :00 and :30, 10:00–16:00 ET, Mon–Fri | Read-only |
| Position-insights cache warm | Pre-generates the position-insights panel context for every held PAPER position so an expand hits a warm cache instead of a fresh grounded call. | Every 30 min, :00 and :30, 10:00–16:00 ET, Mon–Fri | Read-only |
Caching
Some results are expensive to produce — they call an AI model to synthesise a briefing or a position review. Those results are cached for a fixed window and warmed on a schedule, so a panel reads an already-warm answer instead of regenerating it every time you open it. A scheduled refresh that lands inside the window simply reuses the cache, so the system never does the same work twice.
| What is cached | Stays warm for | Where & how |
|---|---|---|
| Sentiment briefing | ~25 minutes | Database (sentiment_summaries). Warmed by the sentiment-briefing refresh; a manual refresh inside the window reuses the cached result. |
| Discretionary exit review | 30 minutes | Database (per-position review cache). Warmed every 30 min by the discretionary review refresh. |
| Position insights | 30 minutes | Database (position_insights_cache). Warmed every 30 min by the position-insights cache warmer; failed runs are never cached (self-heal). |
Key thresholds
These are the risk and signal limits that govern day-to-day behaviour. They exist to enforce one principle: survival first. A signal that does not clear the confidence gate is skipped; exposure is capped several ways at once; and drawdowns automatically tighten or pause trading. None of these should ever be loosened to chase a single trade.
| Threshold | Value | What it controls |
|---|---|---|
| Research Lane canary | Disabled · $100 × max 21 ($2,100) | Shadow-only evidence lane: at most three pre-registered sibling variants per parent signal, counted as one independent evidence unit. It never consumes broker-backed PAPER positions, heat, or notional. |
| Confidence gate | ≥ 40 | Minimum composite confidence score for a signal to qualify as an entry. Below this the signal is logged but skipped. |
| Max concurrent positions | 5 (paper baseline) | The most aggregate broker-active positions held at once across all executing strategies. Paper/shadow observations consume no slots; tighter rails may admit fewer. |
| Broker entry ceiling | min($10,000, 10% equity) | System ceiling applied to every broker-bound strategy request before confidence and drawdown reductions. RSI-2 still requests 20%, but cannot exceed this cap. |
| Risk per trade | 1% of equity | Maximum capital put at risk on any single trade (the stop distance is sized to this). |
| Portfolio heat (RSI-2) | 2.2% | Ceiling on total open risk across all RSI-2 positions at once. |
| Per-segment heat cap | 1.0% | No single market segment may carry more than this share of open risk — forces a ≥3-segment spread. |
| Combined heat ceiling | 12% | Master cap on combined open risk across every strategy. |
| Drawdown — reduce | 10% | At 10% drawdown, position sizes are cut by 50%. |
| Drawdown — pause | 15% | At 15% drawdown, trading pauses for 5 days. |
| Drawdown — halt | 20% | At 20% drawdown, trading fully halts pending manual review. |
| Consecutive-loss reduce / pause | 5 / 7 | 5 consecutive losses cut sizing; 7 consecutive losses pause trading. |
| Daily notional cap | 80% of peak equity | Maximum total order value placed in a single day. |
| Weekly notional cap | 250% of peak equity | Maximum total order value placed in a single week. |
| RSI-2 entry threshold | RSI(2) ≤ 20 | How oversold a ticker must be (2-period RSI) to be a mean-reversion entry candidate. |
| Discretionary full-review gate | +1% default (portfolio-configurable) | An exactly portfolio-attributed position may use that portfolio override; unmapped positions use the environment/default +1% threshold. Above the effective threshold, the advisor runs the full review. |
| Data-sanity halt threshold | 50% of tickers zero-valued | If at least half the universe returns zero indicators at scan start, the scan halts rather than trading on bad data. |
| News-ticker cadence (configurable) | 20 min (one of 5/10/15/20/30/60) | How often the news ticker refreshes. Operator-tunable via the NEWS_TICKER_REFRESH_MINUTES setting. |
The doctrine
Portfolio settings activation
Strategy time exits
Values are read from the trading engine and intelligence-layer configuration and last reconciled on 2026-07-14. Each row carries its source on hover.