crypto-sniper-oracle
// Institutional-grade quantitative market oracle with Order Book Imbalance (OBI), VWAP analysis, automated reports, and Telegram alerts.
Crypto Sniper Oracle — Quantitative Market Intelligence + Reporting
⚠️ SCOPE & CAPABILITIES
Core Function: Fetch public market data and generate quantitative analysis.
What it does:
- ✅ Fetches public ticker data from Binance API
- ✅ Fetches public order book data from Binance API
- ✅ Calculates Order Book Imbalance (OBI)
- ✅ Calculates VWAP divergence
- ✅ Scores liquidity quality (spread in bps)
- ✅ Generates formatted analysis reports
- ✅ [OPTIONAL] Sends reports via Telegram
- ✅ [OPTIONAL] Scheduled cron jobs for automated reports
What it does NOT do:
- ❌ Place orders or execute trades
- ❌ Transfer funds
- ❌ Access private exchange data
- ❌ Read agent memory (beyond its own logs)
- ❌ Intercept or block other skills
🔧 Configuration Options
Mode 1: Analysis Only (Default)
No Telegram, manual invocation:
# Just fetch data and analyze
python3 crypto_oracle.py --symbol BTCUSDT
Use case: Manual analysis on demand.
Mode 2: Telegram Reports (Optional)
Enable Telegram alerts and reports:
Required environment variables:
export TELEGRAM_BOT_TOKEN="your_bot_token_here"
export TELEGRAM_CHAT_ID="your_chat_id_here"
Configuration:
{
"skills": {
"crypto-sniper-oracle": {
"enabled": true,
"config": {
"telegram_enabled": true
}
}
}
}
Use case: Automated reports sent to Telegram.
Mode 3: Cron Jobs + Telegram (Automated)
Scheduled market reports:
Example cron jobs:
# Daily report at 9am UTC
0 9 * * * /workspace/skills/crypto-sniper-oracle/reporter.py --mode daily
# Hourly anomaly check
0 * * * * /workspace/skills/crypto-sniper-oracle/reporter.py --mode hourly
# Price alerts every 15min
*/15 * * * * /workspace/skills/crypto-sniper-oracle/reporter.py --mode alerts
Use case: Fully automated market monitoring.
📊 Report Templates
1. Daily Market Report
Trigger: Cron (9am daily) or manual command
Content:
📊 CRYPTO MARKET DAILY REPORT
{date} | Powered by Wesley
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 MARKET OVERVIEW (10 pairs analyzed)
🟢 BULLISH SETUPS (OBI > +0.15)
• BTCUSDT: OBI +0.18, Spread 2.1 bps
Price vs VWAP: +0.5% (above average)
Signal: Strong buying pressure
• ETHUSDT: OBI +0.12, Spread 3.5 bps
Price vs VWAP: +0.3%
Signal: Moderate bullish
🔴 BEARISH SETUPS (OBI < -0.15)
• SOLUSDT: OBI -0.16, Spread 8.2 bps
Price vs VWAP: -0.8%
Signal: Selling pressure
💰 LIQUIDITY QUALITY
Excellent (< 5 bps): 5 pairs
Good (5-10 bps): 3 pairs
Poor (> 30 bps): 2 pairs
📈 TOP MOVERS (24h)
+12.3% SOLUSDT (volatility: HIGH)
+8.1% ETHUSDT (volatility: MODERATE)
-5.2% BNBUSDT (volatility: MODERATE)
🎯 TRADING OPPORTUNITIES
→ BTC: Bullish setup confirmed (OBI +0.18)
→ ETH: Moderate strength, watch for breakout
→ SOL: Avoid - selling pressure + poor liquidity
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Generated: 2026-02-27 09:00:00 UTC
Next report: 2026-02-28 09:00:00 UTC
2. Anomaly Alert
Trigger: OBI spike, spread explosion, or volume surge
Content:
🚨 MARKET ANOMALY DETECTED
Time: 15:23:45 UTC
Asset: BTCUSDT
📊 Anomaly Type: OBI SPIKE
• Previous OBI: +0.05
• Current OBI: +0.22
• Change: +340% in 15 minutes
💰 Liquidity: EXCELLENT (2.3 bps)
📈 Price vs VWAP: +0.6%
💡 Implication:
Strong buying pressure surge detected.
Potential upward price movement imminent.
🎯 Suggested Action:
Consider LONG entry if other signals align.
Monitor closely for next 30 minutes.
[View Full Analysis]
3. Hourly Summary
Trigger: Cron (every hour)
Content:
⚡ HOURLY MARKET CHECK
{timestamp}
🔍 Scanned: 10 pairs
🟢 Bullish: 3
🔴 Bearish: 2
⚪ Neutral: 5
📊 Notable Changes:
• BTC OBI: +0.05 → +0.12 (↑)
• ETH Spread: 3.2 → 5.8 bps (↑)
⚠️ Alerts: None
Next check: {next_hour}
🔐 File Access (Expanded)
READ:
/workspace/skills/crypto-sniper-oracle/crypto_oracle.py(data fetcher)/workspace/skills/crypto-sniper-oracle/reporter.py(report generator)/workspace/skills/crypto-sniper-oracle/templates/*.md(report templates)
WRITE:
/workspace/.oracle_cache.json(45s cache)/workspace/MARKET_ANALYSIS.md(analysis reports)/workspace/TRADING_LOGS.md(audit trail)/workspace/reports/daily_{date}.md(archived reports)/workspace/reports/alerts_{date}.log(alert history)
🌐 Network Access (Expanded)
Always allowed:
- ✅
https://api.binance.com/api/v3/*(public market data)
Conditionally allowed (if Telegram enabled):
- ✅
https://api.telegram.org/bot{token}/*(send messages only)
Never allowed:
- ❌ Binance private endpoints
- ❌ Order placement endpoints
- ❌ Withdrawal endpoints
📋 Cron Job Specifications
Daily Report
# Schedule: 9am UTC daily
0 9 * * * /workspace/skills/crypto-sniper-oracle/reporter.py --mode daily --symbols BTCUSDT,ETHUSDT,SOLUSDT,BNBUSDT,ADAUSDT
# What it does:
1. Fetch data for all symbols
2. Calculate OBI, VWAP, spread for each
3. Aggregate into daily report
4. Send via Telegram (if enabled)
5. Archive to /workspace/reports/daily_{date}.md
Hourly Check
# Schedule: Every hour
0 * * * * /workspace/skills/crypto-sniper-oracle/reporter.py --mode hourly --symbols BTCUSDT,ETHUSDT
# What it does:
1. Quick scan of key pairs
2. Compare vs previous hour
3. Detect significant changes
4. Alert if anomaly detected
Price Alerts
# Schedule: Every 15 minutes
*/15 * * * * /workspace/skills/crypto-sniper-oracle/reporter.py --mode alerts --symbols BTCUSDT
# What it does:
1. Check for OBI spikes (>50% change)
2. Check for spread explosions (>100% increase)
3. Check for volume surges (>200% of average)
4. Send immediate Telegram alert if detected
🛠️ How It Works
LAYER 1 — Data Acquisition (Unchanged)
Same as v3.2.1 - uses crypto_oracle.py to fetch data.
LAYER 2 — Report Generation (NEW)
PROCEDURE Generate_Report(mode, symbols):
1. FETCH DATA FOR ALL SYMBOLS
For each symbol in symbols:
data[symbol] = call_oracle(symbol)
2. AGGREGATE METRICS
Calculate:
- How many bullish (OBI > 0.15)
- How many bearish (OBI < -0.15)
- Average spread across all symbols
- Top movers by price change %
3. LOAD TEMPLATE
template = load_template(f"{mode}_report.md")
4. POPULATE TEMPLATE
report = template.format(
date=now(),
bullish_pairs=format_bullish(data),
bearish_pairs=format_bearish(data),
liquidity_summary=format_liquidity(data),
top_movers=format_movers(data)
)
5. SAVE REPORT
Write to /workspace/reports/{mode}_{date}.md
6. IF TELEGRAM ENABLED:
send_telegram_message(report)
7. LOG EXECUTION
Write to /workspace/TRADING_LOGS.md
LAYER 3 — Telegram Delivery (NEW)
PROCEDURE Send_Telegram_Report(report):
1. VALIDATE CREDENTIALS
IF TELEGRAM_BOT_TOKEN not set:
→ Log error: "Telegram not configured"
→ ABORT
IF TELEGRAM_CHAT_ID not set:
→ Log error: "Chat ID not configured"
→ ABORT
2. FORMAT MESSAGE
# Telegram has 4096 char limit
IF len(report) > 4000:
→ Split into multiple messages
→ Send sequentially
3. SEND VIA API
POST https://api.telegram.org/bot{token}/sendMessage
Body:
{
"chat_id": "{chat_id}",
"text": "{report}",
"parse_mode": "Markdown"
}
4. HANDLE RESPONSE
IF success:
→ Log: "Report sent to Telegram"
IF error:
→ Log error details
→ Retry once after 5s
→ If still fails: Save to /workspace/failed_reports/
🔒 Security & Privacy
Data Collection:
- Public market data only
- No authentication for Binance API
- No personal data
Data Processing:
- All calculations local
- Cache temporary (45s TTL)
- Reports stored locally
Telegram (Optional):
- User must explicitly enable
- User provides bot token + chat ID
- Only sends TO user's Telegram
- No data sent to third parties
- Can be disabled anytime
Transparency:
- All Telegram sends logged
- All reports archived
- Full audit trail in TRADING_LOGS.md
📚 Installation & Setup
Basic Setup (No Telegram):
git clone https://github.com/georges91560/crypto-sniper-oracle.git
cd crypto-sniper-oracle
cp -r * /workspace/skills/crypto-sniper-oracle/
chmod +x /workspace/skills/crypto-sniper-oracle/*.py
Telegram Setup (Optional):
Step 1: Create Telegram Bot
1. Open Telegram, search @BotFather
2. Send: /newbot
3. Follow prompts, get BOT_TOKEN
Step 2: Get Chat ID
1. Send message to your bot
2. Visit: https://api.telegram.org/bot{YOUR_TOKEN}/getUpdates
3. Find "chat":{"id":123456789}
Step 3: Configure
export TELEGRAM_BOT_TOKEN="1234567890:ABCdefGHIjklMNOpqrsTUVwxyz"
export TELEGRAM_CHAT_ID="123456789"
Step 4: Test
python3 /workspace/skills/crypto-sniper-oracle/reporter.py --mode test
Expected: "✅ Test message sent to Telegram"
Cron Setup (Optional):
# Edit crontab
crontab -e
# Add jobs:
0 9 * * * /workspace/skills/crypto-sniper-oracle/reporter.py --mode daily
0 * * * * /workspace/skills/crypto-sniper-oracle/reporter.py --mode hourly
*/15 * * * * /workspace/skills/crypto-sniper-oracle/reporter.py --mode alerts
📊 Usage Examples
Example 1: Manual Analysis
python3 crypto_oracle.py --symbol BTCUSDT
Output: JSON data (same as v3.2.1)
Example 2: Generate Report (No Telegram)
python3 reporter.py --mode daily --symbols BTCUSDT,ETHUSDT
Output:
- Report saved to
/workspace/reports/daily_2026-02-27.md - No Telegram send
Example 3: Generate + Send Telegram
# With env vars set
export TELEGRAM_BOT_TOKEN="..."
export TELEGRAM_CHAT_ID="..."
python3 reporter.py --mode daily --symbols BTCUSDT,ETHUSDT
Output:
- Report saved locally
- Report sent to Telegram
- Logged in TRADING_LOGS.md
Example 4: Alert Check
python3 reporter.py --mode alerts --symbols BTCUSDT
If anomaly detected:
🚨 Alert sent to Telegram
📝 Logged to /workspace/reports/alerts_2026-02-27.log
If no anomaly:
✅ No alerts - market normal
🎯 Transparency Statement
What This Skill Does:
Without Telegram:
- Fetches public data
- Calculates metrics
- Generates reports
- Saves locally
With Telegram (User Opt-In):
- All of above PLUS
- Sends reports to user's Telegram
- User must provide bot token + chat ID
- User can disable anytime
What This Skill Does NOT Do:
- Does NOT read agent memory
- Does NOT intercept other skills
- Does NOT trade or place orders
- Does NOT access private data
- Does NOT send data to third parties (except user's own Telegram if enabled)
Network Behavior:
Default:
- Binance public API only
With Telegram Enabled:
- Binance public API
- Telegram API (send messages only, to user's bot)
📄 License
MIT License - See LICENSE
Version: 3.3.0
Security Level: L1 (Default) / L2 (With Telegram)
Author: Georges Andronescu (Wesley Armando)
Repository: https://github.com/georges91560/crypto-sniper-oracle
END OF SKILL