scanner-bullish
npx machina-cli add skill staskh/trading_skills/scanner-bullish --openclawBullish Scanner
Scans symbols for bullish trends and ranks them by composite score.
Instructions
Note: If
uvis not installed orpyproject.tomlis not found, replaceuv run pythonwithpythonin all commands below.
uv run python scripts/scan.py SYMBOLS [--top N] [--period PERIOD]
Arguments
SYMBOLS- Comma-separated ticker symbols (e.g.,AAPL,MSFT,GOOGL,NVDA)--top- Number of top results to return (default: 30)--period- Historical period for analysis: 1mo, 3mo, 6mo (default: 3mo)
Scoring System (max ~8 points)
| Indicator | Condition | Points |
|---|---|---|
| SMA20 | Price > SMA20 | +1.0 |
| SMA50 | Price > SMA50 | +1.0 |
| RSI | 50-70 (bullish) | +1.0 |
| 30-50 (neutral) | +0.5 | |
| <30 (oversold) | +0.25 | |
| MACD | MACD > Signal | +1.0 |
| Histogram rising | +0.5 | |
| ADX | >25 with +DI > -DI | +1.5 |
| +DI > -DI only | +0.5 | |
| Momentum | 3mo return / 20 | -1 to +2 |
Output
Returns JSON with:
scan_date- Timestamp of scansymbols_scanned- Total symbols analyzedresults- Array sorted by score (highest first):symbol,score,pricenext_earnings,earnings_timing(BMO/AMC)period_return_pct,pct_from_sma20,pct_from_sma50rsi,macd,adx,dmp,dmnsignals- List of triggered conditions
Examples
# Scan a few symbols
uv run python scripts/scan.py AAPL,MSFT,GOOGL,NVDA,TSLA
# Get top 10 from larger list
uv run python scripts/scan.py AAPL,MSFT,GOOGL,NVDA,TSLA,AMD,AMZN,META --top 10
# Use 6-month lookback
uv run python scripts/scan.py AAPL,MSFT,GOOGL --period 6mo
Interpretation
- Score > 6: Strong bullish trend
- Score 4-6: Moderate bullish
- Score 2-4: Neutral/weak
- Score < 2: Bearish or no trend
Dependencies
pandaspandas-tayfinance
Source
git clone https://github.com/staskh/trading_skills/blob/main/.claude/skills/scanner-bullish/SKILL.mdView on GitHub Overview
Scans symbols for bullish trends and ranks them by a composite score. It analyzes moving averages (SMA20, SMA50), RSI, MACD, ADX, and momentum to identify trending stocks. Use it to quickly find bullish opportunities and compare symbols by momentum.
How This Skill Works
The scanner runs a Python-based analysis (uv run python scripts/scan.py SYMBOLS [--top N] [--period PERIOD]). It assigns points based on defined conditions (price vs SMA, RSI regions, MACD relation, ADX strength, and 3-month momentum) and returns a JSON with scan_date, symbols_scanned, and results sorted by score, including signals and other metrics.
When to Use It
- When you want to scan a list of symbols for bullish setups and identify candidates quickly.
- When you need to find trending stocks and rank them by momentum.
- When you want to pick top bullish candidates based on a composite score (e.g., high-score signals).
- When comparing symbols across a defined momentum window to decide where to allocate capital.
- When you want to tailor analysis by period (1mo, 3mo, 6mo) using the --period option.
Quick Start
- Step 1: uv run python scripts/scan.py SYMBOLS
- Step 2: uv run python scripts/scan.py SYMBOLS --top N --period PERIOD
- Step 3: Review the returned JSON, focusing on score, price, and signals for each symbol
Best Practices
- Use the --top N option to focus on the strongest cases (default is 30).
- Prioritize higher scores (e.g., Score > 6) to identify stronger bullish trends.
- Reference RSI zones: bullish 50-70, neutral 30-50, oversold <30 for context.
- Check ADX: require >25 with +DI > -DI for confirmed trend strength.
- Cross-check momentum signals with the 3mo lookback to validate long-term trend.
Example Use Cases
- Scan AAPL, MSFT, GOOGL, NVDA, TSLA and review top 5 by score using the default 3mo period.
- Run a larger list (AAPL, MSFT, GOOGL, NVDA, TSLA, AMD, AMZN, META) and extract top 10 with --top 10.
- Compare symbols across AAPL, MSFT, GOOGL to spot the strongest bullish leader based on composite score.
- Apply a 6mo period to capture longer-term momentum and refine the candidate list.
- After earnings, run the scanner to identify new bullish breakouts among the symbol set.