A real-time cryptocurrency scanner that detects explosive breakout moves with volume confirmation and ATR-based trailing profit targets.
Missile Bot continuously scans Binance.US for "missile" movements - rapid price breakouts accompanied by high volume spikes. The bot uses ATR (Average True Range) based trailing stops to lock in profits as the price continues to move.
- Real-Time Scanning: Monitors all USDT pairs on Binance.US
- Breakout Detection: Identifies explosive price moves with volume confirmation
- ATR-Based Targets: Dynamic profit targets using Average True Range
- Trailing System: Automatically trails stops as price advances
- Visual Alerts: Color-coded terminal output with flashing alerts
- Top Movers: Displays top 10 strongest signals
- Lightweight: No API keys required (public data only)
The bot calculates a breakout score based on:
- Price Change: Percentage move from recent levels
- Volume Spike: Recent volume vs. historical average
- Momentum: Price slope (trending direction)
- Composite Score: (Price Change % × Volume Ratio)
🚀 BLAST (Missile Detected!):
- Score > 10
- Strong upward slope (>1%)
- Volume spike >3x average
- Action: Prime entry opportunity
- Score > 4
- Moderate slope (>0.5%)
- Volume spike >2x average
- Action: Watch for acceleration
→ NEUTRAL:
- Below thresholds
- Normal trading activity
- Action: Monitor only
When a position is entered:
- Initial Target: Entry + (2.0 × ATR)
- Trailing Step: 1.0 × ATR
- Lock-In Logic:
- As price makes new highs, TP advances by ATR steps
- Never moves down (only up)
- Locks in profits while allowing room for continuation
Entry: $100
ATR: $2
Initial TP: $104 (100 + 2×2)
Price hits $103: TP stays at $104
Price hits $105: New high! TP advances to $106 (100 + 3×2)
Price hits $107: New high! TP advances to $108 (100 + 4×2)
Price drops to $106: TP stays at $108 (trailing stop)
- Python 3.7+
- requests library
pip install requestspython missile_bot.pylaunch_missile_bot.bat=== MISSILE BOT === 2025-12-31 00:10:45
Scanning 150 pairs... Refresh: 10s
TOP 10 MISSILES:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Pair Price Score Arrow Status
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀BTCUSDT 42,150 15.8 ↗ BLAST ⚡
ETHUSDT 2,245 8.3 ↗ WARN
XRPUSDT 0.615 6.2 ↗ WARN
...
Edit the constants at the top of missile_bot.py:
REFRESH_INTERVAL = 10 # Scan frequency (seconds)
TOP_N = 10 # Show top N movers
ATR_PERIOD = 14 # ATR calculation period
INITIAL_ATR_MULT = 2.0 # Initial TP distance (2x ATR)
TRAILING_STEP_MULT = 1.0 # Trailing step size (1x ATR)More Aggressive (Faster Signals):
INITIAL_ATR_MULT = 1.5 # Closer TP
TRAILING_STEP_MULT = 0.75 # Smaller stepsMore Conservative (Stronger Confirmation):
INITIAL_ATR_MULT = 3.0 # Wider TP
TRAILING_STEP_MULT = 1.5 # Larger steps- Fetch Pairs: Get all active USDT trading pairs
- Get Candles: Retrieve 1-minute klines for each pair
- Calculate Metrics:
- ATR (volatility measure)
- Price change
- Volume ratio
- Momentum slope
- Score & Rank: Calculate breakout scores and sort
- Display: Show top signals with color-coded status
- Repeat: Wait REFRESH_INTERVAL and scan again
ATR (Average True Range):
- Measures volatility
- Used for setting realistic profit targets
- Adapts to each coin's movement characteristics
Volume Analysis:
- Compares recent 3-candle volume to historical average
- Filters false breakouts (requires volume confirmation)
Price Slope:
- Calculates rate of change
- Identifies trending vs. ranging movements
- 🟢 GREEN: BLAST status (strong signal)
- 🟡 YELLOW: WARN status (moderate signal)
- ⚪ WHITE: NEUTRAL status
- 🔴 RED: (reserved for errors)
- ↗ : Upward momentum
- → : Sideways/neutral
- ↘ : Downward momentum
- ⚡ BLAST: Flashing indicator for strongest signals
- WARN: Caution - building momentum
- neutral: Normal activity
Monitor for explosive 1-minute breakouts to catch quick moves.
Identify coins showing unusual activity for deeper analysis.
Track which pairs are most active at any given time.
Run in background to catch opportunities as they develop.
Manual Trading:
- Bot flags potential moves
- Trader confirms setup on exchange
- Enter position
- Use bot's TP levels for exit planning
Automated Trading (Advanced): The TP Engine class can be integrated into trading bots:
# Example integration
tp = TPEngine(entry_price=100, atr=2)
current_tp = tp.update(current_price=105)
# Use current_tp for your sell orderREFRESH_INTERVAL = 15 # Slower scanning
TOP_N = 5 # Show fewer pairsModify fetch_binance_pairs() to filter by specific coins:
filtered = [s for s in pairs if s in ['BTCUSDT', 'ETHUSDT', 'XRPUSDT']]- Paper Trading Only: Scanner does not execute trades
- 1-Minute Data: Uses 1m candles (may miss longer-term setups)
- Public API: Subject to Binance rate limits
- No Historical Testing: Real-time only (not a backtester)
- Market Hours: Best during high-volume periods
- Increase
REFRESH_INTERVAL - Reduce number of pairs scanned
- Check internet connection
- Market may be ranging (low volatility)
- Adjust thresholds in
calc_breakout_score() - Check if Binance.US is accessible
- Ensure stable internet
- Verify Binance.US endpoint is operational
- Check for rate limiting
Modify calc_breakout_score() to weight factors differently:
score = (price_change * 100) * (vol_ratio ** 1.5) # Emphasize volume moreScan multiple timeframes by changing:
fetch_binance_klines(symbol, interval="5m", limit=100)Add audio notification on BLAST signals:
if status == "blast":
os.system('echo -e "\a"') # Terminal beep- This is a scanning tool, not a trading bot
- Always verify signals on exchange before trading
- Past performance doesn't guarantee future results
- Cryptocurrency trading is risky
- Never risk more than you can afford to lose
Provided as-is for personal use and learning.
Detect the missiles before they launch 🚀