TradingAgents/tradingagents/dataflows/discovery/scanners
Youssef Aitousarrah 136fa47645 fix(options_flow): scan full universe before applying limit, rank by signal strength
Previously the scanner stopped as soon as self.limit candidates were found
from as_completed() futures. Since futures complete in non-deterministic
network-latency order, this was equivalent to random sampling — fast-to-
respond tickers won regardless of how strong their options signal was.

Fix: collect all candidates from the full universe, then sort by options_score
(unusual strike count weighted 1.5x for calls to favor bullish flow) before
applying the limit. The top-N strongest signals are now always returned.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 13:46:21 -07:00
..
__init__.py feat: improve all 9 scanners and add 3 new scanners 2026-02-20 08:36:18 -08:00
analyst_upgrades.py Update 2026-02-20 08:38:15 -08:00
earnings_calendar.py feat: improve all 9 scanners and add 3 new scanners 2026-02-20 08:36:18 -08:00
insider_buying.py feat: improve all 9 scanners and add 3 new scanners 2026-02-20 08:36:18 -08:00
market_movers.py feat: improve all 9 scanners and add 3 new scanners 2026-02-20 08:36:18 -08:00
ml_signal.py fix(discovery): fix three scanner hang/validation bugs found in ranker_debug.log 2026-02-20 22:35:42 -08:00
options_flow.py fix(options_flow): scan full universe before applying limit, rank by signal strength 2026-04-06 13:46:21 -07:00
reddit_dd.py Update 2026-02-20 08:38:15 -08:00
reddit_trending.py feat: improve all 9 scanners and add 3 new scanners 2026-02-20 08:36:18 -08:00
sector_rotation.py fix(discovery): fix infinite hang when a scanner thread blocks indefinitely 2026-02-20 22:14:53 -08:00
semantic_news.py Update 2026-02-20 08:38:15 -08:00
technical_breakout.py Update 2026-02-20 08:38:15 -08:00
volume_accumulation.py Update 2026-02-20 08:38:15 -08:00