◆ kanex-ai
Loading…
Interactive Brokers Client Services Jun 17 12:40 AM
Message Center Notification
Interactive Brokers ticket response regarding Kanex account messaging.
financial
Joaquín Medina Jun 17 12:34 AM
RE: Re:[## 708 ##] RE: RMA for EXT-4KHD70M
AVIT Vision requests credit memo for destroyed equipment per RMA 708.
vendor
Microsoft Outlook Jun 16 10:36 PM
Undeliverable: FW: TIER 3 Trending Stocks Part 2 (1 New Red Candle): $DELL, $OSCR, $ONDS, $ZETA, $LMND and $TMC (June 17, 2026-daily)
Microsoft Outlook: Undeliverable: FW: TIER 3 Trending Stocks Part 2 (1 New Red
employee high
Interactive Brokers Client Services Jun 16 9:59 PM
Security Notice for User k******8: Verify Log In
Fake Interactive Brokers security alert requesting account verification.
phishing urgent
Microsoft Outlook Jun 16 9:38 PM
Undeliverable: FW: $QCOM (June 17, 2026-daily)
Microsoft Outlook: Undeliverable: FW: $QCOM (June 17, 2026-daily)
employee high
TDhruv Sharma Jun 16 9:05 PM
[Teams oneOnOne] (Teams DM)
Dhruv Sharma: [Teams oneOnOne] (Teams DM)
personal
Fabiola Hernandez Jun 16 6:55 PM
Tomorrow is Spirit Day – Souvenir T-Shirt Day
Spirit Day reminder: kids invited to wear souvenir t-shirt tomorrow at camp.
family
Derrick Jun 16 6:19 PM
Request for More Info: EXT-USBC2XI-100M - Dual-Host USB 3.2 Gen 1 Extender over CAT6a — USB-C & USB-B Inputs, 100m/328ft
Product inquiry for USB extender; requesting pricing, specs, availability.
vendor
Sydnee Agent (AI) Jun 16 6:00 PM
[Spread Cal] 2026-06-17 — per-stock max_spread_bps results
Sydnee Agent (AI): [Spread Cal] 2026-06-17 — per-stock max_spread_bps results
employee high
Sydnee Agent (AI) Jun 16 5:40 PM
[Calibration Daily] 2026-06-17
Sydnee Agent (AI): [Calibration Daily] 2026-06-17
employee high
Sydnee Agent (AI) Jun 16 5:30 PM
Sydnee algo daily — dev $-2,699 · prod $+0 · 6d window
Sydnee Agent (AI): Sydnee algo daily — dev $-2,699 · prod $+0 · 6d window
employee high
Find My Jun 16 5:24 PM
A sound was played on Kelvin’s iPad mini.
Find My: A sound was played on Kelvin’s iPad mini.
vendor
Sammy Cemo, Matt Pourcho and Anthony DeLorenzo Jun 16 4:04 PM
New Pricing | Fortune 40 Credit | STNL Industrial | 11 Yr. WALT | SoCal
⚠ PHISHING: employee impersonation: display name matches 'anthony' but sender is cbre.com
phishing urgent
Microsoft Store Jun 16 3:23 PM
Meet the new Surface lineup—with limited-time offers
Microsoft Store: Meet the new Surface lineup—with limited-time offers
vendor
[email protected] Jun 16 2:34 PM
New Funding Program
Funding broker offering working capital solutions and consolidation services.
vendor
Sammy Cemo and Anthony DeLorenzo Jun 16 2:03 PM
Single-Story Owner-User Offering in Newport Beach
⚠ PHISHING: employee impersonation: display name matches 'anthony' but sender is cbre.com
phishing urgent
Aarti Gupta Jun 16 1:53 PM
Re: CR-TOUCH6R 6" Widescreen Touch Panel with Knob, RS232/RS485 & PoE
Aarti Gupta: Re: CR-TOUCH6R 6" Widescreen Touch Panel with Knob, RS232/RS
employee high
[email protected] Jun 16 1:43 PM
Action required: Your June booking bonuses expire soon
⚠ PHISHING: phishing subject pattern: 'Action required' from external sender vacationoffer.com
phishing urgent
TAnthony Patino Jun 16 1:30 PM
[Teams oneOnOne] (Teams DM)
LK account overdrawn; bank fee applied, needs replenishment before QB charge.
employee high
TAnthony Patino Jun 16 1:27 PM
[Teams oneOnOne] (Teams DM)
Anthony Patino sent a brief Teams DM referencing 'LK'.
employee
TAnthony Patino Jun 16 1:27 PM
[Teams oneOnOne] (Teams DM)
Anthony Patino reports insufficient funds issue.
employee high
Amazon Payments Jun 16 12:44 PM
Action requise sur le compte Amazon Payments
Fake Amazon Payments suspension notice in French requesting account verification.
phishing urgent
Nick Daniel Jun 16 11:04 AM
Quick question
TriNet HR solution sales inquiry.
vendor low
Aarti Gupta Jun 16 10:04 AM
Re: Order help #1227
Aarti Gupta: Re: Order help #1227
employee high
Aarti Gupta Jun 16 10:03 AM
Re: Order help #1227
Aarti Gupta: Re: Order help #1227
employee high
Aarti Gupta Jun 16 9:59 AM
EXT-USBCPD4K-70M 18Gbps USB-C 4K60 HDBaseT 3.0 Extender with 100W PD (70m)
Aarti Gupta: EXT-USBCPD4K-70M 18Gbps USB-C 4K60 HDBaseT 3.0 Extender with
employee high
Sean McGinley Jun 16 9:58 AM
Order help #1227
Customer inquiry about HDMI extender transmitter compatibility for order #1227.
vendor
IBKR FYI Jun 16 9:51 AM
FYI: Upcoming Exchange Holidays
Exchange holiday notice: MIAX, NASDAQ, NYSE closed June 19.
financial low
IBKR FYI Jun 16 9:27 AM
FYI: Upcoming Exchange Holidays
NASDAQ/MIAX exchange holiday June 19, 2026 — no trading.
financial low
Hims Jun 16 9:02 AM
Kelvin - action required on your account
⚠ PHISHING: phishing subject pattern: 'action required' from external sender icloud.com
phishing urgent
[email protected] Jun 16 9:02 AM
You have a new estimate
Suspicious medical estimate link from Providence—verify legitimacy before clicking.
phishing urgent
Mail Delivery System Jun 16 8:20 AM
Mail delivery failed [Invoice #36077 PO: SH260526762J]
Mail delivery failed for invoice #36077 to Mike Vanderkamp; recipient address rejected.
financial
Mail Delivery System Jun 16 8:19 AM
Mail delivery failed [Invoice #36078 PO: SH260430677J]
Mail delivery failed: [email protected][email protected] for invoice #36078.
vendor
Mail Delivery System Jun 16 8:19 AM
Mail delivery failed [Invoice #36079 PO: SH2606101007J]
Mail delivery failure: invoice to [email protected] rejected by recipient server.
financial
TDhruv Sharma Jun 16 8:16 AM
[Teams oneOnOne] (Teams DM)
Dhruv Sharma: [Teams oneOnOne] (Teams DM)
personal
Zoho Campaigns Jun 16 7:55 AM
Campaign "NEW USB-C + USB-B Dual-Host Extender · 100m" has been successfully Sent - Zoho Campaigns
Zoho Campaigns notification: USB-C/USB-B extender product campaign sent successfully.
employee
Ali Pacheco Jun 16 7:53 AM
Request for More Info: EXT-USBC2XI-100M - Dual-Host USB 3.2 Gen 1 Extender over CAT6a — USB-C & USB-B Inputs, 100m/328ft
Product inquiry for USB 3.2 extender from external vendor.
vendor
KanexPro Jun 16 7:51 AM
NEW USB-C + USB-BDual-Host Extender · 100m
KanexPro: NEW USB-C + USB-BDual-Host Extender · 100m
employee high
KanexPro Jun 16 7:50 AM
NEW USB-C + USB-BDual-Host Extender · 100m
KanexPro: NEW USB-C + USB-BDual-Host Extender · 100m
employee high
KanexPro Jun 16 7:50 AM
NEW USB-C + USB-BDual-Host Extender · 100m
KanexPro: NEW USB-C + USB-BDual-Host Extender · 100m
employee high
KanexPro Jun 16 7:49 AM
NEW USB-C + USB-BDual-Host Extender · 100m
KanexPro: NEW USB-C + USB-BDual-Host Extender · 100m
employee high
TDhruv Sharma Jun 16 7:33 AM
[Teams oneOnOne] (Teams DM)
Dhruv Sharma: [Teams oneOnOne] (Teams DM)
personal
TDhruv Sharma Jun 16 7:32 AM
[Teams oneOnOne] (Teams DM)
Dhruv Sharma: [Teams oneOnOne] (Teams DM)
personal
Bank of America Jun 16 6:16 AM
Your available account balance is low
Bank of America: Your available account balance is low
financial
Let's Talk Supply Chain Jun 16 6:01 AM
Are you ready?
Suspicious meeting confirmation from unknown sender with obfuscation.
phishing urgent
Interactive Brokers Client Services Jun 16 5:18 AM
Message Center Notification
Interactive Brokers ticket response regarding Kanex account notification.
financial
Benjamin & Williams Jun 16 5:03 AM
Commercial Claim Discovery Documents Our file:D-8222 Debtor: VICTORIA ROPA ELEGANTE
Fake debt collector demanding payment on unknown commercial claim within 24h.
phishing urgent
IBKR FYI Jun 16 5:01 AM
FYI: Option Expiration Notification
Oracle options expiring 18JUN2026 — immediate action required.
financial high
IBKR FYI Jun 16 5:00 AM
FYI: Option Expiration Notification
MSTR call option expiring 18JUN2026; action needed if extending position.
financial
Sydnee Agent (AI) Jun 16 4:25 AM
Sydnee nightly — exit_flow audit 2026-06-16 — 0P0 8P1 6R
Sydnee Agent (AI): Sydnee nightly — exit_flow audit 2026-06-16 — 0P0 8P1 6R
employee high

Sydnee nightly — entry_flow audit 2026-06-15 — 0P0 6P1 5R

Sydnee Agent (AI) <[email protected]>
To: Kelvin Yan <[email protected]>
Monday Jun 15, 2026 · 4:20 AM PT · in [email protected]
AI verdict  employee high · confidence: high · by internal-exempt
“Sydnee Agent (AI): Sydnee nightly — entry_flow audit 2026-06-15 — 0P0 6P1 5R”
Reasoning: @sydnee.ai is a protected domain — hard exemption
Sydnee nightly — entry_flow audit — 2026-06-15 P0 findings: 0 P1 findings: 6 Risks: 5 - Area: Entry Flow (Monday theme) - Bugs found (P0 / P1): 0 / 6 (3 carried from 06-08, 3 re-filed from 06-01 audit that were missed in 06-08) - Risks noted: 5 (1 new, 2 carried from 06-08, 2 re-filed from 06-01) Cross-check: `git log --oneline -30` and `docs/strategy_decisions.md` (all 1159 lines) reviewed. `docs/audit_2026-06-08_entry_flow.md` reviewed. Recent commits since 06-08 are all tape/UI (ee9f98d → f2f3827) — none touch bot.py entry flow. All 6 P1s verified against current code. Note: 06-08 audit dropped 3 P1s and 2 risks that were in the 06-01 audit and remain unresolved; re-filed below with evidence. --- Full report (dev branch): https://github.com/kanex1/sydnee.signals/blob/dev/docs/audit_2026-06-15_entry_flow.md Reply FROM [email protected] to [email protected] to request fixes, e.g.: "code_task on sydnee-signals-dev: apply fix for the P0 about RVOL threshold in bot.py" Sydnee Agent will propose + you APPROVE (or plain 'approve') + auto-push to dev. --- Full audit below (first 12 KB) --- # Nightly Audit 2026-06-15 — ENTRY FLOW ## Summary - Area: Entry Flow (Monday theme) - Bugs found (P0 / P1): 0 / 6 (3 carried from 06-08, 3 re-filed from 06-01 audit that were missed in 06-08) - Risks noted: 5 (1 new, 2 carried from 06-08, 2 re-filed from 06-01) Cross-check: `git log --oneline -30` and `docs/strategy_decisions.md` (all 1159 lines) reviewed. `docs/audit_2026-06-08_entry_flow.md` reviewed. Recent commits since 06-08 are all tape/UI (ee9f98d → f2f3827) — none touch bot.py entry flow. All 6 P1s verified against current code. Note: 06-08 audit dropped 3 P1s and 2 risks that were in the 06-01 audit and remain unresolved; re-filed below with evidence. --- ## Findings ### BUG [P1] (carried since 2026-06-08): TV-BXt `_eval_tv_bxt_sym` lacks Friday 15:00 ET entry cutoff **File:** `bot.py:4064–4078` **Evidence:** ```python # bot.py:4064 — Friday EOD flat is guarded by my_pos is not None: if my_pos is not None and price > 0: ... if _now.weekday() == 4 and (_now.hour * 60 + _now.minute) >= 15 * 60 + 45: self._tv_close(my_pos, "TV-BXt Friday EOD flat") # closes at 15:45 ... return sig = self._tv_bxt_signal(sym) # ← runs with my_pos is None AND for scale-in slots 2-10 ``` `_evaluate_symbol` blocks ALL new entries Friday `t_min >= 15*60` at `bot.py:5914`. `_eval_tv_bxt_sym` bypasses `_evaluate_symbol` and has no equivalent guard. Compound issue with `TV_BXT_SCALE_IN=true`: once slot 1 opens a position at 15:10 ET Friday (`my_pos is None → no gate → fires`), slots 2-10 (`my_pos is not None, cur==sig`) see the 15:45 EOD flat check as False and continue adding shares until 15:44 ET. **Impact:** Real-money SNDK/MU (dev) can take new TV-BXt positions—and scale into them—Friday 15:00–15:44 ET, in a window explicitly designated "no new entries" by CLAUDE.md. **Fix:** Add before `sig = self._tv_bxt_signal(sym)` (line 4078), unconditional: ```python _now_gate = datetime.now(ET) if _now_gate.weekday() == 4 and (_now_gate.hour * 60 + _now_gate.minute) >= 15 * 60: if self._tv_bxt_signal(_now_gate): # clear stale Friday signal self._tv_bxt_signal_clear(sym) if hasattr(self, "_tv_scale_state"): self._tv_scale_state.pop(sym, None) return ``` --- ### BUG [P1] (carried since 2026-05-24): `TV_BXT_MAX_AGE_SEC` documented but never implemented — stale signals persist through the weekend **File:** `bot.py:3769` (docstring only) **Evidence:** ```python # bot.py:3769 — docstring promises max-age check: """... Optionally ignore stale signals via TV_BXT_MAX_AGE_SEC.""" # bot.py:3774-3778 — actual implementation: no age check, no TTL: v = r.get(f"tv_bxt_signal:{sym}") return 1 if v == "up" else (-1 if v == "down" else 0) ``` `tv_bxt_signal:{sym}` Redis key has no TTL. A Friday-close webhook survives 65+ hours to fire at Monday 04:15 ET, potentially in the wrong direction vs. the weekend gap. **Impact:** TV-BXt (real money SNDK/MU) can open at Monday open on a signal set Friday evening. **Fix (option 1):** Add TTL on webhook write (`bot.py:~13112`): `r.set(f"tv_bxt_signal:{sym}", sig, ex=50400)` — 14-hour TTL clears before Monday open. **Fix (option 2):** In `_eval_tv_bxt_sym` flat-window, always clear signal (not just when a position is open): ```python if win == "flat": self._tv_bxt_signal_clear(sym) # move outside the my_pos is not None guard ... ``` --- ### BUG [P1] (carried since 2026-05-17): `REVERSE_TIME_DECAY` uses `== "1"` — YAML `"true"` silently disables morning size ramp **File:** `bot.py:6167` **Evidence:** ```python # bot.py:6167 — sole check: if os.environ.get("REVERSE_TIME_DECAY", "0") == "1" and _in_rth: ``` Every other boolean env flag uses `.lower() in ("1", "true", "yes")`. `REVERSE_TIME_DECAY: "true"` in docker-compose YAML silently has no effect. **Impact:** The morning size ramp (50%→100% from 10:00→13:00 ET) is silently off when the compose uses YAML boolean form. No diagnostic log when disabled by misconfiguration. **Fix:** `if os.environ.get("REVERSE_TIME_DECAY", "").lower() in ("1", "true", "yes") and _in_rth:` --- ### BUG [P1] (re-filed from 2026-06-01; omitted from 06-08 audit): 1m BXt bias gate sets `_rsi_ext_pending_dir` BEFORE time gates run — poisons pending state on blocked bars **File:** `bot.py:5830–5845` (1m BXt block) vs `bot.py:5887–5896` (time gates) **Evidence:** ```python # bot.py:5843 — pending state set and function returns BEFORE time gates: ss._rsi_ext_pending_dir = raw_sig self._log_activity(..., "RSI EXTREME PENDING: deferring 1 bar", "warn") return # ← time gates at 5887 are never reached # bot.py:5887-5896 — time gates (never reached when pending fires): in_overnight_gap = 3 * 60 + 50 <= t_min < 4 * 60 in_open_30 = 9 * 60 + 30 <= t_min < 10 * 60 if in_overnight_gap: return if in_open_30: return ``` **Scenario (opening 30-min block):** - `09:35 ET`: rsi_extreme + 1m BXt against → pending set, returns before open-30 gate. Log incorrectly says "deferring 1 bar" instead of "blocked: opening 30 min." - `10:01 ET`: `_pend_dir == raw_sig` (set at 09:35) → entry fires at 50% size immediately. - **Correct behavior**: pending is not set; at 10:01 ET the signal is fresh → defers again → entry fires at `10:06 ET`, one full bar later. **Impact:** rsi_extreme + 1m-BXt-against signals at open-30 start fire 5 min earlier than intended. Off-hours toggle + overnight gap: same mechanism applies during the 03:50–04:00 ET gap. **Fix:** Move time gates above the 1m BXt block or add early-abort inside the bias block: ```python # top of 1m BXt block, after computing in_overnight_gap/in_open_30: if in_overnight_gap or in_open_30: pass # let time-gate below handle it; do not arm pending else: ss._rsi_ext_pending_dir = raw_sig self._log_activity(...) return ``` --- ### BUG [P1] (re-filed from 2026-06-01; omitted from 06-08 audit): `daily_loss_limit` equals `capital` — DLL gate non-functional on prod **File:** `config.json:3,6`; `core/risk.py:112` **Evidence:** ```json { "capital": 50000, "daily_loss_limit": 50000 } ``` `core/risk.py:112`: gate fires only when `today_pnl < -daily_loss_limit`. With limit == capital, the bot must lose 100% of paper equity before the DLL halts entries. Dev bypasses this via `DISABLE_DAILY_LOSS_LIMIT=true` (env, added 2026-06-02) — but that env var is dev-only per strategy_decisions.md: "Hard re-enable the gate before any real-money promotion — this flag is NOT for prod." Prod is currently at config.json defaults with no env override. **Impact:** On prod (real money since 2026-05-01), the daily-loss circuit-breaker is effectively disabled. A runaway session can burn the full $50K account before the DLL stops entries. **Fix:** `"daily_loss_limit": 1500` (3% of $50K, matching `core/risk.py:RiskConfig` dataclass default). Also verify prod docker-compose does NOT set `DISABLE_DAILY_LOSS_LIMIT`. --- ### BUG [P1] (re-filed from 2026-06-01; omitted from 06-08 audit): `TV_BXT_TRAIL_AGAINST` default mismatch — history replay shows 50% wider trail than live **File:** `bot.py:3838` vs `bot.py:14923` **Evidence:** ```python # bot.py:3838 — live OBV-trail path: agnst = float(os.environ.get("TV_BXT_TRAIL_AGAINST", "1.0")) # bot.py:14923 — /api/trade/history replay path: agnst = float(os.environ.get("TV_BXT_TRAIL_AGAINST", "1.5")) ``` When `TV_BXT_TRAIL_AGAINST` is not set in the environment (defaults active), the stop-analysis dashboard reports a 1.5× trailing stop while the live bot ran a 1.0× stop. Any post-trade stop-placement audit on unset-env sessions is wrong by 50%. **Impact:** Historical stop-analysis for TV-BXt is misleading when env var unset; could produce incorrect "bot ran tight stop → bad outcome" vs "bot ran loose stop → preventable" conclusions. **Fix:** Change `bot.py:14923` default from `"1.5"` to `"1.0"`. One-line fix. --- ### RISK (new tonight): `TV_BXT_TAPE_ENTRY_GATE` has no entry in `strategy_decisions.md` **File:** `bot.py:4146–4181`; `docs/strategy_decisions.md` (entire file reviewed) **Evidence:** ```python # bot.py:4146 — comments date the feature to 2026-06-11: # TV_BXT_TAPE_ENTRY_GATE=true (dev opt-in, default OFF — built 2026-06-11 # alongside the tick-level T&S upgrade). ``` `strategy_decisions.md` has no entry for `TV_BXT_TAPE_ENTRY_GATE`. No hypothesis, backtest, validation window, or success criteria exist. When the gate blocks, it calls `self._tv_bxt_signal_clear(sym)` — permanently clearing the webhook signal — with no decision log supporting that behavior. **Impact:** Signal-clearing on a block is intentional but undocumented; if the gate fires on transient tape noise (book thinned momentarily, no stale/missing scenario that would fail-open), the next same-direction webhook must re-fire before the bot re-enters. No ability to audit whether this improved or hurt outcomes without a baseline. **Recommendation:** Add a strategy_decisions.md entry with: hypothesis, backtest basis (or explicit "none — observational"), validation window, and success criteria. Is it currently enabled on dev (`TV_BXT_TAPE_ENTRY_GATE=true`)? Verify dev compose. --- ### RISK (carried since 2026-06-08): TV-BXt `_eval_tv_bxt_sym` opens new entries during RTH open-30 block (9:30–10:00 ET) **File:** `bot.py:3971–3974` (design comment); `bot.py:4139` **Evidence:** Design comment explicitly states TV-BXt does not honor "hold" windows. `TV_BXT_RTH_ONLY=true` checks `570 <= _t_min < 960` (09:30–16:00 ET) — this ALLOWS entries during 09:30–10:00 ET, whereas standard flow blocks ALL triggers during this window. **Impact:** SNDK/MU TV-BXt entries at 09:35–09:59 ET at wide opening spreads. CLAUDE.md says "06:30–07:00 PT: ALL triggers blocked" but TV-BXt is intentionally exempt. **Recommendation:** Document in CLAUDE.md's Entry Time Blockers table. Consider shifting the RTH-only window to `600 <= _t_min < 960` (10:00–16:00 ET) to align with standard flow. --- ### RISK (carried since 2026-06-08): `_check_pullback` overnight gap bypass preserves stale pending entries **File:** `bot.py:6611–6614` **Evidence:** ```python if 3 * 60 + 50 <= _t_min < 4 * 60: # Overnight gap: don't cancel — let pending survive to fire after gap closes return ``` A pullback queued at 03:47 ET has a 180s timeout. By 04:00 ET, elapsed=780s > 180s → fires unconditionally on timeout with no re-validation of RV, spread, or regime. Entry is based on market conditions up to 13 minutes stale. **Impact:** Off-hours pullback entries can fire at 04:00 ET on conditions from 03:47 ET. **Recommendation:** Re-check RV+spread at fire-time, or cancel pending where `elapsed > PULLBACK_TIMEOUT_SEC + 600` after the gap re-opens. --- ### RISK (re-filed from 2026-06-01; omitted from 06-08 audit): `in_rth` at `bot.py:5890` lacks weekday guard **File:** `bot.py:5890` **Evidence:** ```python # bot.py:5890 — no weekday check: in_rth = 9 * 60 + 30 <= t_min < 16 * 60 # bot.py:3738 — BXt 1m has the guard: _in_rth = (9 * 60 + 30 <= tmin < 16 * 60) and now_et.weekday() < 5 # bot.py:5687 — RSI extreme TF check has the guard: _in_rth_session = 570 <= t_min < 960 and now_et.weekday() < 5 ``` If a weekend bar arrives (stale Polygon push), `in_rth = True` for 09:30–16:00 ET. The off-hours gate at `bot.py:5917` (`if not in_rth and trigger_type != "rsi_extreme"`) would NOT block BXt/divergence entries. **Impact:** Theoretical — IBKR paper does not send weekend bars. Latent inconsistency. **Fix:** `in_rth = 9 * 60 + 30 <= t_min < 16 * 60 and now_et.weekday() < 5` --- ### RISK (re-filed from 2026-06-01; omitted from 06-08 audit): `_rsi_ext_pending_dir` not persisted — restart loses 1m BXt pending state **File:** `bot.py:5840–5850`; `core/persistence.py` (absent) **Evidence:** `_rsi_ext_pending_dir` is an in-memory attribute on `SymbolState`. No DB column or Redis key stores it. On any bot restart (container recreate, daily rotation), the state is lost. A deferred entry (1m BXt against on bar N) re-defers on bar N+1