Tickers-Dual-Rank — Fact-Based Equity Scanner
Broker-agnostic Python scanner that ranks US equities every scan cycle
No opinions, no hype — every ranked field is backed by a computed metric
Powers the live leaderboards on tickersrank.ai
Overview
Tickers-Dual-Rank scans hundreds of US equities daily and sorts them into groups — not by predicting price, but by observing trend strength and mean-reversion setups:
- Leaders — momentum + trend confirmed candidates.
- Reversion — oversold / undervalued names showing early stabilization.
- Decliners — weakening names, ranked for context.
Every ranked field is backed by a computed metric — RSI, ADX, CCI, EMA structure, multi-timeframe slope, and IV percentile. There are no discretionary opinions in the ranking.
How it ranks
- Slope analysis against the S&P (relative trend strength).
- RSI / CCI trend staging and mean-reversion detection.
- Triple-timeframe scan (30m / 1h / 4h) for multi-timeframe confirmation.
- EMA crossovers (8 / 21 / 50 / 200) for trend structure.
- ADX for momentum quality.
- IV percentile — true percentile-of-history, not min-max IV Rank.
Price and average volume are the only hard universe filters. PE and PEG are display-only — shown per stock for your own fundamental read, but they do not feed the composite score or decide which names make the universe (a genuine trend/momentum leader often carries a "bad" PEG by design).
Data
Real Schwab market-data integration is wired in — daily/intraday bars, option-chain
IV, and fundamentals. A Yahoo Finance path (--broker yfinance) works
standalone for anyone without broker API access. Broker access goes through the same
BrokerRouter pattern used across the bot suite (Schwab primary, yfinance
fallback).
Outputs
- Discord — compact monospace leaderboard tables (Leaders, Reversion, Decliners): rank, symbol, price, RSI, ADX, PE, PEG, IV, and trend.
- Live tables — the full scan is persisted to the ingestion service, which keeps the tickersrank.ai leaderboards current.
- Ticker-list export — the leaders/reversion lists can be exported and fed directly into the other bots (e.g. wheeling-alerts) as their scan universe.
Design notes
- Modular by design — universe handling, scan logic, scoring, and broker access are separate modules, which makes the model easy to tune.
- IV percentile is a genuine historical store — it needs ~20 daily samples before returning a reading, so new symbols show
nullfor the first few weeks by design. - 60m / 4h bars are synthesized from native 30m bars (session-anchored), since the data provider rejects native 60-minute minute-granularity requests.
- GEX / gamma exposure is intentionally out of scope here — it belongs to a separate gamma library used by short-DTE strategies.
Disclaimer
For educational and research use. Not financial advice. Rankings describe observed metrics, not predictions.
← About