404 lines
8.6 KiB
Markdown
404 lines
8.6 KiB
Markdown
# 📰 NEWS FILTER - Complete Guide
|
||||
|
|
|
|||
|
|
**Implementiert:** 26. Dezember 2025 (Abend)
|
|||
|
|
**Status:** ✅ READY TO USE
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎯 WAS IST DER NEWS FILTER?
|
|||
|
|
|
|||
|
|
Der News Filter **blockiert Trading 30 Minuten vor und nach High-Impact News Events** um dich vor volatilen Verlusten zu schützen.
|
|||
|
|
|
|||
|
|
### **Warum wichtig für Gold Trading?**
|
|||
|
|
- Gold reagiert EXTREM auf USD News (NFP, Fed, CPI)
|
|||
|
|
- Spreads werden groß bei News
|
|||
|
|
- Slippage kann Stop-Loss unmöglich machen
|
|||
|
|
- Unvorhersehbare Bewegungen (+$50 in Sekunden!)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔧 IMPLEMENTATION
|
|||
|
|
|
|||
|
|
### **3 Versionen verfügbar:**
|
|||
|
|
|
|||
|
|
#### **1. Simple Version (EMPFOHLEN)** ⭐
|
|||
|
|
- ✅ Keine API nötig
|
|||
|
|
- ✅ Manuelle Event-Liste
|
|||
|
|
- ✅ Einfach zu warten
|
|||
|
|
- ✅ Funktioniert offline
|
|||
|
|
|
|||
|
|
**File:** `news_filter_simple.py`
|
|||
|
|
|
|||
|
|
#### **2. Finnhub API Version**
|
|||
|
|
- Braucht kostenlosen API Key
|
|||
|
|
- Automatische Event-Updates
|
|||
|
|
- 60 calls/minute free tier
|
|||
|
|
|
|||
|
|
**File:** `news_filter_v2.py`
|
|||
|
|
|
|||
|
|
#### **3. ForexFactory Scraper**
|
|||
|
|
- Scraping von ForexFactory
|
|||
|
|
- Keine API Key nötig
|
|||
|
|
- PROBLEM: Wird oft blockiert (403)
|
|||
|
|
|
|||
|
|
**File:** `news_filter.py`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🚀 QUICK START (Simple Version)
|
|||
|
|
|
|||
|
|
### **Schritt 1: Events konfigurieren**
|
|||
|
|
|
|||
|
|
Editiere `news_events_manual.json`:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"events": [
|
|||
|
|
{
|
|||
|
|
"date": "2026-01-10",
|
|||
|
|
"time": "13:30",
|
|||
|
|
"timezone": "UTC",
|
|||
|
|
"event": "US NFP (Non-Farm Payrolls)",
|
|||
|
|
"currency": "USD",
|
|||
|
|
"impact": "HIGH"
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
"date": "2026-01-15",
|
|||
|
|
"time": "13:30",
|
|||
|
|
"timezone": "UTC",
|
|||
|
|
"event": "US CPI (Consumer Price Index)",
|
|||
|
|
"currency": "USD",
|
|||
|
|
"impact": "HIGH"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### **Schritt 2: Integration ins Notebook**
|
|||
|
|
|
|||
|
|
Füge eine neue Cell hinzu (nach execute_trade_v2_adaptive):
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
# ==========================================
|
|||
|
|
# NEWS FILTER INTEGRATION
|
|||
|
|
# ==========================================
|
|||
|
|
|
|||
|
|
from news_filter_integration import create_news_filter_wrapper
|
|||
|
|
|
|||
|
|
# Backup original function
|
|||
|
|
if '_original_execute_trade_before_news' not in dir():
|
|||
|
|
_original_execute_trade_before_news = execute_trade_v2_adaptive
|
|||
|
|
print("✅ Original execute_trade_v2_adaptive saved")
|
|||
|
|
|
|||
|
|
# Wrap with news filter
|
|||
|
|
execute_trade_v2_adaptive = create_news_filter_wrapper(
|
|||
|
|
_original_execute_trade_before_news
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
print("✅ NEWS FILTER ACTIVATED")
|
|||
|
|
print("-" * 60)
|
|||
|
|
print("Protection: Trading blocked 30min before/after HIGH-IMPACT news")
|
|||
|
|
print("-" * 60)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### **Schritt 3: Fertig!** ✅
|
|||
|
|
|
|||
|
|
Der Bot blockt jetzt automatisch Trading bei High-Impact News!
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📋 WICHTIGE NEWS EVENTS FÜR GOLD
|
|||
|
|
|
|||
|
|
### **Monatlich:**
|
|||
|
|
|
|||
|
|
**1. NFP (Non-Farm Payrolls)** - 1. Freitag im Monat
|
|||
|
|
- Zeit: 13:30 UTC
|
|||
|
|
- Impact: ⭐⭐⭐⭐⭐ EXTREM HOCH
|
|||
|
|
- Bewegung: Gold kann +$20-50 machen in Sekunden
|
|||
|
|
|
|||
|
|
**2. CPI (Consumer Price Index)** - Mitte des Monats (13-15.)
|
|||
|
|
- Zeit: 13:30 UTC
|
|||
|
|
- Impact: ⭐⭐⭐⭐⭐ EXTREM HOCH
|
|||
|
|
- Bewegung: +$15-30 typisch
|
|||
|
|
|
|||
|
|
**3. FOMC Interest Rate Decision** - 8x pro Jahr
|
|||
|
|
- Zeit: 19:00 UTC
|
|||
|
|
- Impact: ⭐⭐⭐⭐⭐ EXTREM HOCH
|
|||
|
|
- Bewegung: +$30-100 möglich
|
|||
|
|
|
|||
|
|
**4. US Retail Sales** - Mitte des Monats
|
|||
|
|
- Zeit: 13:30 UTC
|
|||
|
|
- Impact: ⭐⭐⭐⭐ HOCH
|
|||
|
|
- Bewegung: +$10-20
|
|||
|
|
|
|||
|
|
**5. US PMI (Manufacturing)** - 1. Handelstag des Monats
|
|||
|
|
- Zeit: 14:45 UTC
|
|||
|
|
- Impact: ⭐⭐⭐ MITTEL-HOCH
|
|||
|
|
- Bewegung: +$5-15
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📅 NEWS CALENDAR SOURCES
|
|||
|
|
|
|||
|
|
### **Wo findest du kommende Events?**
|
|||
|
|
|
|||
|
|
1. **ForexFactory Calendar**
|
|||
|
|
- https://www.forexfactory.com/calendar
|
|||
|
|
- Filter: USD, High Impact
|
|||
|
|
- Zeigt Datum + Zeit + Event
|
|||
|
|
|
|||
|
|
2. **Investing.com Economic Calendar**
|
|||
|
|
- https://www.investing.com/economic-calendar/
|
|||
|
|
- Filter: USD, Bulls (High Impact)
|
|||
|
|
|
|||
|
|
3. **TradingView Economic Calendar**
|
|||
|
|
- https://www.tradingview.com/economic-calendar/
|
|||
|
|
- Sauber, übersichtlich
|
|||
|
|
|
|||
|
|
4. **Fed Calendar (für FOMC)**
|
|||
|
|
- https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm
|
|||
|
|
- Offizielle FOMC Meeting Dates
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔧 MAINTENANCE
|
|||
|
|
|
|||
|
|
### **Wöchentliche Aufgabe (5 Minuten):**
|
|||
|
|
|
|||
|
|
1. Gehe zu ForexFactory Calendar
|
|||
|
|
2. Checke kommende Woche für HIGH-IMPACT USD Events
|
|||
|
|
3. Füge sie zu `news_events_manual.json` hinzu
|
|||
|
|
4. Reload events (oder restart Notebook)
|
|||
|
|
|
|||
|
|
### **Event hinzufügen:**
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"date": "2026-01-XX",
|
|||
|
|
"time": "HH:MM",
|
|||
|
|
"timezone": "UTC",
|
|||
|
|
"event": "Event Name",
|
|||
|
|
"currency": "USD",
|
|||
|
|
"impact": "HIGH"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Wichtig:**
|
|||
|
|
- Datum: YYYY-MM-DD
|
|||
|
|
- Zeit: 24-Stunden Format (HH:MM)
|
|||
|
|
- Timezone: IMMER UTC!
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🧪 TESTING
|
|||
|
|
|
|||
|
|
### **Test ob News Filter aktiv ist:**
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
from news_filter_simple import is_news_upcoming, get_upcoming_news
|
|||
|
|
|
|||
|
|
# Show upcoming events
|
|||
|
|
upcoming = get_upcoming_news(minutes_ahead=1440) # next 24h
|
|||
|
|
print(f"Upcoming events: {len(upcoming)}")
|
|||
|
|
for event in upcoming:
|
|||
|
|
print(f" - {event['event']} in {event['minutes_until']}min")
|
|||
|
|
|
|||
|
|
# Test if trading would be blocked
|
|||
|
|
if is_news_upcoming(minutes_ahead=30):
|
|||
|
|
print("❌ Trading would be BLOCKED")
|
|||
|
|
else:
|
|||
|
|
print("✅ Trading is allowed")
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 💡 USE CASES
|
|||
|
|
|
|||
|
|
### **Use Case 1: NFP Friday**
|
|||
|
|
```
|
|||
|
|
08:00 UTC: Bot startet Trading (Asian Session)
|
|||
|
|
13:00 UTC: News Filter aktiviert (30min vor NFP)
|
|||
|
|
13:30 UTC: NFP Release → Bot pausiert
|
|||
|
|
14:00 UTC: News Filter deaktiviert
|
|||
|
|
14:01 UTC: Bot kann wieder traden
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### **Use Case 2: Vergessen Events hinzuzufügen**
|
|||
|
|
```
|
|||
|
|
Problem: Du hast CPI nicht in Liste
|
|||
|
|
13:30 UTC: CPI kommt → Bot macht Trade → Gold +$30 Spike → SL gerissen
|
|||
|
|
Lesson: Wöchentlich Events checken!
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📊 ERWARTETER IMPACT
|
|||
|
|
|
|||
|
|
### **Ohne News Filter:**
|
|||
|
|
```
|
|||
|
|
Situation: NFP kommt
|
|||
|
|
Gold macht +$40 in 30 Sekunden
|
|||
|
|
SL wird gerissen bei Spike
|
|||
|
|
Loss: -$200
|
|||
|
|
|
|||
|
|
Pro Monat: 2-3 News-Losses → -$400-600
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### **Mit News Filter:**
|
|||
|
|
```
|
|||
|
|
Situation: NFP kommt
|
|||
|
|
Bot pausiert 30min vorher
|
|||
|
|
Kein Trade = Kein Loss
|
|||
|
|
Profit: $0 (aber auch kein Verlust!)
|
|||
|
|
|
|||
|
|
Pro Monat: 0 News-Losses → $0
|
|||
|
|
Savings: $400-600/Monat! ✅
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔍 TROUBLESHOOTING
|
|||
|
|
|
|||
|
|
### **Problem: Filter blockiert nicht obwohl Event konfiguriert**
|
|||
|
|
|
|||
|
|
**Check 1:** Ist Zeit korrekt (UTC)?
|
|||
|
|
```python
|
|||
|
|
from datetime import datetime
|
|||
|
|
print(f"Current UTC: {datetime.utcnow()}")
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Check 2:** Event in Liste?
|
|||
|
|
```python
|
|||
|
|
from news_filter_simple import get_filter
|
|||
|
|
f = get_filter()
|
|||
|
|
print(f"Loaded events: {len(f.events)}")
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Check 3:** Integration aktiv?
|
|||
|
|
```python
|
|||
|
|
print(execute_trade_v2_adaptive)
|
|||
|
|
# Sollte zeigen: <function execute_trade_with_news_filter...>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### **Problem: Filter blockiert zu viel**
|
|||
|
|
|
|||
|
|
**Lösung:** Reduziere Buffer-Zeit
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
# Statt 30min
|
|||
|
|
if is_news_upcoming(minutes_ahead=15, minutes_after=15):
|
|||
|
|
return # Nur 15min Buffer
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### **Problem: Wie füge ich EUR/GBP Events hinzu?**
|
|||
|
|
|
|||
|
|
Einfach in `news_events_manual.json`:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"date": "2026-01-16",
|
|||
|
|
"time": "12:00",
|
|||
|
|
"timezone": "UTC",
|
|||
|
|
"event": "ECB Interest Rate Decision",
|
|||
|
|
"currency": "EUR",
|
|||
|
|
"impact": "HIGH"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📋 INTEGRATION CHECKLIST
|
|||
|
|
|
|||
|
|
### **Vor Aktivierung:**
|
|||
|
|
- [ ] `news_filter_simple.py` vorhanden
|
|||
|
|
- [ ] `news_filter_integration.py` vorhanden
|
|||
|
|
- [ ] `news_events_manual.json` erstellt
|
|||
|
|
- [ ] Events für nächste Woche hinzugefügt
|
|||
|
|
- [ ] Integration Cell ins Notebook eingefügt
|
|||
|
|
- [ ] Test durchgeführt
|
|||
|
|
|
|||
|
|
### **Nach Aktivierung:**
|
|||
|
|
- [ ] Cell ausgeführt ohne Fehler
|
|||
|
|
- [ ] "✅ NEWS FILTER ACTIVATED" gesehen
|
|||
|
|
- [ ] Test mit `is_news_upcoming()` gemacht
|
|||
|
|
- [ ] Wöchentlicher Kalender-Check geplant
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🎯 BEST PRACTICES
|
|||
|
|
|
|||
|
|
### **1. Wöchentlicher Update:**
|
|||
|
|
Jeden Montag:
|
|||
|
|
- Checke ForexFactory für nächste Woche
|
|||
|
|
- Füge HIGH-IMPACT USD Events hinzu
|
|||
|
|
- Besonders: NFP, CPI, Fed Events
|
|||
|
|
|
|||
|
|
### **2. Vor wichtigen Wochen:**
|
|||
|
|
NFP Woche, FOMC Woche:
|
|||
|
|
- Doppel-Check Events
|
|||
|
|
- Genau Zeit verifizieren
|
|||
|
|
- Sicherstellen Filter aktiv
|
|||
|
|
|
|||
|
|
### **3. Nach News Event:**
|
|||
|
|
- Check ob Bot wieder tradet
|
|||
|
|
- Verify Filter deaktiviert wurde
|
|||
|
|
- Nächstes Event vorbereiten
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📈 STATISTICS
|
|||
|
|
|
|||
|
|
### **Typische News-Event Frequenz:**
|
|||
|
|
|
|||
|
|
**Pro Monat:**
|
|||
|
|
- NFP: 1x (1. Freitag)
|
|||
|
|
- CPI: 1x (Mitte Monat)
|
|||
|
|
- Retail Sales: 1x
|
|||
|
|
- PMI: 1x
|
|||
|
|
- FOMC: 0-1x (8x pro Jahr)
|
|||
|
|
|
|||
|
|
**Total:** ~4-5 HIGH-IMPACT Events pro Monat
|
|||
|
|
|
|||
|
|
**Filter aktiv:** ~2-3 Stunden/Monat (30min vor+nach × 4-5 Events)
|
|||
|
|
|
|||
|
|
**Trading-Zeit reduziert:** ~0.4% (minimal!)
|
|||
|
|
|
|||
|
|
**Losses verhindert:** $400-600/Monat (HOCH!)
|
|||
|
|
|
|||
|
|
**ROI:** EXTREM HOCH ✅
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ✅ ZUSAMMENFASSUNG
|
|||
|
|
|
|||
|
|
**Was wurde implementiert:**
|
|||
|
|
- ✅ News Filter Module (3 Versionen)
|
|||
|
|
- ✅ Simple Version mit manuellem Event-Management
|
|||
|
|
- ✅ Integration Wrapper für execute_trade
|
|||
|
|
- ✅ Komplette Dokumentation
|
|||
|
|
- ✅ Test Scripts
|
|||
|
|
|
|||
|
|
**Wie es funktioniert:**
|
|||
|
|
1. Events werden in JSON konfiguriert
|
|||
|
|
2. Filter prüft vor jedem Trade ob News kommt
|
|||
|
|
3. Wenn News in 30min → Trade wird geskippt
|
|||
|
|
4. Nach News → Trading läuft normal weiter
|
|||
|
|
|
|||
|
|
**Erwarteter Impact:**
|
|||
|
|
- ✅ Schutz vor volatilen News-Verlusten
|
|||
|
|
- ✅ $400-600/Monat gespart
|
|||
|
|
- ✅ Weniger Stress bei News Events
|
|||
|
|
- ✅ Bessere Risk-Management
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**STATUS:** ✅ READY TO ACTIVATE
|
|||
|
|
**EMPFEHLUNG:** Sofort integrieren! Die Ersparnisse sind es wert! 🛡️
|
|||
|
|
|
|||
|
|
**Erstellt:** 26. Dezember 2025
|
|||
|
|
**Version:** 1.0
|