Fix: Multi-Timeframe Ranging Filter - Löst Problem mit blockierten Trades
- Problem: Alter Filter nutzte nur H1 (ADX 9.90) und blockierte Trades - Gold war aber auf D1 im Trend (ADX 28.25) - Lösung: Multi-TF Filter prüft H1, H4, D1 mit Gewichtung - Neue Logik: D1 > H4 > H1, intelligente Entscheidung - Dokumentation: Installation, Problemanalyse, Lösung Files: - multi_timeframe_regime_filter.py: Neuer Filter - MULTI_TF_FILTER_INSTALLATION.md: Installationsanleitung - PROBLEM_GELOEST.md: Zusammenfassung - PROBLEM_ANALYSE.md: Detaillierte Diagnose
This commit is contained in:
@@ -0,0 +1,235 @@
|
||||
# 🔍 PROBLEM-ANALYSE: Keine Trades seit 10. Dezember
|
||||
|
||||
## 📊 FAKTEN
|
||||
|
||||
### Timeline:
|
||||
- **1.-4. Dezember**: 23 Verlust-Trades (-779.70), alle "manual_close"
|
||||
- **10. Dezember**: Reset ausgeführt (+1.00 künstlicher Trade)
|
||||
- **10.-20. Dezember**: 🚨 **KEINE TRADES** (10 Tage!)
|
||||
|
||||
### Aktuelle Konfiguration:
|
||||
|
||||
#### Session Filter:
|
||||
- ✅ **Asian**: AKTIV
|
||||
- ❌ **London**: BLOCKIERT (Break-even Performance)
|
||||
- ❌ **Overlap**: BLOCKIERT
|
||||
- ✅ **NY**: AKTIV (beste Performance)
|
||||
|
||||
#### Trading Parameter:
|
||||
- **Confidence Threshold**: 70% (konservativ)
|
||||
- **Risk Filter**: Aktiv (min ATR: 0.0008)
|
||||
- **Max Positions**: 1
|
||||
|
||||
#### Aktive Filter:
|
||||
1. **Ranging Filter** (seit 9. Dez): Blockiert wenn ADX < 25
|
||||
2. **Session Filter**: Nur Asian + NY erlaubt
|
||||
3. **Drawdown Protection**: Aktiv
|
||||
4. **Confidence Filter**: Mindestens 70%
|
||||
|
||||
## 🤔 WARUM KEINE TRADES?
|
||||
|
||||
### Mögliche Ursachen (nach Wahrscheinlichkeit):
|
||||
|
||||
### 1️⃣ RANGING MARKET (80% Wahrscheinlichkeit) ✅
|
||||
**Status**: Am wahrscheinlichsten
|
||||
|
||||
**Was passiert**:
|
||||
- Ranging Filter wurde am 9. Dezember hinzugefügt
|
||||
- Blockiert Trades wenn ADX < 25
|
||||
- Gold ist möglicherweise seit 10 Tagen im Ranging
|
||||
|
||||
**Warum 10 Tage ohne Trade?**:
|
||||
- Markt konsolidiert nach großer Bewegung
|
||||
- Weihnachtszeit = niedrige Volatilität
|
||||
- ADX bleibt unter 25
|
||||
|
||||
**Das wäre GUT!**:
|
||||
- Filter schützt vor Verlusten
|
||||
- 23 Losses (1.-4. Dez) könnten durch Ranging verursacht gewesen sein
|
||||
- Bot wartet geduldig auf Trend
|
||||
|
||||
**Diagnose**:
|
||||
```python
|
||||
# Im Notebook ausführen:
|
||||
show_current_regime()
|
||||
```
|
||||
- Falls ADX < 25: **NORMAL** - Filter arbeitet korrekt
|
||||
- Falls ADX > 25: Problem liegt woanders
|
||||
|
||||
---
|
||||
|
||||
### 2️⃣ SESSION TIMING (15% Wahrscheinlichkeit) ⚠️
|
||||
**Status**: Möglich
|
||||
|
||||
**Was passiert**:
|
||||
- Bot läuft nur in Asian (23:00-08:00 UTC) und NY (13:00-22:00 UTC)
|
||||
- London (08:00-16:00 UTC) ist blockiert
|
||||
- Wenn Sie Bot nur während London-Zeit laufen lassen → keine Trades
|
||||
|
||||
**Prüfen**:
|
||||
- Läuft der Bot 24/7 oder nur zu bestimmten Zeiten?
|
||||
- Ist Jupyter Notebook immer offen?
|
||||
|
||||
---
|
||||
|
||||
### 3️⃣ SCHEDULER GESTOPPT (5% Wahrscheinlichkeit) ❌
|
||||
**Status**: Technisches Problem
|
||||
|
||||
**Was passiert**:
|
||||
- Scheduler hat aufgehört zu laufen
|
||||
- `adaptive_trading_check()` wird nicht aufgerufen
|
||||
- Jupyter Kernel abgestürzt
|
||||
|
||||
**Diagnose**:
|
||||
```python
|
||||
# Im Notebook ausführen:
|
||||
scheduler.get_jobs()
|
||||
```
|
||||
- Falls LEER oder Fehler → **PROBLEM!** Scheduler neu starten
|
||||
- Falls 5-6 Jobs sichtbar → Scheduler läuft OK
|
||||
|
||||
**Fix**:
|
||||
```python
|
||||
scheduler.start()
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 4️⃣ CONFIDENCE ZU HOCH / FILTER ZU STRENG (Sehr unwahrscheinlich)
|
||||
**Status**: Sehr unwahrscheinlich
|
||||
|
||||
**Was passiert**:
|
||||
- 70% Confidence Threshold könnte zu hoch sein
|
||||
- ABER: 10 Tage komplett ohne Signal ist sehr ungewöhnlich
|
||||
- Normalerweise sollte es zumindest einige 60-69% Signale geben
|
||||
|
||||
---
|
||||
|
||||
## 🎯 DIAGNOSE-SCHRITTE
|
||||
|
||||
### SCHRITT 1: Scheduler prüfen ⚡ WICHTIG!
|
||||
```python
|
||||
# Im Notebook ausführen:
|
||||
scheduler.get_jobs()
|
||||
```
|
||||
|
||||
**Erwartung**: 5-6 Jobs sichtbar
|
||||
- ✅ Falls JA → Scheduler läuft, weiter zu Schritt 2
|
||||
- ❌ Falls NEIN → **PROBLEM GEFUNDEN!** → `scheduler.start()`
|
||||
|
||||
### SCHRITT 2: Market Regime prüfen
|
||||
```python
|
||||
# Im Notebook ausführen:
|
||||
show_current_regime()
|
||||
```
|
||||
|
||||
**Erwartung**: Zeigt ADX-Wert und Regime
|
||||
- Falls **ADX < 25 + "RANGING"** → **NORMAL!** Filter arbeitet korrekt
|
||||
- Falls **ADX > 25 + "TRENDING"** → Problem liegt woanders
|
||||
|
||||
### SCHRITT 3: Manueller Trade-Check
|
||||
```python
|
||||
# Im Notebook ausführen:
|
||||
execute_trade_v2_adaptive()
|
||||
```
|
||||
|
||||
**Zeigt GENAU warum kein Trade**:
|
||||
- "🛑 TRADE BLOCKIERT: Ranging Market!" → Filter arbeitet
|
||||
- "❌ Position bereits offen" → Max Positions erreicht
|
||||
- "Confidence too low" → Signal-Qualität zu niedrig
|
||||
- Irgendein Fehler → Technisches Problem
|
||||
|
||||
### SCHRITT 4: Notebook-Output prüfen
|
||||
Scrollen Sie im Notebook nach unten, suchen Sie nach:
|
||||
- `⏸️ Trading SKIP:` → Zeigt warum Trades übersprungen werden
|
||||
- `⏰ ... ADAPTIVE Check` → Zeigt dass Funktion läuft
|
||||
- `🔍 POSITION CHECK` → execute_trade wird aufgerufen
|
||||
|
||||
**Falls NICHTS zu sehen**:
|
||||
- Scheduler läuft nicht ODER
|
||||
- Bot läuft außerhalb der erlaubten Sessions
|
||||
|
||||
### SCHRITT 5: Session-Timing prüfen
|
||||
```python
|
||||
# Im Notebook ausführen:
|
||||
from datetime import datetime
|
||||
print(f"Aktuelle Zeit UTC: {datetime.utcnow().strftime('%H:%M:%S')}")
|
||||
print(f"Asian Session (23:00-08:00 UTC): {'AKTIV' if datetime.utcnow().hour >= 23 or datetime.utcnow().hour < 8 else 'INAKTIV'}")
|
||||
print(f"NY Session (13:00-22:00 UTC): {'AKTIV' if 13 <= datetime.utcnow().hour < 22 else 'INAKTIV'}")
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💡 WAHRSCHEINLICHSTE URSACHE
|
||||
|
||||
### 🎯 Ranging Market + Weihnachts-Konsolidierung
|
||||
|
||||
**Warum das am wahrscheinlichsten ist**:
|
||||
|
||||
1. **Timing**: Filter wurde am 9. Dez hinzugefügt, Trades stoppt am 10. Dez
|
||||
2. **Kontext**: 23 Losses vor dem Stop (1.-4. Dez) → deutet auf Ranging hin
|
||||
3. **Jahreszeit**: Mitte Dezember = niedrige Volatilität, Weihnachtsruhe
|
||||
4. **Filter-Zweck**: Genau für solche Phasen designed
|
||||
|
||||
**Was das bedeutet**:
|
||||
- ✅ **Bot funktioniert KORREKT**
|
||||
- ✅ **Filter schützt vor Verlusten**
|
||||
- ✅ **Geduld zahlt sich aus**
|
||||
|
||||
**Wann kommen wieder Trades?**:
|
||||
- Sobald klarer Trend entsteht (ADX > 25)
|
||||
- Wahrscheinlich nach Weihnachten (höhere Liquidität)
|
||||
- Nächster größerer Move im Goldpreis
|
||||
|
||||
---
|
||||
|
||||
## 🔧 QUICK-FIX (Falls nötig)
|
||||
|
||||
### Falls Sie WIRKLICH sicher sein wollen, dass Bot läuft:
|
||||
|
||||
#### Option 1: Ranging Filter temporär deaktivieren (NUR ZUM TESTEN!)
|
||||
```python
|
||||
# Temporär Original-Funktion verwenden
|
||||
execute_trade_v2_adaptive = _original_execute_trade_v2_adaptive
|
||||
```
|
||||
⚠️ **WARNUNG**: Nur zum Testen! Kann zu Verlusten führen!
|
||||
|
||||
#### Option 2: Confidence Threshold senken (riskanter)
|
||||
```python
|
||||
# In session_filter_patch.py
|
||||
SESSION_WHITELIST_CONFIG['base_confidence'] = 60 # statt 70
|
||||
```
|
||||
⚠️ Mehr Trades, aber niedrigere Qualität
|
||||
|
||||
#### Option 3: London Session aktivieren (mehr Opportunities)
|
||||
```python
|
||||
# In session_filter_patch.py
|
||||
SESSION_WHITELIST_CONFIG['enabled_sessions']['london'] = True
|
||||
```
|
||||
⚠️ Break-even Performance laut Analyse
|
||||
|
||||
---
|
||||
|
||||
## 📋 ZUSAMMENFASSUNG
|
||||
|
||||
### ✅ Was funktioniert:
|
||||
- Datenbank ist OK
|
||||
- Keine Drawdown Protection aktiv
|
||||
- Session Filter ist konfiguriert
|
||||
- Ranging Filter ist installiert
|
||||
|
||||
### ⚠️ Was geprüft werden muss:
|
||||
1. **Scheduler läuft?** (`scheduler.get_jobs()`)
|
||||
2. **Market Regime?** (`show_current_regime()`)
|
||||
3. **Output im Notebook?** (nach unten scrollen)
|
||||
|
||||
### 💡 Erwartung:
|
||||
**Wahrscheinlich ist alles OK** und der Bot wartet geduldig auf einen klaren Trend.
|
||||
|
||||
**10 Tage ohne Trade ist lang, aber in Ranging + Weihnachtszeit normal!**
|
||||
|
||||
---
|
||||
|
||||
**Erstellt**: 2025-12-20
|
||||
**Letzter Trade**: 2025-12-10 09:29
|
||||
**Tage ohne Trade**: 10
|
||||
Reference in New Issue
Block a user