scanning-market-movers
Detect significant price movements and unusual volume across crypto markets. Calculates significance scores combining price change, volume ratio, and market cap. Use when tracking market movers, finding gainers/losers, or detecting volume spikes. Trigger with phrases like "scan market movers", "top gainers", "biggest losers", "volume spikes", "what's moving", "find pumps", or "market scan". allowed-tools: Read, Write, Edit, Grep, Glob, Bash(python:*) version: 2.0.0 author: Jeremy Longshore <jeremy@intentsolutions.io> license: MIT
Allowed Tools
No tools specified
Provided by Plugin
market-movers-scanner
Scan for top market movers - gainers, losers, volume spikes, and unusual activity
Installation
This skill is included in the market-movers-scanner plugin:
/plugin install market-movers-scanner@claude-code-plugins-plus
Click to copy
Instructions
# Scanning Market Movers
## Overview
Real-time detection and analysis of significant price movements and unusual volume patterns across cryptocurrency markets. This skill identifies top gainers, losers, and volume spikes, ranking them by a composite significance score.
**Key Features:**
- Scan 1,000+ cryptocurrencies for movers
- Configurable thresholds (change %, volume spike, market cap)
- Significance scoring for prioritization
- Category filtering (DeFi, L2, NFT, etc.)
- Multiple output formats (table, JSON, CSV)
**Dependency:**
This skill uses `tracking-crypto-prices` from `market-price-tracker` plugin for price data infrastructure.
## Prerequisites
Install required dependencies:
```bash
pip install requests pandas
```
**Dependency Setup:**
Ensure `market-price-tracker` plugin is installed with `tracking-crypto-prices` skill configured.
## Instructions
### Step 1: Quick Market Scan
Run a default scan for top gainers and losers:
```bash
python {baseDir}/scripts/scanner.py
```
This returns the top 20 gainers and top 20 losers by 24h change with volume confirmation.
### Step 2: Custom Thresholds
Scan with specific criteria:
```bash
# Only show moves > 10% with volume spike > 3x
python {baseDir}/scripts/scanner.py --min-change 10 --volume-spike 3
# Filter by market cap
python {baseDir}/scripts/scanner.py --min-cap 100000000 --max-cap 1000000000
```
### Step 3: Category Filtering
Focus on specific sectors:
```bash
# DeFi tokens only
python {baseDir}/scripts/scanner.py --category defi
# Layer 2 tokens
python {baseDir}/scripts/scanner.py --category layer2
# Available: defi, layer2, nft, gaming, meme
```
### Step 4: Different Timeframes
Scan across timeframes:
```bash
# 1-hour movers
python {baseDir}/scripts/scanner.py --timeframe 1h
# 7-day movers
python {baseDir}/scripts/scanner.py --timeframe 7d
```
### Step 5: Export Results
Save results for analysis:
```bash
# JSON export
python {baseDir}/scripts/scanner.py --format json --output movers.json
# CSV export
python {baseDir}/scripts/scanner.py --format csv --output movers.csv
```
## Output
### Default Table Output
```
================================================================================
MARKET MOVERS Updated: 2025-01-14 15:30:00
================================================================================
TOP GAINERS (24h)
--------------------------------------------------------------------------------
Rank Symbol Price Change Vol Ratio Market Cap Score
--------------------------------------------------------------------------------
1 XYZ $1.234 +45.67% 5.2x $123.4M 89.3
2 ABC $0.567 +32.10% 3.8x $45.6M 76.5
3 DEF $2.890 +28.45% 2.9x $234.5M 71.2
--------------------------------------------------------------------------------
TOP LOSERS (24h)
--------------------------------------------------------------------------------
Rank Symbol Price Change Vol Ratio Market Cap Score
--------------------------------------------------------------------------------
1 GHI $3.456 -28.90% 4.1x $89.1M 72.1
2 JKL $0.123 -22.34% 2.5x $12.3M 58.9
--------------------------------------------------------------------------------
Summary: 42 movers found | Scanned: 1000 assets
================================================================================
```
### JSON Output (--format json)
```json
{
"gainers": [
{
"rank": 1,
"symbol": "XYZ",
"name": "Example Token",
"price": 1.234,
"change_24h": 45.67,
"volume_ratio": 5.2,
"market_cap": 123400000,
"significance_score": 89.3,
"category": "defi"
}
],
"losers": [...],
"meta": {
"scan_time": "2025-01-14T15:30:00Z",
"thresholds": {
"min_change": 5,
"volume_spike": 2,
"min_market_cap": 10000000
},
"total_scanned": 1000,
"matches": 42
}
}
```
### Significance Score
The significance score (0-100) combines:
- **Change %** (40%): Larger moves score higher
- **Volume Ratio** (40%): Higher volume confirmation scores higher
- **Market Cap** (20%): Larger caps score slightly higher
Higher scores indicate more significant, higher-conviction moves.
## Configuration
Edit `{baseDir}/config/settings.yaml`:
```yaml
# Default Thresholds
thresholds:
min_change: 5 # Minimum % change to include
volume_spike: 2 # Minimum volume ratio (current/avg)
min_market_cap: 10000000 # $10M minimum
max_market_cap: null # No maximum by default
# Scoring Weights
scoring:
change_weight: 0.40
volume_weight: 0.40
cap_weight: 0.20
# Display
display:
top_n: 20 # Number of results per category
sort_by: significance # significance, change, volume, market_cap
# Categories (CoinGecko category IDs)
categories:
defi:
- decentralized-finance-defi
- yield-farming
layer2:
- layer-2
- polygon-ecosystem
- arbitrum-ecosystem
nft:
- non-fungible-tokens-nft
gaming:
- gaming
meme:
- meme-token
```
### Named Presets
Create presets in `{baseDir}/config/presets/`:
**aggressive.yaml:**
```yaml
min_change: 3
volume_spike: 1.5
min_market_cap: 1000000
top_n: 50
```
**conservative.yaml:**
```yaml
min_change: 10
volume_spike: 3
min_market_cap: 100000000
top_n: 10
```
Use with:
```bash
python {baseDir}/scripts/scanner.py --preset aggressive
```
## Error Handling
See `{baseDir}/references/errors.md` for comprehensive error handling.
### Common Errors
| Error | Cause | Solution |
|-------|-------|----------|
| `Dependency not found` | tracking-crypto-prices unavailable | Install market-price-tracker plugin |
| `No movers found` | Thresholds too strict | Relax thresholds with lower values |
| `Rate limit exceeded` | Too many API calls | Wait or use cached data |
| `Partial results` | Some assets unavailable | Normal, proceed with available data |
## Examples
See `{baseDir}/references/examples.md` for detailed usage examples.
### Example 1: Daily Scan
```bash
python {baseDir}/scripts/scanner.py --timeframe 24h --top 20
```
### Example 2: Volume Spike Hunt
```bash
python {baseDir}/scripts/scanner.py --volume-spike 5 --min-volume 1000000
```
### Example 3: DeFi Movers Export
```bash
python {baseDir}/scripts/scanner.py --category defi --format csv --output defi_movers.csv
```
### Example 4: High-Cap Gainers
```bash
python {baseDir}/scripts/scanner.py --min-cap 1000000000 --gainers-only --top 10
```
## Integration with Other Skills
This skill can be combined with other crypto skills:
**With crypto-signal-generator:**
```bash
# Get movers, then generate signals for top gainers
python {baseDir}/scripts/scanner.py --format json | \
python ../crypto-signal-generator/.../scanner.py --from-stdin
```
**With arbitrage-opportunity-finder:**
Volume spikes often precede arbitrage opportunities. Use movers as input for arbitrage scanning.
## Files
| File | Purpose |
|------|---------|
| `scripts/scanner.py` | Main CLI entry point |
| `scripts/analyzer.py` | Core analysis logic |
| `scripts/filters.py` | Threshold filtering |
| `scripts/scorers.py` | Significance scoring |
| `scripts/formatters.py` | Output formatting |
| `config/settings.yaml` | User configuration |
| `config/presets/` | Named preset configurations |
## Resources
- PRD.md - Product requirements
- ARD.md - Architecture documentation
- Depends on: tracking-crypto-prices skill
- CoinGecko API documentation: https://www.coingecko.com/en/api