home / skills / jeremylongshore / claude-code-plugins-plus-skills / scanning-market-movers
/plugins/crypto/market-movers-scanner/skills/scanning-market-movers
This skill detects top market movers across crypto assets by combining price changes, volume spikes, and market cap into a prioritization score.
npx playbooks add skill jeremylongshore/claude-code-plugins-plus-skills --skill scanning-market-moversReview the files below or copy the command above to add this skill to your agents.
---
name: scanning-market-movers
description: |
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 <[email protected]>
license: MIT
---
# 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
This skill detects significant price moves and unusual volume across cryptocurrency markets and ranks results by a composite significance score. It scans hundreds to thousands of assets, highlights top gainers and losers, and outputs results in table, JSON, or CSV formats. Use configurable thresholds and category filters to focus scans by sector, market cap, or timeframe.
The scanner ingests price and volume data (via a price-tracking plugin) and computes a significance score combining percent change, volume ratio versus average, and market cap weighting. Filters remove noise using configurable thresholds (min change, volume spike, cap range) and category lists. Results are formatted for CLI display or exported as JSON/CSV for downstream processing.
What does the significance score mean?
A 0–100 score combining change (40%), volume ratio (40%), and market cap (20%). Higher means more conviction and prominence.
How do I reduce false positives?
Raise min_change and volume_spike thresholds, filter by min_market_cap, and run scans only on targeted categories.
Can I export results for automation?
Yes. The scanner supports JSON and CSV export for downstream tools or scheduled jobs.