How it's set up, what it's scheduled to do, and how it's holding up.
Every buy and sell is plain Python — fixed rules, no AI deciding trades. The only place a model is involved is the nightly review, which suggests tweaks that you approve by text.
Today was effectively a no-trade day: only one candidate (AVB) was scanned and it was rejected by the gap-check, so no new signals were tested against the entry logic and no exits or trims fired on the 4 existing positions. The AVB rejection looks like a data quality issue rather than a strategy issue — the intent price ($68.14) and quote price ($183.17) differ by 169%, far beyond any plausible single-day gap, suggesting a stale or mismatched price feed rather than a genuine overnight gap; this is worth a human checking the pricing/ticker mapping rather than adjusting gap thresholds. Separately, the book held up reasonably well through a broad risk-off day (SPY -0.45%, QQQ -0.80%, GLD -1.49%, XLE -0.94%), finishing at -0.23%, which is a modest data point on portfolio construction but says nothing about individual entry signals since no trades occurred. The trailing 14-day window only contains 2 closed trades (both winners, avg +3.2%, ~16.5 day hold), which is far too small a sample to attribute performance to any specific oversold or momentum signal. Given the constraint that changes require a clear pattern across at least 5 recent trades, there is no basis today for touching any signal weights. The main actionable lesson is operational/data hygiene (verify the AVB price feed) rather than a strategy or weighting lesson.
Evidence: - Single scan candidate (AVB) was filtered out by the gap check: intent_price=68.14 vs quote_price=183.17, a 168.8% discrepancy vs the 5% threshold — almost certainly a stale/bad price rather than a real gap. - n_entries=0, n_exits=0, n_trails=0 for the entire session — zero new signal outcomes to evaluate weight performance against. - Trailing 14-day stats show only n_trades=2, well below the >=5 trade minimum required before proposing any weight tuning. - Day P&L of -0.23% was resilient versus a broadly weak tape (SPY -0.45%, QQQ -0.80%, GLD -1.49%, XLE -0.94%), but this reflects existing holdings, not any signal being tested today.
Confidence: low · Proposed Δweights: {}
Today was a quiet, low-activity session with essentially nothing for signal-weight tuning to work from. The only oversold-bounce candidate scanned, AVB, was blocked by the gap filter because its intent price ($68.14) diverged 168.8% from the live quote ($183.17) — far beyond the 5% threshold — which looks less like a genuine market gap and more like a stale or corrupted intent price, meaning the filter did its job but the upstream price feed or order-generation step likely needs a human look. No entries or exits occurred, the four existing positions were held flat through both the midday rebalance and EOD close, and the account finished essentially flat (+0.07%) on a day when SPY and QQQ each rallied roughly 0.85-0.87% under low VIX (15.84) — consistent with the strategy's gates correctly keeping it sidelined rather than any signal malfunction. The trailing 14-day sample is only 3 trades, well short of the 5-trade minimum needed to infer any pattern, and today contributed zero new closed trades to that sample. With no qualifying evidence base, any weight adjustment right now would be tuning on noise rather than signal, so none is proposed this cycle. The one real action item is operational: verify the AVB intent-price source isn't systematically generating bad prices, since a smaller error could someday slip past the 5% gap guard.
Evidence: - AVB entry blocked by gap filter: intent price $68.14 vs quote $183.17 (168.8% gap vs 5% threshold) — pattern consistent with stale/bad price data, not a real market gap. - Zero entries and zero exits today; 4 existing positions unchanged through midday rebalance and EOD close, day pnl +0.07%. - Trailing 14-day sample = 3 trades (win rate 66.7%, avg pnl -1.36%, avg hold 18d) — below the >=5 trade minimum required before adjusting weights. - Broad market rallied (SPY +0.85%, QQQ +0.87%, VIX 15.84) while the strategy stayed sidelined, consistent with gates functioning as intended rather than missed signal opportunity.
Confidence: low · Proposed Δweights: {}
Today was a near-null trading day: the scanner surfaced exactly one candidate (AVB), which was blocked by the gap filter before any order was placed, and the four existing positions saw zero exits, zero trails, and zero new entries. The account drifted down 0.78% in equity, which tracks a broad risk-off tape (SPY -0.60%, QQQ -1.06%, IWM -1.01%, GLD -1.73%) rather than any signal or exit-logic failure, so there is nothing here that implicates the oversold-bounce or momentum-continuation signal weights. The trailing 14-day window still only holds 4 completed trades, one below the 5-trade minimum this process requires before touching weights, and the win rate (75%) alongside a slightly negative average P&L (-0.81%) is exactly the kind of small-sample noise that should not be extrapolated into a rule change. Separately, the AVB gap-skip is worth flagging on its own: intent_price of $68.14 versus a quote_price of $183.17 is a ~169% discrepancy, well beyond what a real overnight gap in a REIT like AVB would produce, and looks more like a stale or mismatched price feed than a genuine gap-filter save. That data-quality question is unrelated to signal weighting and should be checked by a human rather than papered over with a strategy tweak. Net: no weight changes are justified today.
Evidence: - Trailing 14-day stats show only n_trades=4, below the >=5-trade minimum required before proposing weight changes. - Zero entries and zero exits occurred today (n_entries=0, n_exits=0, n_trails=0 across rebalance_midday, act_close, and eod_summary events); the only candidate (AVB) never reached order placement. - AVB was blocked by the gap filter with gap_pct=1.688 (intent_price $68.14 vs quote_price $183.17) — a discrepancy far larger than a normal overnight gap, suggesting a stale/erroneous price rather than a real market move. - Day P&L of -0.78% is consistent with the broad market decline (SPY -0.60%, QQQ -1.06%, IWM -1.01%, GLD -1.73%, XLE -0.58%), not with any entry/exit signal underperforming. - Trailing win_rate=0.75 but avg_pnl_pct=-0.0081 on just 4 trades — too small and internally inconsistent a sample to attribute to any specific signal.
Confidence: low · Proposed Δweights: {}
Today (2026-09-09) generated zero actual trades: the only scan candidate, AVB, was rejected by the gap filter, and no entries, exits, or trailing stops occurred during midday rebalance or close. The AVB gap rejection looks like a data integrity problem rather than a real market gap: intent_price ($68.14) vs quote_price ($183.17) is a 168.8% divergence, far beyond the 5% gap threshold, which is more consistent with a stale reference price or an unadjusted stock split than genuine intraday movement, and is unrelated to any entry-signal weighting. Two positions (F, AAPL) disappeared via reconciliation drops rather than through the normal exit path, an operational/bookkeeping matter, not a signal-quality one. With zero entries and zero exits today, there is no new trade-level evidence — no composite scores, no signal firings — to attribute to any oversold-bounce or momentum-continuation signal. The trailing 14-day stats show 6 trades at a 66.7% win rate but a negative average P&L (-2.33%) with a long average hold (21.5 days), suggesting a possible pattern of frequent small wins offset by a few larger losses, but the journal provides no per-trade signal-composite breakdown, so this cannot be attributed to any specific signal weight without guessing. Given the constraints require clear, attributable patterns across multiple trades before adjusting weights, and no such attribution is available, no weight changes are justified from today's session. The AVB price discrepancy and the two off-cycle reconciliation drops warrant human investigation into the data/reconciliation pipeline before the next session, independent of any weight tuning.
Evidence: - AVB entry_skipped_gap: intent_price=68.14 vs quote_price=183.17, a 168.8% gap vs the 5% threshold — anomalous magnitude suggests a data/reference-price bug, not a real gap - n_entries=0, n_exits=0, n_trails=0 across scan, midday rebalance, and EOD close — no trade-level signal evidence generated today - Two reconciled drops (F, AAPL) occurred outside the normal exit flow, indicating a possible broker/state sync issue rather than a signal or exit-rule outcome - Trailing 14d: 6 trades, 66.7% win rate but avg_pnl_pct=-2.33% and avg_hold_days=21.5 — hints at win/loss size asymmetry, but no per-signal composite data exists to attribute this to specific weights - Day P&L was flat (+0.058%) on 4 held positions with no rebalancing activity, consistent with a no-signal, data-quality-limited session
Confidence: low · Proposed Δweights: {}
Today produced only two live entries (MU and F), both under momentum-continuation mode with an identical signal fingerprint: s_mom_fresh_breakout, s_mom_pullback_bounce, s_mom_rsi_rising, and s_mom_macd_strong all maxed at 1.0 while s_mom_volume_thrust sat at 0.0, so there is no within-day differentiation to attribute performance to any single signal. The trailing 14-day window totals just 6 trades with no per-trade signal breakdown supplied, which is below the >=5-trade threshold required to isolate a signal-specific pattern rather than noise, and well short of enough data to touch either mode's weight vector responsibly. A more pressing issue than signal tuning surfaced today: prices_db_stale reported the price feed is 4 days old, and the AVB entry was skipped for an implausible 168% gap (intent_price 68.14 vs quote_price 183.17) that looks like a stale-data artifact rather than a genuine price gap — the 5% gap filter did its job here, but the root cause (stale prices feeding candidate generation) should be fixed before trusting subsequent scans. Separately, the trailing 14-day win rate of 66.7% alongside a negative average P&L of -2.33% suggests losers are outsized relative to winners, which is a risk/reward-shape concern worth monitoring, not a signal-weight problem, since we lack the signal composition of the losing trades. Given both the data-quality flag and the thin sample, no weight changes are justified today; the right action is to keep weights unchanged and confirm the price feed is current before drawing any conclusions from tomorrow's signals.
Evidence: - Only 2 entries today (MU, F), both momentum-mode with an identical signal set (4 signals at 1.0, s_mom_volume_thrust at 0.0), so no comparative signal performance data exists from today alone. - Trailing 14-day stats cover only 6 trades total with no per-trade signal breakdown available, well under the >=5-trade-per-pattern threshold needed to justify any weight change. - prices_db_stale event shows the price feed is 4 days old (latest 2026-09-04 vs run date 2026-09-08), which likely explains the AVB entry_skipped_gap anomaly (intent_price 68.14 vs quote_price 183.17, a 168% 'gap') — a data-integrity issue, not a signal-tuning signal. - Trailing win_rate is a healthy 66.7% (4/6) but avg_pnl_pct is -2.33%, implying losers outweigh winners in magnitude; this is a risk/reward asymmetry to watch, not evidence against any specific weighted signal.
Confidence: low · Proposed Δweights: {}
Today (2026-09-07, a Sunday) generated no new trading evidence: the scan and open-action steps were skipped for the closed session, and both the midday rebalance and the close action logged zero exits and zero trails. The only substantive data available is the trailing 14-day aggregate: 6 trades with a 66.7% win rate but a slightly negative average P&L (-2.33%) and a long average hold of 21.5 days, which suggests losing trades are running larger or longer than winners rather than any single signal misfiring. That combination (good hit rate, negative expectancy) points at exit/risk management — position sizing on losers, or losers riding closer to the hard-stop/time-exit — rather than at entry-signal quality, and the journal provides no per-trade signal-composite breakdown to attribute outcomes to specific oversold or momentum signals. Without that granularity, and with only 6 trades spanning both entry modes at the minimum evidence threshold, any weight reallocation would be speculative rather than pattern-driven. The conservative call is to hold all weights steady this cycle and flag the win-rate/P&L divergence for a human to inspect at the trade level (e.g., which mode and which exit type produced the losses) before touching signal weights.
Evidence: - 2026-09-07 journal: scan_skipped and act_open_skipped both due to closed session (next session 2026-09-08); rebalance_midday and act_close both show n_exits=0, n_trails=0 — no new trade or exit data today. - Trailing 14-day: 6 trades, 4 wins (66.7% win rate) but avg_pnl_pct = -2.33%, and avg_hold_days = 21.5 — implies losers are outsized relative to winners, a risk/exit pattern rather than an entry-signal pattern. - No per-trade signal-composite or per-mode breakdown was supplied, so the 6-trade sample cannot be attributed to any individual oversold or momentum signal. - 6 trades is at the stated minimum threshold and mixes both entry modes, which is too thin and too conflated to justify reallocating specific signal weights.
Confidence: low · Proposed Δweights: {}
{
"min_composite": 0.4,
"min_required_signals": 2,
"momentum_min_composite": 0.55,
"momentum_min_required_signals": 4,
"long_swing_pct": 0.0,
"short_swing_pct": 1.0,
"max_long_names": 0,
"max_short_names": 8,
"signal_strength_sizing": true,
"entry_gap_skip_pct": 0.05,
"short_swing_profit_target_pct": 0.15,
"short_swing_trail_pct": 0.08,
"short_swing_hard_stop_pct": 0.08,
"short_swing_time_stop_days": 30,
"short_swing_time_stop_pnl_pct": 0.02,
"momentum_profit_target_pct": 0.1,
"momentum_hard_stop_pct": 0.05,
"momentum_time_stop_days": 20,
"momentum_time_stop_pnl_pct": 0.01,
"momentum_sma20_exit": false,
"fast_bear_skip_pct": -0.03,
"long_swing_atr_mult": 2.5,
"long_swing_overbought_rsi_w": 60,
"long_swing_lock_in_pct": 0.3,
"long_swing_max_weeks": 18,
"earnings_blackout_before_days": 2,
"earnings_blackout_after_days": 1,
"backtest": {
"start_date": "2006-01-01",
"starting_capital": 100000,
"slippage_bps": 10,
"max_per_name_pct": 15
},
"sentinel": {
"gap_log_pct": 0.04,
"gap_page_pct": 0.07,
"day_pnl_pause_pct": -0.03,
"dd_pause_pct": -0.1
},
"max_per_sector": 2,
"max_new_entries_per_day": 3,
"momentum_trail_atr_mult": 3.0
}{
"s_rsi_daily": 0.25,
"s_rsi_weekly": 0.25,
"s_bb_lower": 0.2,
"s_macd_bull_cross": 0.15,
"s_volume_capitulation": 0.15,
"s_mom_fresh_breakout": 0.3,
"s_mom_pullback_bounce": 0.25,
"s_mom_rsi_rising": 0.15,
"s_mom_macd_strong": 0.15,
"s_mom_volume_thrust": 0.15
}/Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( [2026-09-15 01:04:34] market closed — heartbeat /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( [2026-09-15 02:05:04] market closed — heartbeat /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn( /Users/dylannassir/scripts/gilbert_trader/venv/lib/python3.9/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn(