Add Bitcoin Trading Signal System with MACD and News Sentiment Analysis
- Implement comprehensive Bitcoin trading signal system - Add MACD (Moving Average Convergence Divergence) indicator - Integrate news sentiment analysis from CryptoCompare - Combine technical analysis with market sentiment - Generate trading recommendations (Strong Buy, Buy, Hold, Sell, Strong Sell) Features: - Real-time Bitcoin price data from Binance and CoinGecko APIs - Historical data analysis with MACD indicator - News sentiment analysis with keyword-based scoring - Weighted signal combination (60% MACD, 40% Sentiment) - Confidence scoring for each recommendation - Detailed reasoning for trading signals - CLI interface with verbose and quick modes Components: - data_fetcher.py: Bitcoin price and market data retrieval - macd_indicator.py: MACD calculation and signal generation - news_sentiment.py: News analysis and sentiment scoring - signal_generator.py: Combined signal generation - bitcoin_trader.py: Main CLI application Usage: python bitcoin_trading/bitcoin_trader.py [--verbose] [--days N] [--quick] Documentation in bitcoin_trading/README.md
This commit is contained in:
@@ -0,0 +1,274 @@
|
||||
# 🪙 Bitcoin Trading Signal System
|
||||
|
||||
Ein intelligentes Trading-Signal-System für Bitcoin, das **technische Analyse (MACD)** mit **News-Sentiment-Analyse** kombiniert, um fundierte Kauf- und Verkaufsempfehlungen zu generieren.
|
||||
|
||||
## 📋 Features
|
||||
|
||||
### 🔍 Technische Analyse
|
||||
- **MACD-Indikator** (Moving Average Convergence Divergence)
|
||||
- Erkennung von Bullish/Bearish Crossovers
|
||||
- Histogramm-Analyse für Momentum-Erkennung
|
||||
- Trend-Analyse über multiple Zeitperioden
|
||||
|
||||
### 📰 Sentiment-Analyse
|
||||
- Echtzeit-Analyse von Bitcoin-News
|
||||
- Keyword-basierte Sentiment-Bewertung
|
||||
- Multiple News-Quellen (CryptoCompare, optional NewsAPI)
|
||||
- Aggregierung von positiven/negativen Marktsignalen
|
||||
|
||||
### 🎯 Kombinierte Signale
|
||||
- Gewichtete Kombination aus MACD + Sentiment
|
||||
- 5 Signal-Stufen: Starker Kauf, Kauf, Halten, Verkauf, Starker Verkauf
|
||||
- Konfidenz-Bewertung für jedes Signal
|
||||
- Detaillierte Begründungen für Empfehlungen
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Voraussetzungen
|
||||
- Python 3.8 oder höher
|
||||
- pip (Python Package Manager)
|
||||
|
||||
### 1. Dependencies installieren
|
||||
|
||||
```bash
|
||||
cd bitcoin_trading
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
### 2. Optional: NewsAPI-Schlüssel
|
||||
|
||||
Für erweiterte News-Analyse kannst du einen kostenlosen NewsAPI-Schlüssel erhalten:
|
||||
|
||||
1. Registriere dich auf [NewsAPI.org](https://newsapi.org)
|
||||
2. Hole dir deinen API-Schlüssel
|
||||
3. Verwende ihn mit `--newsapi-key` Parameter
|
||||
|
||||
## 💻 Verwendung
|
||||
|
||||
### Basis-Analyse (empfohlen)
|
||||
|
||||
```bash
|
||||
python bitcoin_trader.py
|
||||
```
|
||||
|
||||
Dies führt eine vollständige Analyse durch mit:
|
||||
- Aktuellen Bitcoin-Preisdaten
|
||||
- 30 Tage historische MACD-Daten
|
||||
- Aktuelle News-Sentiment-Analyse
|
||||
- Kombinierter Trading-Empfehlung
|
||||
|
||||
### Erweiterte Optionen
|
||||
|
||||
**Ausführliche Ausgabe mit Ladestatus:**
|
||||
```bash
|
||||
python bitcoin_trader.py --verbose
|
||||
```
|
||||
|
||||
**Mehr historische Daten (z.B. 60 Tage):**
|
||||
```bash
|
||||
python bitcoin_trader.py --days 60
|
||||
```
|
||||
|
||||
**Schnelles Signal (nur Empfehlung):**
|
||||
```bash
|
||||
python bitcoin_trader.py --quick
|
||||
```
|
||||
|
||||
**Mit NewsAPI-Schlüssel:**
|
||||
```bash
|
||||
python bitcoin_trader.py --newsapi-key YOUR_API_KEY
|
||||
```
|
||||
|
||||
**Alle Optionen kombiniert:**
|
||||
```bash
|
||||
python bitcoin_trader.py --verbose --days 90 --newsapi-key YOUR_KEY
|
||||
```
|
||||
|
||||
### Als Python-Modul verwenden
|
||||
|
||||
```python
|
||||
from bitcoin_trading import BitcoinTrader
|
||||
|
||||
# Initialisiere Trader
|
||||
trader = BitcoinTrader(verbose=True)
|
||||
|
||||
# Führe Analyse durch
|
||||
trader.run_analysis(days=30)
|
||||
|
||||
# Oder hole schnelles Signal
|
||||
signal = trader.get_quick_signal()
|
||||
print(signal)
|
||||
```
|
||||
|
||||
## 📊 Output-Beispiel
|
||||
|
||||
```
|
||||
╔══════════════════════════════════════════════════════════════════╗
|
||||
║ BITCOIN TRADING SIGNAL - 2024-12-02 15:30 ║
|
||||
╚══════════════════════════════════════════════════════════════════╝
|
||||
|
||||
📊 EMPFEHLUNG: 🟢 KAUF
|
||||
💯 KONFIDENZ: 72%
|
||||
💰 AKTUELLER PREIS: $42,583.50
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
📈 TECHNISCHE ANALYSE (MACD)
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
Signal: KAUF
|
||||
MACD: 125.34
|
||||
Signal Line: 98.21
|
||||
Histogram: 27.13
|
||||
Preis-Änderung (10 Tage): +5.67%
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
📰 SENTIMENT-ANALYSE
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
Markt-Sentiment: POSITIV
|
||||
Sentiment-Score: 0.425
|
||||
Analysierte Artikel: 28
|
||||
├─ Positiv: 16
|
||||
├─ Neutral: 8
|
||||
└─ Negativ: 4
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
📋 BEGRÜNDUNG
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
1. MACD-Signal: KAUF (Konfidenz: 70%)
|
||||
2. Bullish Crossover: MACD kreuzt Signal-Linie von unten
|
||||
3. Positives Momentum: Histogramm steigt
|
||||
4. Markt-Sentiment: POSITIV (Konfidenz: 75%, Score: 0.425)
|
||||
5. ✅ MACD und Sentiment stimmen überein → Starkes Signal
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
💡 HANDLUNGSEMPFEHLUNG
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
🟢 KAUFGELEGENHEIT
|
||||
→ Erwäge einen Einstieg mit kleiner Position
|
||||
→ Warte ggf. auf Bestätigung durch weitere Signale
|
||||
|
||||
⚠️ Risiko-Hinweis: Diese Analyse hat eine Konfidenz von 72%
|
||||
⚠️ Keine Anlageberatung - Trading auf eigenes Risiko!
|
||||
|
||||
╚══════════════════════════════════════════════════════════════════╝
|
||||
```
|
||||
|
||||
## 🔧 Technische Details
|
||||
|
||||
### MACD-Parameter
|
||||
- **Fast EMA**: 12 Perioden
|
||||
- **Slow EMA**: 26 Perioden
|
||||
- **Signal Line**: 9 Perioden
|
||||
|
||||
### Signal-Logik
|
||||
- **Starker Kauf**: Bullish Crossover im negativen Bereich
|
||||
- **Kauf**: Bullish Crossover oder positives Momentum
|
||||
- **Halten**: Keine klare Richtung
|
||||
- **Verkauf**: Bearish Crossover oder negatives Momentum
|
||||
- **Starker Verkauf**: Bearish Crossover im positiven Bereich
|
||||
|
||||
### Gewichtung
|
||||
- MACD (Technische Analyse): **60%**
|
||||
- News-Sentiment: **40%**
|
||||
- Bonus bei übereinstimmenden Signalen: **+10%**
|
||||
|
||||
## 📁 Projektstruktur
|
||||
|
||||
```
|
||||
bitcoin_trading/
|
||||
├── __init__.py # Package Initialisierung
|
||||
├── bitcoin_trader.py # Hauptprogramm (CLI)
|
||||
├── data_fetcher.py # Bitcoin-Preisdaten-Abruf
|
||||
├── macd_indicator.py # MACD-Indikator-Berechnung
|
||||
├── news_sentiment.py # News-Sentiment-Analyse
|
||||
├── signal_generator.py # Signal-Kombination & Empfehlung
|
||||
├── requirements.txt # Python-Dependencies
|
||||
└── README.md # Diese Datei
|
||||
```
|
||||
|
||||
## 🔌 API-Quellen
|
||||
|
||||
### Preisdaten
|
||||
- **Binance API** (primär) - Schnelle, zuverlässige Preisdaten
|
||||
- **CoinGecko API** (fallback) - Backup-Datenquelle
|
||||
|
||||
### News
|
||||
- **CryptoCompare News API** (kostenlos) - Crypto-spezifische News
|
||||
- **NewsAPI** (optional) - Erweiterte News-Abdeckung
|
||||
|
||||
## ⚠️ Wichtige Hinweise
|
||||
|
||||
### Disclaimer
|
||||
- **Dies ist KEINE Anlageberatung**
|
||||
- Trading mit Kryptowährungen ist hochriskant
|
||||
- Vergangene Performance garantiert keine zukünftigen Ergebnisse
|
||||
- Investiere nur Geld, das du dir leisten kannst zu verlieren
|
||||
- Führe deine eigene Due Diligence durch
|
||||
|
||||
### Risiken
|
||||
- Marktvolatilität kann Signale schnell ungültig machen
|
||||
- Technische Indikatoren sind nicht 100% zuverlässig
|
||||
- News-Sentiment kann manipuliert sein
|
||||
- API-Ausfälle können Daten beeinträchtigen
|
||||
|
||||
### Best Practices
|
||||
- Verwende Signale als einen von mehreren Faktoren
|
||||
- Setze immer Stop-Loss-Orders
|
||||
- Diversifiziere dein Portfolio
|
||||
- Handel nur mit klarem Kopf
|
||||
- Dokumentiere deine Trades
|
||||
|
||||
## 🐛 Troubleshooting
|
||||
|
||||
### Fehler: "Konnte Bitcoin-Preis nicht abrufen"
|
||||
- Überprüfe Internetverbindung
|
||||
- APIs könnten temporär down sein
|
||||
- Warte kurz und versuche es erneut
|
||||
|
||||
### Fehler: "Nicht genug Daten für MACD"
|
||||
- Erhöhe `--days` Parameter (mindestens 30 Tage empfohlen)
|
||||
- Stelle sicher, dass historische Daten geladen werden
|
||||
|
||||
### Sentiment zeigt immer "NEUTRAL"
|
||||
- Möglicherweise keine aktuellen News verfügbar
|
||||
- Verwende `--newsapi-key` für mehr News-Quellen
|
||||
- News-APIs könnten Rate-Limits haben
|
||||
|
||||
## 🔄 Updates & Erweiterungen
|
||||
|
||||
### Geplante Features
|
||||
- [ ] RSI (Relative Strength Index) Integration
|
||||
- [ ] Bollinger Bands Analyse
|
||||
- [ ] Machine Learning Modelle
|
||||
- [ ] Email/Telegram Benachrichtigungen
|
||||
- [ ] Backtesting-Funktionalität
|
||||
- [ ] WebSocket Real-time Updates
|
||||
- [ ] Multi-Coin Support (ETH, etc.)
|
||||
|
||||
### Erweiterungsmöglichkeiten
|
||||
- Integration weiterer technischer Indikatoren
|
||||
- Social Media Sentiment (Twitter/Reddit)
|
||||
- On-Chain-Metriken (Wallet-Bewegungen)
|
||||
- Advanced ML/AI Modelle
|
||||
- Portfolio-Management-Features
|
||||
|
||||
## 📝 Lizenz
|
||||
|
||||
Dieses Projekt ist Teil des GetYourBand-Projekts.
|
||||
|
||||
## 🤝 Beitragen
|
||||
|
||||
Contributions sind willkommen! Bitte öffne ein Issue oder Pull Request.
|
||||
|
||||
## 📧 Support
|
||||
|
||||
Bei Fragen oder Problemen erstelle ein Issue im Repository.
|
||||
|
||||
---
|
||||
|
||||
**Made with 📊 and ₿ for informed trading decisions**
|
||||
|
||||
⚠️ **Remember: Don't invest more than you can afford to lose!**
|
||||
Reference in New Issue
Block a user