scheduler
daemon
watchdog
alpha_rank
atlas
dual_momentum
dynamo
levetf
megahold
qbeater
retirement401k
sector_etf
sector_pulse
stock_scorer
trendrunner
stock_scorer.log
last 150 lines
Refresh
2026-08-06 13:47:35,905 | 44319 | 8469323136 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491203339247384748(5) context=<futu.quote.open_quote_context.OpenQuoteContext object at 0x111390a50>
2026-08-06 13:47:35,954 | 44319 | 6134247424 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(5) reason=CallClose
2026-08-06 13:47:36,136 | 44319 | 8469323136 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491203340219411169(6) context=<futu.trade.open_trade_context.OpenSecTradeContext object at 0x1166bec50>
2026-08-06 13:47:36,146 | 44319 | 6134247424 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(6) reason=CallClose
2026-08-06 13:47:36,147 | 44319 | 8469323136 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491203340263850522(7) context=<futu.trade.open_trade_context.OpenSecTradeContext object at 0x11a4ae790>
2026-08-06 13:47:36,252 [INFO] Moomoo: net_equity=$46,979.19
2026-08-06 13:47:36,253 | 44319 | 6134247424 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(7) reason=CallClose
2026-08-06 13:47:36,254 | 44319 | 8469323136 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491203340711546770(8) context=<futu.trade.open_trade_context.OpenSecTradeContext object at 0x116677a90>
2026-08-06 13:47:36,257 | 44319 | 6134247424 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(8) reason=CallClose
2026-08-06 13:47:36,258 | 44319 | 8469323136 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491203340734488115(9) context=<futu.trade.open_trade_context.OpenSecTradeContext object at 0x1162ee3d0>
2026-08-06 13:47:36,265 | 44319 | 6134247424 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(9) reason=CallClose
2026-08-06 13:47:36,279 [INFO] submit_signals: DELL BUY skipped — already queued today (2026-08-06)
2026-08-06 13:47:36,280 [INFO] submit_signals: TER BUY skipped — already queued today (2026-08-06)
2026-08-06 13:47:36,286 [INFO] submit_signals: 1 orders placed, 2 skipped (equity=$46,979)
2026-08-06 13:47:36,286 [INFO] Trade engine: 2 BUY + 1 SELL + 0 TRIM signals submitted
2026-08-06 13:47:38,375 [INFO] Saved: /Users/mvr113/QuantOS/reports/portfolio_20260806_1347.csv + report_20260806_1347.html
2026-08-06 13:47:38,420 [INFO] Wrote 237 latest_score rows to central_db (top 30 in last_scores legacy file)
2026-08-06 13:47:38,423 [INFO] Wrote last_scores.json (legacy fallback, top 30 tickers)
2026-08-06 13:47:38,426 [INFO] Wrote regime_history row to central_db (regime=BUY, session=regular)
2026-08-06 13:47:38,427 [INFO] Wrote regime_log.json (legacy fallback, regime=BUY)
2026-08-06 13:47:38,427 [INFO] Pipeline complete.
[2026-08-06T14:45:30.493184] --- RUNNING /Users/mvr113/QuantOS/.venv/bin/python3 /Users/mvr113/QuantOS/engines/stock_scorer/brain.py ---
--- Starting QuantOS Stock Scorer Brain ---
⚠️ Warning: Redis is not running natively. Falling back to in-memory dict for cache.
2026-08-06 14:45:34,932 [INFO]
============================================================
ALPHA SCORER v5.0 — MANUAL — 2026-08-06 14:45:34 CT
============================================================
2026-08-06 14:45:34,933 [INFO] Market session: regular — Regular session (15:45 ET)
2026-08-06 14:45:34,937 [INFO] No live holdings found at broker — starting with empty portfolio.
2026-08-06 14:45:34,938 [INFO] Loading universe of stocks from shared_cache/universe.json...
2026-08-06 14:45:34,938 [INFO] ✓ Loaded 507 tickers from /Users/mvr113/QuantOS/engines/shared_cache/universe.json
2026-08-06 14:45:34,939 [INFO] Fetching 1y prices via data_provider for 501 tickers...
[data_provider] DuckDB missing data for AIZ (has 0, needs 260). Falling back to Public...
2026-08-06 14:45:35,201 [INFO] [data_provider] DuckDB missing data for AIZ (has 0, needs 260). Falling back to Public...
[data_provider] DuckDB missing data for ERIE (has 0, needs 260). Falling back to Public...
2026-08-06 14:45:39,547 [INFO] [data_provider] DuckDB missing data for ERIE (has 0, needs 260). Falling back to Public...
[data_provider] DuckDB missing data for EVRG (has 0, needs 260). Falling back to Public...
2026-08-06 14:45:41,262 [INFO] [data_provider] DuckDB missing data for EVRG (has 0, needs 260). Falling back to Public...
[data_provider] DuckDB missing data for FDXF (has 0, needs 260). Falling back to Public...
2026-08-06 14:45:43,150 [INFO] [data_provider] DuckDB missing data for FDXF (has 0, needs 260). Falling back to Public...
[data_provider] DuckDB missing data for NDSN (has 0, needs 260). Falling back to Public...
2026-08-06 14:45:46,467 [INFO] [data_provider] DuckDB missing data for NDSN (has 0, needs 260). Falling back to Public...
2026-08-06 14:45:50,941 | 22434 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491217998497174259(1) context=<futu.quote.open_quote_context.OpenQuoteContext object at 0x10fc96e90>
2026-08-06 14:45:50,963 | 22434 | 6210744320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(1) reason=CallClose
Webull snapshots: 451 quotes fetched
2026-08-06 14:46:12,242 [INFO] Webull snapshots: 451 quotes fetched
2026-08-06 14:46:20,583 [INFO] data_provider: 500/501 clean
2026-08-06 14:46:20,587 [INFO] Fetching live quotes...
2026-08-06 14:46:20,590 | 22434 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491218122848604739(2) context=<futu.quote.open_quote_context.OpenQuoteContext object at 0x110ebb790>
2026-08-06 14:46:20,715 [INFO] broker live quotes: 500/500 [moomoo:49 | webull:451]
2026-08-06 14:46:20,723 | 22434 | 6210744320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(2) reason=CallClose
2026-08-06 14:46:20,836 [INFO] Injected 500 live prices into historical data (real-time screens)
2026-08-06 14:46:20,836 [INFO] Fetching fundamentals (live, no local cache)...
2026-08-06 14:46:20,836 [INFO] Fetching fundamentals for 500 tickers (10 workers)...
2026-08-06 14:46:24,726 [INFO] Fundamentals: 50/500
2026-08-06 14:46:27,043 [INFO] Fundamentals: 100/500
2026-08-06 14:46:29,472 [INFO] Fundamentals: 150/500
2026-08-06 14:46:32,034 [INFO] Fundamentals: 200/500
2026-08-06 14:46:34,467 [INFO] Fundamentals: 250/500
2026-08-06 14:46:36,939 [INFO] Fundamentals: 300/500
2026-08-06 14:46:39,254 [INFO] Fundamentals: 350/500
2026-08-06 14:46:41,975 [INFO] Fundamentals: 400/500
2026-08-06 14:46:44,389 [INFO] Fundamentals: 450/500
2026-08-06 14:46:46,952 [INFO] Fundamentals: 500/500
2026-08-06 14:46:46,989 [INFO] 📅 Earnings guard: ABNB reports ~Aug 06
2026-08-06 14:46:46,989 [INFO] 📅 Earnings guard: AFL reports ~Aug 06
2026-08-06 14:46:46,990 [INFO] 📅 Earnings guard: AIG reports ~Aug 06
2026-08-06 14:46:46,990 [INFO] 📅 Earnings guard: AKAM reports ~Aug 06
2026-08-06 14:46:46,992 [INFO] 📅 Earnings guard: ED reports ~Aug 06
2026-08-06 14:46:46,993 [INFO] 📅 Earnings guard: GEN reports ~Aug 06
2026-08-06 14:46:46,995 [INFO] 📅 Earnings guard: MCHP reports ~Aug 06
2026-08-06 14:46:46,995 [INFO] 📅 Earnings guard: MNST reports ~Aug 06
2026-08-06 14:46:46,996 [INFO] 📅 Earnings guard: PPL reports ~Aug 07
2026-08-06 14:46:46,997 [INFO] 📅 Earnings guard: RMD reports ~Aug 06
2026-08-06 14:46:46,997 [INFO] 📅 Earnings guard: RSG reports ~Aug 06
2026-08-06 14:46:46,998 [INFO] 📅 Earnings guard: TTD reports ~Aug 06
2026-08-06 14:46:46,998 [INFO] 📅 Earnings guard: TTWO reports ~Aug 07
2026-08-06 14:46:46,998 [INFO] 📅 Earnings guard: VST reports ~Aug 07
2026-08-06 14:46:46,999 [INFO] Earnings guard: 14 tickers excluded (reporting within 2 days)
2026-08-06 14:46:47,000 [INFO] Applying pre-screens...
2026-08-06 14:46:57,379 [INFO] Screens: 234 passed | 266 filtered | 5 trim candidates
2026-08-06 14:46:57,379 [INFO] - RSI oversold: 81
2026-08-06 14:46:57,379 [INFO] - price below 50 EMA: 65
2026-08-06 14:46:57,379 [INFO] - price below 200 EMA: 38
2026-08-06 14:46:57,379 [INFO] - low current ratio: 34
2026-08-06 14:46:57,379 [INFO] - excessive D/E: 33
2026-08-06 14:46:57,381 [INFO] Universe after screening: 234 stocks
2026-08-06 14:46:57,381 [INFO] Checking market regime...
2026-08-06 14:46:57,398 | 22434 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491218277231072219(3) context=<futu.quote.open_quote_context.OpenQuoteContext object at 0x111522f50>
2026-08-06 14:46:57,449 [INFO] get_regime: SPY via data_provider OK
2026-08-06 14:46:57,449 | 22434 | 6210744320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(3) reason=CallClose
2026-08-06 14:46:58,448 [INFO] get_regime: VIX long history via data_provider OK
2026-08-06 14:46:58,470 [INFO] Regime: BUY | SPY $768.1 vs EMA20 $752.77 | VIX 15.33 (EMA50=17.4, RSI=43, spike=-3.0%) | Margin: 2.00× (alpha window)
2026-08-06 14:47:00,271 | 22434 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491218289280220340(4) context=<futu.quote.open_quote_context.OpenQuoteContext object at 0x11160ff50>
2026-08-06 14:47:00,273 | 22434 | 6210744320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(4) reason=CallClose
2026-08-06 14:47:01,104 | 22434 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491218292776170799(5) context=<futu.quote.open_quote_context.OpenQuoteContext object at 0x10fcb5e90>
2026-08-06 14:47:01,166 | 22434 | 6210744320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(5) reason=CallClose
2026-08-06 14:47:01,180 [INFO] Pulse: BULL [NORMAL] (score=+14.52) VIX=15.3 RSI=43 | SPY > SMA20 > SMA50 | IWM > SMA20 | Breadth=86% | CHOP=37.9 HV20=14.3% | HYG_ext=0.4% VIX3M=0.82 TLT < SMA20 UUP < SMA10 | bre_div=-16.0% | 10Y-3M=0.94% | DD=-0.4% mom20=2.2% vel5=3.6% | reversal=False
2026-08-06 14:47:01,208 [INFO] MarketPulse BULL → agg_mult=1.50, stop_tighten=0.60
2026-08-06 14:47:01,409 [INFO] Fetching real alpha signals for 234 tickers (live, no local cache)...
2026-08-06 14:47:04,925 [INFO] Alpha signals: 20/234
2026-08-06 14:47:06,101 [INFO] Alpha signals: 40/234
2026-08-06 14:47:07,913 [INFO] Alpha signals: 60/234
2026-08-06 14:47:09,167 [INFO] Alpha signals: 80/234
2026-08-06 14:47:09,880 [INFO] Alpha signals: 100/234
2026-08-06 14:47:10,462 [INFO] Alpha signals: 120/234
2026-08-06 14:47:11,125 [INFO] Alpha signals: 140/234
2026-08-06 14:47:12,069 [INFO] Alpha signals: 160/234
2026-08-06 14:47:12,623 [INFO] Alpha signals: 180/234
2026-08-06 14:47:13,312 [INFO] Alpha signals: 200/234
2026-08-06 14:47:14,279 [INFO] Alpha signals: 220/234
2026-08-06 14:47:29,063 [INFO] Alpha done. Avg total: 18.8pts | Cluster buys: 0
2026-08-06 14:47:29,063 [INFO] Building composite scores...
2026-08-06 14:47:29,341 [INFO] Scores: 28.5–134.5 | Avg alpha: 18.8pts | Regime weights: BUY
2026-08-06 14:47:29,382 | 22434 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491218411383915761(6) context=<futu.quote.open_quote_context.OpenQuoteContext object at 0x110959d10>
2026-08-06 14:47:29,399 | 22434 | 6210744320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(6) reason=CallClose
Webull snapshots: 294 quotes fetched
2026-08-06 14:47:42,700 [INFO] Webull snapshots: 294 quotes fetched
2026-08-06 14:47:42,708 [INFO] Industry pulse gate: blocking new entries ['ABT', 'CDW', 'IP', 'JKHY', 'MPC', 'PKG', 'PSX', 'STE', 'VLO'] (industries: ['Information Technology Services', 'Medical Devices', 'Oil & Gas Refining & Marketing', 'Packaging & Containers'])
2026-08-06 14:47:42,716 [INFO] Industry cap removed 7: ['FTNT (sector cap: Technology)', 'HPE (sector cap: Technology)', 'LITE (sector cap: Technology)', 'COHR (sector cap: Technology)', 'ANET (sector cap: Technology)', 'NTAP (sector cap: Technology)', 'NVDA (sector cap: Technology)']
2026-08-06 14:47:42,739 [INFO] Portfolio: 23 positions | Sells: 0 | Trim alerts: 5 | Stop-losses: 0
2026-08-06 14:47:43,075 | 22434 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491218468816363754(7) context=<futu.quote.open_quote_context.OpenQuoteContext object at 0x11172a290>
2026-08-06 14:47:43,130 | 22434 | 6210744320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(7) reason=CallClose
2026-08-06 14:47:43,305 | 22434 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491218469783909677(8) context=<futu.trade.open_trade_context.OpenSecTradeContext object at 0x114ece310>
2026-08-06 14:47:43,309 | 22434 | 6210744320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(8) reason=CallClose
2026-08-06 14:47:43,310 | 22434 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491218469803150279(9) context=<futu.trade.open_trade_context.OpenSecTradeContext object at 0x1116b71d0>
2026-08-06 14:47:43,414 [INFO] Moomoo: net_equity=$47,175.18
2026-08-06 14:47:43,414 | 22434 | 6210744320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(9) reason=CallClose
2026-08-06 14:47:43,415 | 22434 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491218470242706170(10) context=<futu.trade.open_trade_context.OpenSecTradeContext object at 0x115d235d0>
2026-08-06 14:47:43,418 | 22434 | 6210744320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(10) reason=CallClose
2026-08-06 14:47:43,419 | 22434 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491218470264157737(11) context=<futu.trade.open_trade_context.OpenSecTradeContext object at 0x111759cd0>
2026-08-06 14:47:43,427 | 22434 | 6210744320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(11) reason=CallClose
2026-08-06 14:47:43,442 [INFO] submit_signals: TER BUY skipped — already queued today (2026-08-06)
2026-08-06 14:47:43,443 [INFO] submit_signals: STX BUY skipped — already queued today (2026-08-06)
2026-08-06 14:47:43,444 [INFO] submit_signals: DELL BUY skipped — already queued today (2026-08-06)
2026-08-06 14:47:43,445 [INFO] submit_signals: AVGO BUY skipped — already queued today (2026-08-06)
2026-08-06 14:47:43,445 [INFO] submit_signals: 0 orders placed, 4 skipped (equity=$47,175)
2026-08-06 14:47:43,445 [INFO] Trade engine: 4 BUY + 0 SELL + 0 TRIM signals submitted
2026-08-06 14:47:44,283 | 22434 | 8487869824 | [open_context_base.py:410] _init_connect_sync: New connect ready: conn=7491218473884247436(12) context=<futu.quote.open_quote_context.OpenQuoteContext object at 0x115d22090>
2026-08-06 14:47:44,335 | 22434 | 6210744320 | [open_context_base.py:520] on_disconnect: Disconnected: conn=0(12) reason=CallClose
2026-08-06 14:47:45,551 [INFO] Saved: /Users/mvr113/QuantOS/reports/portfolio_20260806_1447.csv + report_20260806_1447.html
2026-08-06 14:47:45,588 [INFO] Wrote 234 latest_score rows to central_db (top 30 in last_scores legacy file)
2026-08-06 14:47:45,592 [INFO] Wrote last_scores.json (legacy fallback, top 30 tickers)
2026-08-06 14:47:45,593 [INFO] Wrote regime_history row to central_db (regime=BUY, session=regular)
2026-08-06 14:47:45,594 [INFO] Wrote regime_log.json (legacy fallback, regime=BUY)
2026-08-06 14:47:45,594 [INFO] Pipeline complete.