Features: - Remote control via Telegram commands - /status - Bot status, positions, balance - /pause - Pause trading (no new trades) - /resume - Resume trading - /close - Close all positions (emergency) - /balance - Account balance & equity - /stats - Performance statistics - /help - Command help Integration: - Integrated into notebook (cells 27-29) - Wrapped execute_trade_v2_adaptive with pause check - Background service running parallel to bot - MT5 integration for positions & balance - Database integration for stats Safety: - Only authorized chat ID can send commands - /close requires confirmation - Instant pause/resume Files: - telegram_bot_commands.py - Main implementation - setup_telegram_bot.py - Setup & installation - TELEGRAM_BOT_COMMANDS_GUIDE.md - Complete documentation - Notebook updated with 3 new cells (27-29) Expected Impact: High - Full remote control from mobile phone
277 KiB
277 KiB
In [1]:
# Standard Imports
import pandas as pd
import numpy as np
import MetaTrader5 as mt
import pandas_ta as ta
from scipy.signal import savgol_filter, find_peaks
from sklearn.linear_model import LinearRegression
from tabulate import tabulate
from datetime import datetime, timedelta, time
import json
import keyring as kr
# V1.6: Zusätzliche Imports für Adaptive Rhythm
import pytz
import logging
from apscheduler.schedulers.background import BackgroundScheduler
# Setup Logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
print("✅ All imports successful - V1.6 Adaptive Complete (CORRECTED)")✅ All imports successful - V1.6 Adaptive Complete (CORRECTED)
In [2]:
# ==========================================
# INFRASTRUCTURE IMPORTS (V1.8)
# ==========================================
from infrastructure_patch import (
TradingInfrastructure,
create_scheduled_reports
)
from trading_database import TradingDatabase
from telegram_notifier import TelegramNotifier
print("✅ Infrastructure modules loaded")✅ Infrastructure modules loaded
In [3]:
class AdaptiveRhythmManager:
"""
🆕 V1.6 Feature: Adaptive Trading Rhythm
Verwaltet adaptiven Trading-Rhythmus basierend auf:
- Marktvolatilität (ATR)
- Trading-Session (Asian/London/NY/Overlap)
- Marktregime
"""
def __init__(self, symbol="XAUUSD"):
self.symbol = symbol
self.current_interval = 5
# Zeitintervalle in Minuten
self.intervals = {
'fast': 5, # Hohe Volatilität, aktive Sessions
'medium': 15, # Moderate Volatilität, Standard
'slow': 30 # Niedrige Volatilität, ruhige Sessions
}
# ATR-Schwellenwerte für XAUUSD (Gold)
self.atr_thresholds = {
'high': 15.0, # Hohe Volatilität
'medium': 8.0, # Moderate Volatilität
'low': 5.0 # Niedrige Volatilität
}
# Session-Zeiten (UTC)
self.sessions = {
'asian': (time(0, 0), time(8, 0)), # 00:00-08:00 UTC
'london': (time(8, 0), time(16, 0)), # 08:00-16:00 UTC
'ny': (time(13, 0), time(21, 0)), # 13:00-21:00 UTC
'overlap': (time(13, 0), time(16, 0)) # London-NY Overlap
}
def get_current_session(self):
"""Ermittelt die aktuelle Trading-Session"""
now_utc = datetime.now(pytz.UTC).time()
# Overlap hat höchste Priorität
if self.sessions['overlap'][0] <= now_utc <= self.sessions['overlap'][1]:
return 'overlap'
elif self.sessions['london'][0] <= now_utc < self.sessions['london'][1]:
return 'london'
elif self.sessions['ny'][0] <= now_utc < self.sessions['ny'][1]:
return 'ny'
return 'asian'
def get_volatility_level(self, atr_value):
"""Klassifiziert die Volatilität basierend auf ATR"""
if atr_value >= self.atr_thresholds['high']:
return 'high'
elif atr_value >= self.atr_thresholds['medium']:
return 'medium'
return 'low'
def get_market_data(self):
"""Hole Marktdaten für ATR-Analyse"""
try:
rates = mt.copy_rates_from_pos(self.symbol, mt.TIMEFRAME_H1, 0, 50)
if rates is None:
return None
df = pd.DataFrame(rates)
df['time'] = pd.to_datetime(df['time'], unit='s')
df.set_index('time', inplace=True)
df['atr'] = ta.atr(df['high'], df['low'], df['close'], length=14)
return df
except Exception as e:
logger.error(f"Fehler beim Laden der Marktdaten: {e}")
return None
def calculate_optimal_interval(self):
"""Berechnet optimales Trading-Intervall"""
session = self.get_current_session()
df = self.get_market_data()
if df is None:
return self.current_interval
current_atr = df['atr'].iloc[-1]
volatility = self.get_volatility_level(current_atr)
optimal_interval = self._determine_interval(session, volatility)
# Logge Änderungen
if optimal_interval != self.current_interval:
logger.info(f"🔄 Rhythmus-Änderung: {self.current_interval}m → {optimal_interval}m")
logger.info(f" Session: {session}, Volatilität: {volatility} (ATR: {current_atr:.2f})")
self.current_interval = optimal_interval
return optimal_interval
def _determine_interval(self, session, volatility):
"""
Intervall-Entscheidungs-Matrix:
Session │ Hohe Vol │ Mittlere Vol │ Niedrige Vol
───────────┼──────────┼──────────────┼─────────────
Overlap │ 5min │ 15min │ 15min
London/NY │ 5min │ 15min │ 30min
Asian │ 15min │ 30min │ 30min
"""
if session == 'overlap':
return self.intervals['fast'] if volatility == 'high' else self.intervals['medium']
elif session in ['london', 'ny']:
if volatility == 'high':
return self.intervals['fast']
elif volatility == 'medium':
return self.intervals['medium']
return self.intervals['slow']
else: # asian
return self.intervals['medium'] if volatility == 'high' else self.intervals['slow']
def get_status_report(self):
"""Erstellt Status-Report"""
session = self.get_current_session()
df = self.get_market_data()
if df is not None:
current_atr = df['atr'].iloc[-1]
volatility = self.get_volatility_level(current_atr)
else:
current_atr = 0
volatility = 'unknown'
return f"""
╔════════════════════════════════════════════════════════╗
║ ADAPTIVE RHYTHM STATUS - {datetime.now().strftime('%H:%M:%S UTC')} ║
╠════════════════════════════════════════════════════════╣
║ Aktuelles Intervall: {self.current_interval:>2} Minuten ║
║ Trading Session: {session.upper():<15} ║
║ Volatilitätslevel: {volatility.upper():<15} ║
║ ATR (H1): {current_atr:>6.2f} ║
╠════════════════════════════════════════════════════════╣
║ INTERVALL-SCHEMA: ║
║ • Overlap (13-16 UTC): 5-15 Min (aktivste Phase) ║
║ • London/NY: 5-30 Min (volatilitätsabh.) ║
║ • Asian Session: 15-30 Min (ruhigere Phase) ║
╚════════════════════════════════════════════════════════╝
"""
print("✅ Adaptive Rhythm Manager defined")✅ Adaptive Rhythm Manager defined
In [4]:
# MT5 Login
mt.initialize()
login = 10800246
server = 'VantageInternational-Demo'
password = kr.get_password(server, str(login))
login_result = mt.login(login, password, server)
print(f"Login successful: {login_result}")
# Trading Parameter
symbol = "XAUUSD"
strategy_name = "TradingBot_V1.6"
max_positions = 1
print(f"Symbol: {symbol}")
print(f"Strategy: {strategy_name}")
print(f"Max Positions: {max_positions}")
print(f"Version: V1.6 COMPLETE - Adaptive + Full Features! 🚀🛡️⚡")
# 🆕 Initialisiere Adaptive Rhythm Manager
rhythm_manager = AdaptiveRhythmManager(symbol)
print("\n" + rhythm_manager.get_status_report())Login successful: True Symbol: XAUUSD Strategy: TradingBot_V1.6 Max Positions: 1 Version: V1.6 COMPLETE - Adaptive + Full Features! 🚀🛡️⚡ ╔════════════════════════════════════════════════════════╗ ║ ADAPTIVE RHYTHM STATUS - 18:02:20 UTC ║ ╠════════════════════════════════════════════════════════╣ ║ Aktuelles Intervall: 5 Minuten ║ ║ Trading Session: NY ║ ║ Volatilitätslevel: HIGH ║ ║ ATR (H1): 15.80 ║ ╠════════════════════════════════════════════════════════╣ ║ INTERVALL-SCHEMA: ║ ║ • Overlap (13-16 UTC): 5-15 Min (aktivste Phase) ║ ║ • London/NY: 5-30 Min (volatilitätsabh.) ║ ║ • Asian Session: 15-30 Min (ruhigere Phase) ║ ╚════════════════════════════════════════════════════════╝
In [5]:
# ==========================================
# INITIALIZE INFRASTRUCTURE (V1.8)
# ==========================================
print("🔧 Initializing Infrastructure...")
# Initialize Infrastructure
infra = TradingInfrastructure(
db_path="trading_bot.db",
enable_telegram=True,
enable_database=True
)
# Bot Started Notification
from session_filter_patch import SESSION_WHITELIST_CONFIG
bot_config = {
'version': 'V1.8',
'enabled_sessions': SESSION_WHITELIST_CONFIG['enabled_sessions'],
'base_confidence': SESSION_WHITELIST_CONFIG['base_confidence'],
'max_risk_per_trade': SESSION_WHITELIST_CONFIG['max_risk_per_trade']
}
infra.send_bot_started(bot_config)
print("✅ Infrastructure ready!")
print(f" Database: {'✅' if infra.enable_database else '❌'}")
print(f" Telegram: {'✅' if infra.enable_telegram else '❌'}")🔧 Initializing Infrastructure... ✅ Database initialized: trading_bot.db ✅ Telegram Bot connected: @Xausd_digger_bot ✅ Telegram notifications enabled ✅ Infrastructure ready! Database: ✅ Telegram: ✅
In [6]:
# ==========================================
# ADVANCED POSITION MANAGEMENT SETUP
# ==========================================
from session_filter_patch import SESSION_WHITELIST_CONFIG
from advanced_position_management import AdvancedPositionManager
print("🎯 Initializing Advanced Position Management...")
# Initialize Manager with all features
adv_position_mgr = AdvancedPositionManager(
enable_adaptive_sizing=True, # ✅ Adaptive Position Sizing
enable_trailing_stop=True, # ✅ Trailing Stop-Loss
enable_partial_tp=True, # ✅ Partial Take Profit
base_risk=SESSION_WHITELIST_CONFIG['max_risk_per_trade'] # ✅ 2% Base Risk from config
)
print("✅ Advanced Position Management activated!")
print(" 📊 Adaptive Position Sizing: ACTIVE")
print(" • High Confidence (≥80%): 1.5x risk")
print(" • Medium Confidence (≥70%): 1.0x risk")
print(" • Low Confidence (<70%): 0.5x risk")
print("")
print(" 📈 Trailing Stop-Loss: ACTIVE")
print(" • Break-Even at 50% progress to TP")
print(" • Lock 50% profit at 75% progress")
print("")
print(" 🎯 Partial Take Profit: ACTIVE")
print(" • TP1 at 1.5R (close 50%)")
print(" • TP2 at 2.5R (let 50% run)")
2025-12-26 18:02:21,801 - INFO - 🎯 Advanced Position Manager initialized 2025-12-26 18:02:21,803 - INFO - Adaptive Sizing: ✅ 2025-12-26 18:02:21,803 - INFO - Trailing Stop: ✅ 2025-12-26 18:02:21,804 - INFO - Partial TP: ✅
🎯 Initializing Advanced Position Management...
✅ Advanced Position Management activated!
📊 Adaptive Position Sizing: ACTIVE
• High Confidence (≥80%): 1.5x risk
• Medium Confidence (≥70%): 1.0x risk
• Low Confidence (<70%): 0.5x risk
📈 Trailing Stop-Loss: ACTIVE
• Break-Even at 50% progress to TP
• Lock 50% profit at 75% progress
🎯 Partial Take Profit: ACTIVE
• TP1 at 1.5R (close 50%)
• TP2 at 2.5R (let 50% run)
In [7]:
# ==========================================
# POSITION MONITOR SETUP (V1.8)
# ==========================================
from position_monitor import PositionMonitor
print("🔧 Initializing Position Monitor...")
# Create Position Monitor
position_monitor = PositionMonitor(infra.db, infra.telegram)
print("✅ Position Monitor ready!")
print(" Will check for closed positions every minute")
print(" Closed trades will be automatically logged with:")
print(" • Exit price & time")
print(" • Profit/Loss calculation")
print(" • Exit reason (TP/SL/Manual)")
print(" • Telegram notification")🔧 Initializing Position Monitor... ✅ Position Monitor ready! Will check for closed positions every minute Closed trades will be automatically logged with: • Exit price & time • Profit/Loss calculation • Exit reason (TP/SL/Manual) • Telegram notification
In [8]:
def check_existing_positions(symbol="XAUUSD", strategy_name="TradingBot_V1.6"):
"""
Überprüft ob bereits Positionen für das Symbol und die Strategie existieren
"""
try:
positions = mt.positions_get(symbol=symbol)
if positions is None:
return False, {"count": 0, "details": []}
strategy_positions = []
for pos in positions:
if strategy_name in pos.comment:
strategy_positions.append({
"ticket": pos.ticket,
"type": "BUY" if pos.type == 0 else "SELL",
"volume": pos.volume,
"price_open": pos.price_open,
"profit": pos.profit,
"comment": pos.comment,
"time_open": pd.to_datetime(pos.time, unit='s')
})
has_position = len(strategy_positions) > 0
position_info = {"count": len(strategy_positions), "details": strategy_positions}
return has_position, position_info
except Exception as e:
print(f"Error checking positions: {e}")
return False, {"count": 0, "details": []}
def get_position_summary(symbol="XAUUSD", strategy_name="TradingBot_V1.6"):
"""Position-Zusammenfassung"""
has_position, position_info = check_existing_positions(symbol, strategy_name)
print(f"\n📊 POSITION SUMMARY für {symbol} (V1.6 Adaptive Complete)")
print("=" * 60)
if not has_position:
print("✅ Keine aktiven Positionen - bereit für neuen Trade")
return False
print(f"⚠️ {position_info['count']} aktive Position(en) gefunden:")
for i, pos in enumerate(position_info['details'], 1):
profit_emoji = "🟢" if pos['profit'] >= 0 else "🔴"
print(f"\n Position {i}:")
print(f" Ticket: {pos['ticket']}")
print(f" Typ: {pos['type']}")
print(f" Volumen: {pos['volume']}")
print(f" Eröffnungspreis: {pos['price_open']}")
print(f" Profit: {profit_emoji} {pos['profit']:.2f}")
print(f" Eröffnungszeit: {pos['time_open']}")
print(f"\n🛑 TRADING BLOCKIERT - Maximal {max_positions} Position erlaubt")
return True
def close_existing_positions(symbol="XAUUSD", strategy_name="TradingBot_V1.6", force_close=False):
"""
✅ KORRIGIERT: Schließt bestehende Positionen (optional)
Diese Funktion fehlte in der ursprünglichen V1.6!
"""
has_position, position_info = check_existing_positions(symbol, strategy_name)
if not has_position:
print("✅ Keine Positionen zum Schließen")
return True
if not force_close:
print(f"⚠️ {position_info['count']} Position(en) gefunden. Verwende force_close=True zum Schließen.")
return False
print(f"🔄 Schließe {position_info['count']} Position(en)...")
success_count = 0
for pos in position_info['details']:
try:
# Position schließen
close_request = {
"action": mt.TRADE_ACTION_DEAL,
"symbol": symbol,
"volume": pos['volume'],
"type": mt.ORDER_TYPE_SELL if pos['type'] == "BUY" else mt.ORDER_TYPE_BUY,
"position": pos['ticket'],
"price": mt.symbol_info_tick(symbol).bid if pos['type'] == "BUY" else mt.symbol_info_tick(symbol).ask,
"deviation": 20,
"magic": 234000,
"comment": f"Close {strategy_name}",
"type_time": mt.ORDER_TIME_GTC,
"type_filling": mt.ORDER_FILLING_IOC,
}
result = mt.order_send(close_request)
if result.retcode == mt.TRADE_RETCODE_DONE:
print(f"✅ Position {pos['ticket']} erfolgreich geschlossen")
success_count += 1
else:
print(f"❌ Fehler beim Schließen von Position {pos['ticket']}: {result.comment}")
except Exception as e:
print(f"❌ Exception beim Schließen von Position {pos['ticket']}: {e}")
print(f"📊 {success_count}/{len(position_info['details'])} Positionen erfolgreich geschlossen")
return success_count == len(position_info['details'])
print("✅ Position Control functions defined (COMPLETE with close function!)")✅ Position Control functions defined (COMPLETE with close function!)
In [9]:
def get_rates(timeframe="h4", count=200, symbol="XAUUSD"):
"""Hole Kursdaten"""
timeframes_dict = {
"m1": mt.TIMEFRAME_M1, "m5": mt.TIMEFRAME_M5, "m15": mt.TIMEFRAME_M15,
"m30": mt.TIMEFRAME_M30, "h1": mt.TIMEFRAME_H1, "h4": mt.TIMEFRAME_H4,
"d1": mt.TIMEFRAME_D1
}
try:
rates = mt.copy_rates_from_pos(symbol, timeframes_dict[timeframe], 0, count)
if rates is None:
return None
df = pd.DataFrame(rates)
df['time'] = pd.to_datetime(df['time'], unit='s')
df.set_index('time', inplace=True)
df['atr'] = ta.atr(df['high'], df['low'], df['close'], length=14)
return df
except Exception as e:
print(f"Error getting rates: {e}")
return None
def check_risk_limits(symbol, volume=None, order_type="buy", max_risk_per_trade=0.01):
"""Risk Management"""
try:
account_info = mt.account_info()
if not account_info:
return False
balance, equity = account_info.balance, account_info.equity
if equity < balance * 0.8:
return False
return True
except:
return False
def market_order(symbol, volume, order_type, stoploss=0, take_profit=0, deviation=20):
"""Market Order Execution"""
try:
price_dict = {'buy': mt.symbol_info_tick(symbol).ask, 'sell': mt.symbol_info_tick(symbol).bid}
order_type_dict = {'buy': mt.ORDER_TYPE_BUY, 'sell': mt.ORDER_TYPE_SELL}
request = {
"action": mt.TRADE_ACTION_DEAL,
"symbol": symbol,
"volume": volume,
"type": order_type_dict[order_type],
"price": price_dict[order_type],
"sl": stoploss,
"tp": take_profit,
"deviation": deviation,
"magic": 234000,
"comment": strategy_name,
"type_time": mt.ORDER_TIME_GTC,
"type_filling": mt.ORDER_FILLING_IOC
}
return mt.order_send(request)
except Exception as e:
print(f"Error in market order: {e}")
return None
print("✅ Helper functions defined")✅ Helper functions defined
In [10]:
def detect_market_regime(df, lookback=50):
"""Market Regime Detection"""
try:
adx_data = ta.adx(df['high'], df['low'], df['close'], length=14)
adx = adx_data['ADX_14'].iloc[-1] if adx_data is not None and 'ADX_14' in adx_data.columns else 25.0
try:
bb = ta.bbands(df['close'], length=20)
if bb is not None and len(bb.columns) >= 3:
bb_cols = bb.columns.tolist()
bb_width = ((bb[bb_cols[0]] - bb[bb_cols[2]]) / bb[bb_cols[1]] * 100).iloc[-lookback:].mean()
else:
bb_width = 4.0
except:
bb_width = 4.0
price_range = df['high'].iloc[-lookback:].max() - df['low'].iloc[-lookback:].min()
atr_avg = df['atr'].iloc[-lookback:].mean()
range_ratio = price_range / (atr_avg * lookback) if atr_avg > 0 else 1.0
vol_cluster = df['atr'].iloc[-10:].std() / df['atr'].iloc[-50:].mean() if len(df) >= 50 else 1.0
if adx > 25 and range_ratio > 1.5:
regime, strength = 'trending', min(100, adx * 2)
elif vol_cluster > 1.5:
regime, strength = 'volatile', min(100, vol_cluster * 50)
else:
regime, strength = 'ranging', max(0, 100 - adx * 2)
return {
'regime': regime, 'strength': strength, 'adx': adx,
'bb_width': bb_width, 'range_ratio': range_ratio, 'vol_cluster': vol_cluster
}
except Exception as e:
return {
'regime': 'ranging', 'strength': 50, 'adx': 20,
'bb_width': 4.0, 'range_ratio': 1.0, 'vol_cluster': 1.0
}
def calculate_adaptive_confidence_threshold_relaxed(regime_info, base_confidence=60):
"""
RELAXED Version: Niedrigere Schwellen für mehr Signale
"""
regime = regime_info['regime']
adx = regime_info['adx']
if regime == 'trending':
if adx > 30:
return max(50, base_confidence - 20)
else:
return base_confidence - 15
elif regime == 'ranging':
return base_confidence + 10
elif regime == 'volatile':
return base_confidence + 15
return base_confidence
def get_enhanced_trend(timeframe="H4", lookback=150, symbol="XAUUSD"):
"""Enhanced Trend Analysis"""
tf_map = {"D1": "d1", "H4": "h4", "H1": "h1", "M30": "m30", "M15": "m15", "M5": "m5"}
tf = tf_map.get(timeframe, timeframe.lower())
try:
df = get_rates(tf, lookback, symbol)
if df is None or len(df) < 50:
return None
df['close_smooth'] = savgol_filter(df['close'], min(15, len(df)//10), 3)
X = np.arange(len(df)).reshape(-1, 1)
y = df['close_smooth'].values
model = LinearRegression().fit(X, y)
slope = model.coef_[0]
regime_info = detect_market_regime(df.iloc[-50:])
base_threshold = df['atr'].iloc[-1] * 0.0001
if regime_info['regime'] == 'trending':
slope_threshold = base_threshold * 0.7
elif regime_info['regime'] == 'ranging':
slope_threshold = base_threshold * 1.5
else:
slope_threshold = base_threshold * 1.2
trend = "uptrend" if slope > slope_threshold else "downtrend" if slope < -slope_threshold else "sideways"
trend_strength = abs(slope) / slope_threshold if slope_threshold > 0 else 0
return {
"trend": trend, "slope": slope, "slope_threshold": slope_threshold,
"trend_strength": trend_strength, "atr": df['atr'].iloc[-1],
"price": df['close'].iloc[-1], "regime_info": regime_info
}
except Exception as e:
print(f"Error in get_enhanced_trend: {e}")
return None
print("✅ Market analysis functions defined (with RELAXED thresholds)")✅ Market analysis functions defined (with RELAXED thresholds)
In [11]:
def extended_top_down_v2_adaptive(symbol="XAUUSD", lookback=150):
"""
V1.6 Adaptive Complete Version:
- Position Control
- Relaxed Trading Logic
- Adaptive Rhythm Integration
"""
timeframes = ["D1", "H4", "H1", "M30", "M15", "M5"]
trend_info = {}
print(f"🔍 Analyzing {symbol} with V1.6 ADAPTIVE COMPLETE parameters...")
# 1. Alle Timeframes analysieren
for tf in timeframes:
trend_info[tf] = get_enhanced_trend(tf, lookback, symbol)
if trend_info[tf] is None:
print(f"⚠️ Keine Daten für {tf}")
return None
# 2. Market Regime aus H4 bestimmen
main_regime = trend_info["H4"]["regime_info"]
# 3. RELAXED Adaptive Confidence Threshold
adaptive_confidence_threshold = calculate_adaptive_confidence_threshold_relaxed(main_regime)
# 4. Standard-Trend
d1_trend = trend_info["D1"]["trend"]
h4_trend = trend_info["H4"]["trend"]
d1_strength = trend_info["D1"]["trend_strength"]
h4_strength = trend_info["H4"]["trend_strength"]
if d1_trend == h4_trend and d1_trend != "sideways":
standard_trend = d1_trend
standard_strength = (d1_strength * 0.6 + h4_strength * 0.4)
elif d1_strength > h4_strength * 1.5:
standard_trend = d1_trend
standard_strength = d1_strength * 0.8
elif h4_strength > d1_strength * 1.5:
standard_trend = h4_trend
standard_strength = h4_strength * 0.8
else:
standard_trend = "sideways"
standard_strength = 0
# 5. RELAXED Fast-Trend
fast_timeframes = ["H1", "M30", "M15", "M5"]
fast_trends = [trend_info[tf]["trend"] for tf in fast_timeframes]
fast_strengths = [trend_info[tf]["trend_strength"] for tf in fast_timeframes]
required_alignment = 2 # RELAXED: Immer 2 von 4
trend_counts = {'uptrend': 0, 'downtrend': 0, 'sideways': 0}
weighted_strengths = {'uptrend': 0, 'downtrend': 0}
weights = [1.0, 0.8, 0.6, 0.4]
for i, (trend, strength) in enumerate(zip(fast_trends, fast_strengths)):
trend_counts[trend] += 1
if trend != 'sideways':
weighted_strengths[trend] += strength * weights[i]
max_count = max(trend_counts['uptrend'], trend_counts['downtrend'])
if max_count >= required_alignment:
if trend_counts['uptrend'] > trend_counts['downtrend']:
fast_trend = "uptrend"
elif trend_counts['downtrend'] > trend_counts['uptrend']:
fast_trend = "downtrend"
else:
fast_trend = "uptrend" if weighted_strengths['uptrend'] > weighted_strengths['downtrend'] else "downtrend"
else:
fast_trend = "sideways"
# 6. Top-Down-Trend
if standard_trend == fast_trend and standard_trend != "sideways":
top_down_trend = standard_trend
combined_strength = (standard_strength + weighted_strengths.get(fast_trend, 0)) / 2
else:
top_down_trend = "sideways"
combined_strength = 0
# 7. Enhanced Confidence
tf_weights = {"D1": 2.5, "H4": 2.0, "H1": 1.5, "M30": 1.0, "M15": 0.8, "M5": 0.6}
weighted_matching = sum(
tf_weights[tf] * trend_info[tf]["trend_strength"]
for tf in timeframes
if trend_info[tf]["trend"] == top_down_trend and trend_info[tf]["trend"] != "sideways"
)
weighted_total = sum(
tf_weights[tf] * trend_info[tf]["trend_strength"]
for tf in timeframes
if trend_info[tf]["trend"] != "sideways"
)
confidence = round((weighted_matching / weighted_total) * 100, 2) if weighted_total > 0 else 0.0
# 8. RELAXED Risk-Adjusted Signal Strength
atr = trend_info["M5"]["atr"]
rrr = 2.5
risk_adjusted_strength = confidence * combined_strength * min(2.0, rrr)
# 9. RELAXED Entry Signal
entry_signal = 0
signal_quality = "none"
min_strength = 80 # RELAXED: 80 statt 100
if (top_down_trend != "sideways" and
confidence >= adaptive_confidence_threshold and
risk_adjusted_strength >= min_strength):
entry_signal = 1 if top_down_trend == "uptrend" else -1
# RELAXED Signal Quality
if confidence >= 80 and risk_adjusted_strength >= 130:
signal_quality = "excellent"
elif confidence >= 70 and risk_adjusted_strength >= 100:
signal_quality = "good"
else:
signal_quality = "fair"
# 10. 🆕 Adaptive Rhythm Info
current_interval = rhythm_manager.current_interval
session = rhythm_manager.get_current_session()
# 11. Debug Output
debug_data = []
for tf in timeframes:
info = trend_info[tf]
debug_data.append([
tf, info["trend"], f"{info['trend_strength']:.2f}",
f"{info['atr']:.4f}", f"{info['slope']:.6f}", f"{info['price']:.2f}"
])
print(f"\n📊 V1.6 ADAPTIVE COMPLETE Trend-Analyse für {symbol}")
print(f"⚡ Adaptive Interval: {current_interval} min | Session: {session.upper()}")
print(f"🎯 Market Regime: {main_regime['regime'].upper()} (Strength: {main_regime['strength']:.0f}%)")
print(f"🎚️ Adaptive Threshold: {adaptive_confidence_threshold}% (RELAXED)")
print()
print(tabulate(debug_data, headers=["TF", "Trend", "Strength", "ATR", "Slope", "Price"], tablefmt="psql"))
print(f"\n➡️ Standard-Trend: {standard_trend} (Strength: {standard_strength:.2f})")
print(f"➡️ Fast-Trend: {fast_trend} (Required: {required_alignment}/4)")
print(f"➡️ Top-Down-Trend: {top_down_trend}")
print(f"➡️ Confidence: {confidence}% (Threshold: {adaptive_confidence_threshold}%)")
print(f"➡️ Risk-Adjusted Strength: {risk_adjusted_strength:.1f} (Min: {min_strength})")
print(f"➡️ Signal Quality: {signal_quality.upper()}")
print(f"\n🚀 V1.6 Adaptive Complete: Full Features + Adaptive Rhythm")
return {
"symbol": symbol,
"trend_info": trend_info,
"market_regime": main_regime,
"standard_trend": standard_trend,
"fast_trend": fast_trend,
"top_down_trend": top_down_trend,
"confidence": confidence,
"adaptive_threshold": adaptive_confidence_threshold,
"risk_adjusted_strength": risk_adjusted_strength,
"entry_signal": entry_signal,
"signal_quality": signal_quality,
"combined_strength": combined_strength,
"min_strength_used": min_strength,
"required_alignment": required_alignment,
"adaptive_interval": current_interval,
"session": session
}
print("✅ V1.6 Adaptive Complete Top-Down Analysis defined")✅ V1.6 Adaptive Complete Top-Down Analysis defined
In [12]:
def check_pullback_entry(symbol, signal_info, timeframe="M5"):
"""
Entry Timing Check - in Relaxed Version DISABLED per default
"""
if signal_info["entry_signal"] == 0:
return False, "No base signal"
try:
df = get_rates(timeframe.lower(), 50, symbol)
if df is None or len(df) < 20:
return False, "Insufficient data"
df['ema21'] = df['close'].ewm(span=21).mean()
df['ema50'] = df['close'].ewm(span=50).mean()
current_price = df['close'].iloc[-1]
ema21 = df['ema21'].iloc[-1]
ema50 = df['ema50'].iloc[-1]
signal_direction = signal_info["entry_signal"]
if signal_direction == 1: # Long
if current_price <= ema21 * 1.002 and ema21 > ema50:
return True, "Pullback to EMA21 for Long"
elif current_price <= ema21 * 0.998:
return True, "Below EMA21 - Good Long Entry"
elif signal_direction == -1: # Short
if current_price >= ema21 * 0.998 and ema21 < ema50:
return True, "Pullback to EMA21 for Short"
elif current_price >= ema21 * 1.002:
return True, "Above EMA21 - Good Short Entry"
return False, "Waiting for better entry timing"
except Exception as e:
return True, "Using immediate entry (fallback)"
print("✅ Entry timing functions defined (DISABLED in Relaxed mode)")✅ Entry timing functions defined (DISABLED in Relaxed mode)
In [13]:
def calculate_position_size(self, symbol, stop_loss_pips, max_risk_per_trade=0.02):
"""
Berechnet die Positionsgröße basierend auf Risiko
"""
account_info = mt.account_info()
if not account_info:
print(f"⚠️ Keine Account-Info verfügbar, verwende Minimum-Lot")
return 0.01
balance = account_info.balance
risk_amount = balance * max_risk_per_trade
# Symbol-Info holen
symbol_info = mt.symbol_info(symbol)
if not symbol_info:
print(f"⚠️ Keine Symbol-Info für {symbol}, verwende Minimum-Lot")
return 0.01
# Pip-Wert berechnen
point = symbol_info.point
tick_value = symbol_info.trade_tick_value
tick_size = symbol_info.trade_tick_size
# Volume berechnen
pip_value = (tick_value / tick_size) * point
volume = risk_amount / (stop_loss_pips * pip_value)
# Auf erlaubte Volumenschritte runden
volume_min = symbol_info.volume_min
volume_max = symbol_info.volume_max
volume_step = symbol_info.volume_step
volume = round(volume / volume_step) * volume_step
volume = max(volume_min, min(volume_max, volume))
print(f"💰 Position Sizing für {symbol}:")
print(f" Balance: ${balance:.2f}")
print(f" Risiko: ${risk_amount:.2f} ({max_risk_per_trade*100}%)")
print(f" Stop Loss: {stop_loss_pips:.2f} Pips")
print(f" Berechnetes Volume: {volume:.2f} Lots")
return volumeIn [14]:
#mt.symbol_info(symbol).volume_min
mt.symbol_info(symbol).volume_stepOut [14]:
0.01
In [15]:
def execute_trade_v2_adaptive(
symbol="XAUUSD",
atr_mult=1.5,
base_confidence=60,
max_risk_per_trade=0.01,
risk_filter=True,
min_atr=0.0008,
use_pullback_entry=False, # DISABLED
max_positions=1,
strategy_name="TradingBot_V1.6",
debug=True
):
"""
V1.6 Adaptive Complete Trade-Ausführung:
- Position Control
- Relaxed Parameter
- Adaptive Rhythm Integration
"""
# SCHRITT 1: POSITION CHECK
print(f"\n🔍 POSITION CHECK für {symbol} (V1.6 Adaptive Complete)")
has_position, position_info = check_existing_positions(symbol, strategy_name)
if has_position and position_info['count'] >= max_positions:
if debug:
print(f"🛑 TRADE BLOCKIERT: {position_info['count']}/{max_positions} Positionen aktiv")
for pos in position_info['details']:
profit_emoji = "🟢" if pos['profit'] >= 0 else "🔴"
print(f" {pos['type']} @ {pos['price_open']} | {profit_emoji} {pos['profit']:.2f}")
return None
print(f"✅ Position-Check OK: {position_info['count']}/{max_positions}")
# SCHRITT 2: Signal Analysis
signal_info = extended_top_down_v2_adaptive(symbol)
if signal_info is None:
print("❌ Signal-Analyse fehlgeschlagen")
return None
entry_signal = signal_info["entry_signal"]
confidence = signal_info["confidence"]
adaptive_threshold = signal_info["adaptive_threshold"]
signal_quality = signal_info["signal_quality"]
market_regime = signal_info["market_regime"]
# SCHRITT 3: Get Price/ATR
m5_info = signal_info["trend_info"]["M5"]
price = m5_info["price"]
atr = m5_info["atr"]
# SCHRITT 4: Pre-checks
reason = ""
if confidence < adaptive_threshold:
reason = f"Confidence {confidence}% < threshold {adaptive_threshold}%"
elif entry_signal == 0:
reason = f"No entry signal"
elif price is None or atr is None:
reason = "Price/ATR not available"
elif risk_filter and atr < min_atr:
reason = f"ATR {atr:.5f} < min_atr {min_atr}"
else:
risk_ok = check_risk_limits(symbol, max_risk_per_trade=max_risk_per_trade)
if not risk_ok:
reason = "Risk limits exceeded"
# SCHRITT 5: Execute Trade
if not reason:
# Final Position Check
final_check, _ = check_existing_positions(symbol, strategy_name)
if final_check:
print(f"🛑 Position wurde zwischen Checks eröffnet!")
return None
# SL/TP Calculation
regime_mult = 1.0
if market_regime['regime'] == 'volatile':
regime_mult = 1.2
elif market_regime['regime'] == 'ranging':
regime_mult = 0.9
adjusted_atr_mult = atr_mult * regime_mult
if entry_signal == 1: # Long
stop_loss = price - adjusted_atr_mult * atr
take_profit = price + adjusted_atr_mult * atr * 2.5
else: # Short
stop_loss = price + adjusted_atr_mult * atr
take_profit = price - adjusted_atr_mult * atr * 2.5
# Position Sizing
account_info = mt.account_info()
if account_info:
balance = account_info.balance
risk_amount = balance * max_risk_per_trade
if symbol == "XAUUSD":
# 🎯 ADAPTIVE POSITION SIZING
if 'adv_position_mgr' in globals() and adv_position_mgr.adaptive_sizing:
volume = adv_position_mgr.adaptive_sizing.calculate_position_size(
confidence=confidence,
balance=balance,
stop_loss_distance=adjusted_atr_mult * atr * 10000, # Convert to pips
symbol=symbol
)
else:
volume = round(min(0.1, max(0.01, risk_amount / (adjusted_atr_mult * atr * 100))),2)
else:
volume = 0.01
else:
volume = 0.01
# Log Trade Info
print(f"\n🚀 V1.6 ADAPTIVE COMPLETE TRADE EXECUTION")
print(f"Direction: {'LONG' if entry_signal == 1 else 'SHORT'}")
print(f"Price: {price:.5f} | Volume: {volume:.2f}")
print(f"SL: {stop_loss:.5f} | TP: {take_profit:.5f}")
print(f"Confidence: {confidence}% | Quality: {signal_quality.upper()}")
print(f"Regime: {market_regime['regime'].upper()}")
print(f"Adaptive Interval: {signal_info['adaptive_interval']} min")
print(f"Session: {signal_info['session'].upper()}")
# Execute
try:
order_result = market_order(
symbol=symbol,
volume=volume,
order_type="buy" if entry_signal == 1 else "sell",
stoploss=stop_loss,
take_profit=take_profit
)
if order_result and order_result.retcode == mt.TRADE_RETCODE_DONE:
print(f"✅ Trade erfolgreich! Ticket: {order_result.order}")
# ==========================================
# LOG TRADE ENTRY (V1.8)
# ==========================================
try:
# Hole Position Info
positions = mt.positions_get(symbol=symbol)
if positions and infra:
position = positions[0]
# Erstelle Trade Data
trade_data = {
'ticket': position.ticket,
'position_id': position.identifier,
'symbol': symbol,
'strategy_name': strategy_name,
'type': 'BUY' if entry_signal == 1 else 'SELL',
'volume': volume,
'entry_price': position.price_open,
'sl_price': position.sl,
'tp_price': position.tp,
'entry_time': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
'session': rhythm_manager.get_current_session(),
'regime': market_regime['regime'],
'quality': signal_quality,
'confidence': confidence if 'confidence' in locals() else None,
'timeframe_alignment': signal_info.get('required_alignment', 2),
'risk_amount': risk_amount if 'risk_amount' in locals() else None,
'risk_pct': max_risk_per_trade
}
# Log to Database + Send Telegram
infra.log_trade_entry(trade_data)
logger.info("📱 Trade logged to DB + Telegram notification sent")
except Exception as e:
logger.error(f"⚠️ Infrastructure logging failed: {e}")
# ==========================================
# Verify & Log
new_check, new_info = check_existing_positions(symbol, strategy_name)
print(f"📊 Positionen: {new_info['count']}")
log_trade_performance_adaptive(signal_info, order_result)
else:
print(f"❌ Trade failed: {order_result.comment if order_result else 'No result'}")
return order_result
except Exception as e:
print(f"❌ Execution failed: {e}")
return None
else:
if debug:
print(f"\n⏸️ TRADE SKIPPED: {reason}")
return None
print("✅ V1.6 Adaptive Complete Execute Trade defined")✅ V1.6 Adaptive Complete Execute Trade defined
In [16]:
# ==========================================
# SESSION-SPECIFIC CONFIDENCE FILTER (26.12.2025)
# ==========================================
from session_confidence_filter import create_session_confidence_filter
# Bewahre Original-Funktion (falls noch nicht gespeichert)
if '_original_execute_trade_v2_adaptive' not in dir():
_original_execute_trade_v2_adaptive = execute_trade_v2_adaptive
print("✅ Original execute_trade_v2_adaptive gespeichert")
# Wrap mit Session-Confidence Filter
execute_trade_v2_adaptive = create_session_confidence_filter(
_original_execute_trade_v2_adaptive
)
print("✅ SESSION-SPECIFIC CONFIDENCE FILTER AKTIVIERT")
print("-" * 60)
print("Thresholds:")
print(" Asian: >= 95% Confidence (97.8% WR)")
print(" NY: >= 97% Confidence (verbessert von 43% auf 56% WR)")
print(" London: Blockiert")
print(" Overlap: Blockiert")
print()
print("Erwartete Verbesserung:")
print(" - NY Win-Rate: 43.3% → 56.5%")
print(" - Profit: +$237/Monat in NY Session")
print(" - Gesamt: +$292/Monat")
print("-" * 60)
✅ Original execute_trade_v2_adaptive gespeichert ✅ SESSION-SPECIFIC CONFIDENCE FILTER AKTIVIERT ------------------------------------------------------------ Thresholds: Asian: >= 95% Confidence (97.8% WR) NY: >= 97% Confidence (verbessert von 43% auf 56% WR) London: Blockiert Overlap: Blockiert Erwartete Verbesserung: - NY Win-Rate: 43.3% → 56.5% - Profit: +$237/Monat in NY Session - Gesamt: +$292/Monat ------------------------------------------------------------
In [ ]:
# ==========================================
# TELEGRAM BOT COMMANDS - Background Service
# ==========================================
from telegram_bot_commands import TelegramBotCommander, get_bot_controller
import threading
# Start Telegram Bot in background
try:
print("🚀 Starting Telegram Bot Commander...")
bot_commander = TelegramBotCommander()
bot_thread = bot_commander.start_background()
# Get controller for integration with execute_trade
bot_controller = get_bot_controller()
print("✅ Telegram Bot is running in background!")
print("📱 Available Commands:")
print(" /status - Bot status & positions")
print(" /pause - Pause trading")
print(" /resume - Resume trading")
print(" /close - Close all positions (requires confirm)")
print(" /balance - Account balance")
print(" /stats - Performance stats")
print(" /help - Show help")
except Exception as e:
print(f"❌ Failed to start Telegram Bot: {e}")
bot_controller = None
In [ ]:
# ==========================================
# INTEGRATION: Bot Controller mit execute_trade
# ==========================================
# Original execute_trade_v2_adaptive function wrappen
if 'bot_controller' in dir() and bot_controller is not None:
# Original Funktion sichern
if '_original_execute_trade_before_telegram' not in dir():
_original_execute_trade_before_telegram = execute_trade_v2_adaptive
def execute_trade_with_telegram_control(*args, **kwargs):
"""
Wrapper der bot_controller.is_paused prüft
"""
# Check if trading is paused
if bot_controller.is_paused:
print("⏸️ Trading PAUSED via Telegram")
print(f" Reason: {bot_controller.pause_reason}")
return
# Execute original function
return _original_execute_trade_before_telegram(*args, **kwargs)
# Replace execute_trade
execute_trade_v2_adaptive = execute_trade_with_telegram_control
print("✅ execute_trade_v2_adaptive wrapped with Telegram control")
print(" Trading can now be paused/resumed via /pause and /resume")
else:
print("⚠️ bot_controller not available, skipping integration")
In [17]:
# ==========================================
# 🔥 FIX #1: RANGING FILTER WRAPPER (09.12.2025)
# ==========================================
# Original function wird wrapped
# [DEAKTIVIERT 20.12.2025] _original_execute_trade_v2_adaptive = execute_trade_v2_adaptive
# [DEAKTIVIERT 20.12.2025] def execute_trade_v2_adaptive_with_ranging_filter(
# [DEAKTIVIERT 20.12.2025] symbol="XAUUSD",
# [DEAKTIVIERT 20.12.2025] atr_mult=1.5,
# [DEAKTIVIERT 20.12.2025] base_confidence=60,
# [DEAKTIVIERT 20.12.2025] max_risk_per_trade=0.01,
# [DEAKTIVIERT 20.12.2025] risk_filter=True,
# [DEAKTIVIERT 20.12.2025] min_atr=0.0008,
# [DEAKTIVIERT 20.12.2025] use_pullback_entry=False,
# [DEAKTIVIERT 20.12.2025] max_positions=1,
# [DEAKTIVIERT 20.12.2025] strategy_name="TradingBot_V1.6",
# [DEAKTIVIERT 20.12.2025] debug=True):
# [DEAKTIVIERT 20.12.2025] """
# [DEAKTIVIERT 20.12.2025] Wrapper für execute_trade_v2_adaptive mit Ranging Filter
# [DEAKTIVIERT 20.12.2025] Blocks trading in ranging markets - they cause 100% of losses!
# [DEAKTIVIERT 20.12.2025] """
# Quick check: Get signal info first
# [DEAKTIVIERT 20.12.2025] signal_info = extended_top_down_v2_adaptive(symbol)
# [DEAKTIVIERT 20.12.2025] if signal_info is None:
# [DEAKTIVIERT 20.12.2025] return None
# [DEAKTIVIERT 20.12.2025] market_regime = signal_info.get("market_regime", {})
# [DEAKTIVIERT 20.12.2025] regime = market_regime.get('regime', 'unknown')
# [DEAKTIVIERT 20.12.2025] adx = market_regime.get('adx', 0)
# 🛑 RANGING FILTER - Block ALL ranging market trades
# [DEAKTIVIERT 20.12.2025] if regime == 'ranging':
# [DEAKTIVIERT 20.12.2025] if debug:
# [DEAKTIVIERT 20.12.2025] print(f"\n🛑 TRADE BLOCKIERT: Ranging Market!")
# [DEAKTIVIERT 20.12.2025] print(f" ADX: {adx:.1f} (< 25 = Ranging)")
# [DEAKTIVIERT 20.12.2025] print(f" 📊 Ranging Performance: 0% Win Rate, 20 consecutive losses")
# [DEAKTIVIERT 20.12.2025] print(f" ✅ Filter is protecting you from losses!")
# [DEAKTIVIERT 20.12.2025] return None
# Additional safety: Even in trending, ADX must be > 25
# [DEAKTIVIERT 20.12.2025] if regime == 'trending' and adx < 25:
# [DEAKTIVIERT 20.12.2025] if debug:
# [DEAKTIVIERT 20.12.2025] print(f"\n🛑 TRADE BLOCKIERT: Weak Trend!")
# [DEAKTIVIERT 20.12.2025] print(f" ADX: {adx:.1f} (< 25 = too weak)")
# [DEAKTIVIERT 20.12.2025] return None
# ✅ Regime check passed - execute original function
# [DEAKTIVIERT 20.12.2025] if debug:
# [DEAKTIVIERT 20.12.2025] print(f"✅ REGIME CHECK PASSED: {regime.upper()} (ADX {adx:.1f})")
# [DEAKTIVIERT 20.12.2025] return _original_execute_trade_v2_adaptive(
# [DEAKTIVIERT 20.12.2025] symbol=symbol,
# [DEAKTIVIERT 20.12.2025] atr_mult=atr_mult,
# [DEAKTIVIERT 20.12.2025] base_confidence=base_confidence,
# [DEAKTIVIERT 20.12.2025] max_risk_per_trade=max_risk_per_trade,
# [DEAKTIVIERT 20.12.2025] risk_filter=risk_filter,
# [DEAKTIVIERT 20.12.2025] min_atr=min_atr,
# [DEAKTIVIERT 20.12.2025] use_pullback_entry=use_pullback_entry,
# [DEAKTIVIERT 20.12.2025] max_positions=max_positions,
# [DEAKTIVIERT 20.12.2025] strategy_name=strategy_name,
# [DEAKTIVIERT 20.12.2025] debug=debug
# [DEAKTIVIERT 20.12.2025] )
# Replace original with wrapped version
# [DEAKTIVIERT 20.12.2025] execute_trade_v2_adaptive = execute_trade_v2_adaptive_with_ranging_filter
# [DEAKTIVIERT 20.12.2025] print("✅ Ranging Filter activated!")
# [DEAKTIVIERT 20.12.2025] print(" 🛑 Blocks ALL ranging market trades")
# [DEAKTIVIERT 20.12.2025] print(" ✅ Only allows trending markets with ADX > 25")
In [18]:
# ==========================================
# 🎯 MULTI-TIMEFRAME RANGING FILTER (20.12.2025)
# ==========================================
# Verbesserte Ranging-Erkennung basierend auf H1, H4, und D1
from multi_timeframe_regime_filter import create_multi_timeframe_ranging_filter
# Backup der Original-Funktion (falls noch nicht geschehen)
if '_original_execute_trade_v2_adaptive' not in dir():
_original_execute_trade_v2_adaptive = execute_trade_v2_adaptive
# Ersetze mit Multi-TF Filter
execute_trade_v2_adaptive = create_multi_timeframe_ranging_filter(
_original_execute_trade_v2_adaptive
)
print("✅ Multi-Timeframe Ranging Filter aktiviert!")
print(" Prüft: H1, H4, D1")
print(" Gewichtung: D1 (3x) > H4 (2x) > H1 (1x)")
print(" Threshold: ADX > 25")
print("")
print("📊 Entscheidungslogik:")
print(" 1. D1 ADX > 30 → ERLAUBT (starker Trend)")
print(" 2. H4+D1 beide > 25 → ERLAUBT (bestätigter Trend)")
print(" 3. Weighted ADX > 25 → ERLAUBT (Gesamtbild)")
print(" 4. Sonst → BLOCKIERT (Ranging)")
✅ Multi-Timeframe Ranging Filter aktiviert! Prüft: H1, H4, D1 Gewichtung: D1 (3x) > H4 (2x) > H1 (1x) Threshold: ADX > 25 📊 Entscheidungslogik: 1. D1 ADX > 30 → ERLAUBT (starker Trend) 2. H4+D1 beide > 25 → ERLAUBT (bestätigter Trend) 3. Weighted ADX > 25 → ERLAUBT (Gesamtbild) 4. Sonst → BLOCKIERT (Ranging)
In [19]:
# ==========================================
# 🧪 TEST: Multi-Timeframe Regime Filter
# ==========================================
# Führe diese Cell aus um den Filter zu testen
from multi_timeframe_regime_filter import detect_multi_timeframe_regime
print("🧪 TESTING MULTI-TIMEFRAME REGIME FILTER")
print("=" * 70)
print()
# Test-Run
result = detect_multi_timeframe_regime("XAUUSD", adx_threshold=25, debug=True)
print()
print("📋 ERGEBNIS:")
print(f" Trading Allowed: {result['allowed']}")
print(f" Regime: {result['regime']}")
print(f" Weighted ADX: {result['weighted_adx']:.1f}")
print()
if result['allowed']:
print("✅ FILTER ERLAUBT TRADES!")
print(" → Bot wird bei nächstem Scheduler-Run traden (wenn andere Bedingungen passen)")
else:
print("🛑 FILTER BLOCKIERT TRADES")
print(f" → Grund: {result['reason']}")
🧪 TESTING MULTI-TIMEFRAME REGIME FILTER ====================================================================== 📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 28.5 (weight 1.0x) ✅ TREND H4: ADX 39.4 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 36.2 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ 📋 ERGEBNIS: Trading Allowed: True Regime: trending Weighted ADX: 36.2 ✅ FILTER ERLAUBT TRADES! → Bot wird bei nächstem Scheduler-Run traden (wenn andere Bedingungen passen)
In [20]:
# ==========================================
# 🔥 FIX #2: POSITION MONITOR DB LOGGING (09.12.2025)
# ==========================================
# Wrap check_open_positions to add DB logging
if 'check_open_positions' in globals():
_original_check_open_positions = check_open_positions
def check_open_positions_with_db_logging():
"""
Enhanced position monitor that writes exits to database
"""
from datetime import datetime
# Get current open positions from MT5
positions = mt.positions_get(symbol=symbol)
if not positions or len(positions) == 0:
# Check if we have positions in DB that should be closed
if 'db' in globals():
try:
open_trades_in_db = db.get_open_trades()
for trade in open_trades_in_db:
ticket = trade['ticket']
# Check if this position is in MT5 history (closed)
deals = mt.history_deals_get(ticket=ticket)
if deals and len(deals) > 0:
# Position was closed - log to DB
last_deal = deals[-1]
db.close_trade(
ticket=ticket,
exit_price=last_deal.price,
exit_time=datetime.fromtimestamp(last_deal.time),
profit=last_deal.profit,
status='closed',
exit_reason='mt5_detected',
commission=last_deal.commission,
swap=last_deal.swap
)
logger.info(f"💾 Position #{ticket} exit logged to DB (profit: ${last_deal.profit:.2f})")
except Exception as e:
logger.error(f"⚠️ DB logging error: {e}")
# Call original function
return _original_check_open_positions()
# Replace
check_open_positions = check_open_positions_with_db_logging
print("✅ Position Monitor DB logging activated!")
print(" 💾 Exits will be written to SQLite database")
print(" 📊 Drawdown Protection will work correctly")
else:
print("⚠️ check_open_positions not found - skipping Position Monitor fix")
⚠️ check_open_positions not found - skipping Position Monitor fix
In [21]:
def log_trade_performance_adaptive(signal_info, order_result):
"""
Loggt Trade-Performance für V1.6 Adaptive Complete
"""
trade_data = {
'timestamp': datetime.now().isoformat(),
'version': 'V1.6_Adaptive_Complete',
'symbol': signal_info['symbol'],
'entry_signal': signal_info['entry_signal'],
'confidence': signal_info['confidence'],
'adaptive_threshold': signal_info['adaptive_threshold'],
'signal_quality': signal_info['signal_quality'],
'market_regime': signal_info['market_regime']['regime'],
'regime_strength': signal_info['market_regime']['strength'],
'risk_adjusted_strength': signal_info['risk_adjusted_strength'],
'adaptive_interval': signal_info['adaptive_interval'],
'session': signal_info['session'],
'relaxed_features': {
'pullback_entry_disabled': True,
'lower_confidence_threshold': True,
'lower_min_strength': True,
'fixed_tf_alignment': True
},
'adaptive_features': {
'adaptive_rhythm': True,
'session_aware': True,
'volatility_based': True
},
'position_control_active': True,
'order_result': str(order_result) if order_result else None
}
try:
filename = f"trade_performance_v16_{signal_info['symbol']}_{datetime.now().strftime('%Y%m')}.json"
try:
with open(filename, 'r') as f:
data = json.load(f)
except FileNotFoundError:
data = []
data.append(trade_data)
with open(filename, 'w') as f:
json.dump(data, f, indent=2)
print(f"📊 Performance logged to {filename}")
except Exception as e:
print(f"Warning: Could not log performance: {e}")
def analyze_performance_adaptive(symbol="XAUUSD", days_back=30):
"""
Analysiert Performance der V1.6 Adaptive Complete Version
"""
try:
filename = f"trade_performance_v16_{symbol}_{datetime.now().strftime('%Y%m')}.json"
with open(filename, 'r') as f:
data = json.load(f)
cutoff = datetime.now() - timedelta(days=days_back)
recent_trades = [
trade for trade in data
if datetime.fromisoformat(trade['timestamp']) > cutoff
]
if not recent_trades:
print(f"No V1.6 trades in last {days_back} days")
return
total_trades = len(recent_trades)
# Analysis by regime
by_regime = {}
for trade in recent_trades:
regime = trade['market_regime']
by_regime[regime] = by_regime.get(regime, 0) + 1
# Analysis by interval
by_interval = {}
for trade in recent_trades:
interval = trade.get('adaptive_interval', 'unknown')
by_interval[interval] = by_interval.get(interval, 0) + 1
# Analysis by session
by_session = {}
for trade in recent_trades:
session = trade.get('session', 'unknown')
by_session[session] = by_session.get(session, 0) + 1
# Print results
print(f"\n📊 V1.6 ADAPTIVE COMPLETE PERFORMANCE - Last {days_back} days")
print(f"Total Trades: {total_trades}")
print(f"\nBy Market Regime:")
for regime, count in by_regime.items():
print(f" {regime.upper()}: {count} ({count/total_trades*100:.1f}%)")
print(f"\n🆕 By Adaptive Interval:")
for interval, count in sorted(by_interval.items()):
print(f" {interval} min: {count} ({count/total_trades*100:.1f}%)")
print(f"\n🆕 By Trading Session:")
for session, count in by_session.items():
print(f" {session.upper()}: {count} ({count/total_trades*100:.1f}%)")
except Exception as e:
print(f"Could not analyze performance: {e}")
print("✅ Performance Monitoring functions defined (with adaptive features)")✅ Performance Monitoring functions defined (with adaptive features)
In [22]:
# ==========================================
# FORCE RESUME TRADING (V2.2 FIX)
# ==========================================
print("🔧 Force resuming trading after Ranging Filter deployment...")
if 'drawdown_protection' in globals():
# Force resume
drawdown_protection._resume_trading()
# Verify
can_trade, reason = drawdown_protection.can_trade()
print(f"\n✅ Status after resume:")
print(f" Can Trade: {can_trade}")
print(f" Reason: {reason if not can_trade else 'All clear!'}")
if not can_trade:
print("\n⚠️ Still blocked - using nuclear option...")
drawdown_protection.trading_paused = False
drawdown_protection.pause_until = None
drawdown_protection.pause_reason = None
can_trade2, reason2 = drawdown_protection.can_trade()
print(f" After force clear: {can_trade2}")
print("\n🛡️ Drawdown Protection Status:")
status = drawdown_protection.get_status()
print(f" Consecutive Losses: {status['consecutive_losses']}")
print(f" Trading Allowed: {status['trading_allowed']}")
else:
print("⚠️ drawdown_protection not initialized yet")🔧 Force resuming trading after Ranging Filter deployment... ⚠️ drawdown_protection not initialized yet
In [23]:
# ==========================================
# TRADING CHECK: SESSION FILTER + DRAWDOWN PROTECTION
# ==========================================
from session_filter_patch import (
create_session_filtered_check,
SESSION_WHITELIST_CONFIG,
is_session_allowed
)
from drawdown_protection import create_protected_trading_check
print("🔧 Setting up Trading Check...")
# Step 1: Create base session-filtered trading check
base_trading_check = create_session_filtered_check(
rhythm_manager=rhythm_manager,
execute_func=execute_trade_v2_adaptive,
symbol=symbol,
strategy_name=strategy_name,
max_positions=max_positions,
logger=logger,
datetime=datetime
)
print("✅ Session Filter aktiviert!")
print(" Deaktivierte Sessions:")
for session, enabled in SESSION_WHITELIST_CONFIG['enabled_sessions'].items():
status = "✅ AKTIV" if enabled else "❌ DEAKTIVIERT"
print(f" • {session.upper():8s}: {status}")
# Step 2: Wrap with Drawdown Protection
adaptive_trading_check = create_protected_trading_check(infra, base_trading_check)
drawdown_protection = adaptive_trading_check.protection
print("\n🛡️ Drawdown Protection aktiviert!")
print(f" • Daily Loss Limit: ${drawdown_protection.max_daily_loss}")
print(f" • Weekly Loss Limit: ${drawdown_protection.max_weekly_loss}")
print(f" • Monthly Loss Limit: ${drawdown_protection.max_monthly_loss}")
print(f" • Max Consecutive Losses: {drawdown_protection.max_consecutive_losses}")
print(f" • Cooldown: {drawdown_protection.cooldown_hours}h")
print("\n✅ Trading Check ist jetzt vollständig geschützt!")
print(" 📊 Session Filter: Aktiv")
print(" 🛡️ Drawdown Protection: Aktiv")
🔧 Setting up Trading Check... ✅ Session Filter aktiviert! Deaktivierte Sessions: • ASIAN : ✅ AKTIV • LONDON : ❌ DEAKTIVIERT • OVERLAP : ❌ DEAKTIVIERT • NY : ✅ AKTIV 🛡️ Drawdown Protection aktiviert! • Daily Loss Limit: $100 • Weekly Loss Limit: $300 • Monthly Loss Limit: $800 • Max Consecutive Losses: 5 • Cooldown: 24h ✅ Trading Check ist jetzt vollständig geschützt! 📊 Session Filter: Aktiv 🛡️ Drawdown Protection: Aktiv
In [24]:
# Force resume after restart (V2.2 fix)
drawdown_protection._resume_trading()
print("✅ Trading force-resumed (Ranging Filter deployed)")2025-12-26 18:02:23,742 - INFO - ✅ Trading resumed after: None
✅ Trading force-resumed (Ranging Filter deployed)
In [25]:
# def adaptive_trading_check():
# """
# 🆕 V1.6: Adaptive Trading Check
# Prüft basierend auf optimalem Intervall ob gehandelt werden soll
# """
# try:
# optimal_interval = rhythm_manager.calculate_optimal_interval()
# current_minute = datetime.now().minute
# # Trading nur zu berechneten Zeitpunkten
# if current_minute % optimal_interval == 0:
# logger.info(f"\n⏰ {datetime.now().strftime('%Y-%m-%d %H:%M:%S')} - ADAPTIVE Check")
# logger.info(f"Intervall: {optimal_interval} min")
# # Führe Trading aus
# execute_trade_v2_adaptive(
# symbol=symbol,
# strategy_name=strategy_name,
# max_positions=max_positions
# )
# except Exception as e:
# logger.error(f"Fehler im Adaptive Trading Check: {e}")
def print_status_report():
"""Status-Report"""
print(rhythm_manager.get_status_report())
# print("✅ Adaptive Scheduler functions defined")In [26]:
# ✅ KORRIGIERT: Zentrale Konfiguration (fehlte in ursprünglicher V1.6)
ADAPTIVE_COMPLETE_CONFIG = {
'symbol': symbol,
'atr_mult': 1.5,
'base_confidence': 60, # RELAXED
'max_risk_per_trade': 0.01,
'risk_filter': True,
'min_atr': 0.0008, # RELAXED
'use_pullback_entry': False, # DISABLED
'max_positions': max_positions,
'strategy_name': strategy_name,
'debug': True
}
print("⚙️ V1.6 Adaptive Complete Configuration:")
print("\n🛡️ Position Control:")
print(f" Max Positions: {ADAPTIVE_COMPLETE_CONFIG['max_positions']}")
print(f" Strategy: {ADAPTIVE_COMPLETE_CONFIG['strategy_name']}")
print("\n🚀 Relaxed Parameters:")
print(f" Base Confidence: {ADAPTIVE_COMPLETE_CONFIG['base_confidence']}%")
print(f" Min ATR: {ADAPTIVE_COMPLETE_CONFIG['min_atr']}")
print(f" Pullback Entry: {ADAPTIVE_COMPLETE_CONFIG['use_pullback_entry']}")
print("\n⚡ Adaptive Features:")
print(f" Dynamic Intervals: 5/15/30 min")
print(f" Session-aware: Yes")
print(f" Volatility-based: Yes")
print("\n✅ Configuration complete!")⚙️ V1.6 Adaptive Complete Configuration: 🛡️ Position Control: Max Positions: 1 Strategy: TradingBot_V1.6 🚀 Relaxed Parameters: Base Confidence: 60% Min ATR: 0.0008 Pullback Entry: False ⚡ Adaptive Features: Dynamic Intervals: 5/15/30 min Session-aware: Yes Volatility-based: Yes ✅ Configuration complete!
In [27]:
# ✅ KORRIGIERT: Umfassendes Status Monitoring (fehlte in V1.6)
def check_adaptive_bot_status():
"""
✅ NEU: Kombiniertes Status-Check für V1.6 Adaptive Complete
Kombiniert Position Control + Adaptive Rhythm Status
"""
print("\n" + "="*70)
print("🔍 V1.6 ADAPTIVE COMPLETE BOT STATUS")
print("="*70)
# System Status
print("\n📡 SYSTEM STATUS:")
print(f" MT5 Connection: {'✅' if mt.terminal_info() else '❌'}")
print(f" Scheduler Running: {'✅' if scheduler.running else '❌'}")
print(f" Active Jobs: {len(scheduler.get_jobs())}")
# Adaptive Rhythm Status
print("\n⚡ ADAPTIVE RHYTHM:")
optimal_interval = rhythm_manager.calculate_optimal_interval()
session = rhythm_manager.get_current_session()
df = rhythm_manager.get_market_data()
if df is not None:
atr = df['atr'].iloc[-1]
vol_level = rhythm_manager.get_volatility_level(atr)
print(f" Current Interval: {optimal_interval} min")
print(f" Trading Session: {session.upper()}")
print(f" ATR (H1): {atr:.2f}")
print(f" Volatility: {vol_level.upper()}")
else:
print(" ⚠️ Could not fetch market data")
# Position Status
print("\n🛡️ POSITION CONTROL:")
has_pos, pos_info = check_existing_positions(symbol, strategy_name)
print(f" Active Positions: {pos_info['count']}/{max_positions}")
print(f" Trading Status: {'🛑 BLOCKED' if has_pos else '✅ READY'}")
if has_pos:
for i, pos in enumerate(pos_info['details'], 1):
profit_emoji = "🟢" if pos['profit'] >= 0 else "🔴"
print(f" Position {i}: {pos['type']} | {profit_emoji} {pos['profit']:.2f}")
# Signal Status
print("\n📊 CURRENT SIGNAL:")
try:
signal_info = extended_top_down_v2_adaptive(symbol)
if signal_info:
signal_dir = "LONG" if signal_info['entry_signal'] == 1 else "SHORT" if signal_info['entry_signal'] == -1 else "NONE"
print(f" Signal: {signal_dir}")
print(f" Confidence: {signal_info['confidence']}%")
print(f" Threshold: {signal_info['adaptive_threshold']}%")
print(f" Quality: {signal_info['signal_quality'].upper()}")
print(f" Regime: {signal_info['market_regime']['regime'].upper()}")
would_trade = (signal_info['entry_signal'] != 0 and not has_pos)
print(f" Would Trade: {'✅ YES' if would_trade else '❌ NO'}")
else:
print(" ⚠️ Signal analysis failed")
except Exception as e:
print(f" ❌ Error: {e}")
# Version Info
print("\n🎉 VERSION INFO:")
print(" Version: V1.6 Adaptive Complete (CORRECTED)")
print(" Features: Position Control + Relaxed + Adaptive Rhythm")
print(" Status: Production-Ready ✅")
print("="*70)
print("✅ Status monitoring function defined (COMPLETE with all features)")✅ Status monitoring function defined (COMPLETE with all features)
In [28]:
# ==========================================
# SETUP SCHEDULER (V1.6 ADAPTIVE COMPLETE)
# ==========================================
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler()
# 1. ADAPTIVE TRADING CHECK (every minute, executes at optimal intervals)
scheduler.add_job(
func=adaptive_trading_check,
trigger='cron',
minute='*',
id='adaptive_trading_check',
replace_existing=True
)
# 2. STATUS REPORT (every 30 minutes)
scheduler.add_job(
func=print_status_report,
trigger='cron',
minute='0,30',
id='status_report',
replace_existing=True
)
# 3. SCHEDULED REPORTS (V1.8) - Daily & Weekly
create_scheduled_reports(infra, scheduler)
print("✅ Scheduled reports added:")
print(" 📊 Daily report: 22:00 UTC")
print(" 📈 Weekly report: Sunday 23:00 UTC")
# 4. POSITION MONITOR (V1.8) - Every minute
scheduler.add_job(
func=position_monitor.check_open_positions,
trigger='interval',
minutes=1,
id='position_monitor',
replace_existing=True
)
print("✅ Position Monitor job added")
# 5. ADVANCED POSITION MANAGEMENT (V2.1) - Trailing Stop + Partial TP
scheduler.add_job(
func=lambda: adv_position_mgr.check_and_update_positions(symbol),
trigger='interval',
minutes=1,
id='advanced_position_management',
replace_existing=True
)
print("✅ Advanced Position Management job added")
# START SCHEDULER
if not scheduler.running:
scheduler.start()
print("\n✅ Scheduler started!")
else:
print("\n⚠️ Scheduler already running")
# Show active jobs
print(f"\n📋 Active Jobs: {len(scheduler.get_jobs())}")
for job in scheduler.get_jobs():
print(f" • {job.id}")
print("\n" + "="*70)
print("🚀 TradingBot V2.2 - All Systems Ready!")
print("="*70)
2025-12-26 18:02:24,683 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2025-12-26 18:02:24,692 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2025-12-26 18:02:24,695 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2025-12-26 18:02:24,697 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2025-12-26 18:02:24,706 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2025-12-26 18:02:24,709 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts 2025-12-26 18:02:24,710 - INFO - Added job "create_protected_trading_check.<locals>.protected_check" to job store "default" 2025-12-26 18:02:24,711 - INFO - Added job "print_status_report" to job store "default" 2025-12-26 18:02:24,712 - INFO - Added job "TradingInfrastructure.send_daily_report" to job store "default" 2025-12-26 18:02:24,712 - INFO - Added job "TradingInfrastructure.send_weekly_report" to job store "default" 2025-12-26 18:02:24,713 - INFO - Added job "PositionMonitor.check_open_positions" to job store "default" 2025-12-26 18:02:24,730 - INFO - Added job "<lambda>" to job store "default" 2025-12-26 18:02:24,731 - INFO - Scheduler started
✅ Scheduled reports added: 📊 Daily report: 22:00 UTC 📈 Weekly report: Sunday 23:00 UTC ✅ Scheduled reports added: 📊 Daily report: 22:00 UTC 📈 Weekly report: Sunday 23:00 UTC ✅ Position Monitor job added ✅ Advanced Position Management job added ✅ Scheduler started! 📋 Active Jobs: 6 • adaptive_trading_check • position_monitor • advanced_position_management • status_report • daily_report • weekly_report ====================================================================== 🚀 TradingBot V2.2 - All Systems Ready! ======================================================================
In [29]:
# ✅ KORRIGIERT: Umfassende Testing Suite (fehlte in V1.6)
# Test 1: Position Summary
print("🧪 TEST 1: Position Check")
print("="*50)
get_position_summary(symbol, strategy_name)Out [29]:
🧪 TEST 1: Position Check
==================================================
📊 POSITION SUMMARY für XAUUSD (V1.6 Adaptive Complete)
============================================================
⚠️ 1 aktive Position(en) gefunden:
Position 1:
Ticket: 623036395
Typ: BUY
Volumen: 0.01
Eröffnungspreis: 4539.16
Profit: 🔴 -3.29
Eröffnungszeit: 2025-12-26 18:15:00
🛑 TRADING BLOCKIERT - Maximal 1 Position erlaubt
True
In [30]:
# Test 2: Adaptive Rhythm Status
print("\n🧪 TEST 2: Adaptive Rhythm")
print("="*50)
print_status_report()
# Test Details
optimal_interval = rhythm_manager.calculate_optimal_interval()
session = rhythm_manager.get_current_session()
df = rhythm_manager.get_market_data()
if df is not None:
atr = df['atr'].iloc[-1]
vol_level = rhythm_manager.get_volatility_level(atr)
print(f"\nDetails:")
print(f" Optimal Interval: {optimal_interval} min")
print(f" Session: {session}")
print(f" ATR: {atr:.2f}")
print(f" Volatility Level: {vol_level}")🧪 TEST 2: Adaptive Rhythm ================================================== ╔════════════════════════════════════════════════════════╗ ║ ADAPTIVE RHYTHM STATUS - 18:02:25 UTC ║ ╠════════════════════════════════════════════════════════╣ ║ Aktuelles Intervall: 5 Minuten ║ ║ Trading Session: NY ║ ║ Volatilitätslevel: HIGH ║ ║ ATR (H1): 15.80 ║ ╠════════════════════════════════════════════════════════╣ ║ INTERVALL-SCHEMA: ║ ║ • Overlap (13-16 UTC): 5-15 Min (aktivste Phase) ║ ║ • London/NY: 5-30 Min (volatilitätsabh.) ║ ║ • Asian Session: 15-30 Min (ruhigere Phase) ║ ╚════════════════════════════════════════════════════════╝ Details: Optimal Interval: 5 min Session: ny ATR: 15.80 Volatility Level: high
In [31]:
# Test 3: Signal Analysis
print("\n🧪 TEST 3: Signal Analysis")
print("="*50)
signal_result = extended_top_down_v2_adaptive(symbol)
if signal_result:
print(f"\n🎯 SIGNAL SUMMARY:")
print(f" Entry Signal: {signal_result['entry_signal']}")
print(f" Confidence: {signal_result['confidence']}%")
print(f" Threshold: {signal_result['adaptive_threshold']}%")
print(f" Quality: {signal_result['signal_quality'].upper()}")
print(f" Regime: {signal_result['market_regime']['regime'].upper()}")
print(f" Adaptive Interval: {signal_result['adaptive_interval']} min")
print(f" Session: {signal_result['session'].upper()}")
if signal_result['entry_signal'] != 0:
direction = "LONG" if signal_result['entry_signal'] == 1 else "SHORT"
print(f"\n✅ TRADING SIGNAL: {direction}")
else:
print(f"\n⏸️ NO TRADING SIGNAL")
else:
print("❌ Signal analysis failed")🧪 TEST 3: Signal Analysis ================================================== 🔍 Analyzing XAUUSD with V1.6 ADAPTIVE COMPLETE parameters... 📊 V1.6 ADAPTIVE COMPLETE Trend-Analyse für XAUUSD ⚡ Adaptive Interval: 5 min | Session: NY 🎯 Market Regime: RANGING (Strength: 18%) 🎚️ Adaptive Threshold: 70% (RELAXED) +------+---------+------------+---------+----------+---------+ | TF | Trend | Strength | ATR | Slope | Price | |------+---------+------------+---------+----------+---------| | D1 | uptrend | 769.26 | 71.3863 | 8.23715 | 4535.87 | | H4 | uptrend | 579.85 | 29.015 | 2.52365 | 4535.87 | | H1 | uptrend | 708.89 | 15.5979 | 1.65859 | 4535.87 | | M30 | uptrend | 371.39 | 11.1134 | 0.619122 | 4535.87 | | M15 | uptrend | 175.45 | 8.7263 | 0.229661 | 4535.87 | | M5 | uptrend | 202.71 | 5.7747 | 0.175588 | 4535.87 | +------+---------+------------+---------+----------+---------+ ➡️ Standard-Trend: uptrend (Strength: 693.49) ➡️ Fast-Trend: uptrend (Required: 2/4) ➡️ Top-Down-Trend: uptrend ➡️ Confidence: 100.0% (Threshold: 70%) ➡️ Risk-Adjusted Strength: 188585.9 (Min: 80) ➡️ Signal Quality: EXCELLENT 🚀 V1.6 Adaptive Complete: Full Features + Adaptive Rhythm 🎯 SIGNAL SUMMARY: Entry Signal: 1 Confidence: 100.0% Threshold: 70% Quality: EXCELLENT Regime: RANGING Adaptive Interval: 5 min Session: NY ✅ TRADING SIGNAL: LONG
In [32]:
# Test 4: Complete Bot Status
print("\n🧪 TEST 4: Complete Bot Status")
print("="*50)
check_adaptive_bot_status()🧪 TEST 4: Complete Bot Status
==================================================
======================================================================
🔍 V1.6 ADAPTIVE COMPLETE BOT STATUS
======================================================================
📡 SYSTEM STATUS:
MT5 Connection: ✅
Scheduler Running: ✅
Active Jobs: 6
⚡ ADAPTIVE RHYTHM:
Current Interval: 5 min
Trading Session: NY
ATR (H1): 15.80
Volatility: HIGH
🛡️ POSITION CONTROL:
Active Positions: 1/1
Trading Status: 🛑 BLOCKED
Position 1: BUY | 🔴 -3.41
📊 CURRENT SIGNAL:
🔍 Analyzing XAUUSD with V1.6 ADAPTIVE COMPLETE parameters...
📊 V1.6 ADAPTIVE COMPLETE Trend-Analyse für XAUUSD
⚡ Adaptive Interval: 5 min | Session: NY
🎯 Market Regime: RANGING (Strength: 18%)
🎚️ Adaptive Threshold: 70% (RELAXED)
+------+---------+------------+---------+----------+---------+
| TF | Trend | Strength | ATR | Slope | Price |
|------+---------+------------+---------+----------+---------|
| D1 | uptrend | 769.25 | 71.3863 | 8.23712 | 4535.75 |
| H4 | uptrend | 579.84 | 29.015 | 2.52362 | 4535.75 |
| H1 | uptrend | 708.88 | 15.5979 | 1.65856 | 4535.76 |
| M30 | uptrend | 371.38 | 11.1134 | 0.619096 | 4535.76 |
| M15 | uptrend | 175.43 | 8.7263 | 0.229635 | 4535.76 |
| M5 | uptrend | 202.68 | 5.7747 | 0.175562 | 4535.76 |
+------+---------+------------+---------+----------+---------+
➡️ Standard-Trend: uptrend (Strength: 693.49)
➡️ Fast-Trend: uptrend (Required: 2/4)
➡️ Top-Down-Trend: uptrend
➡️ Confidence: 100.0% (Threshold: 70%)
➡️ Risk-Adjusted Strength: 188580.7 (Min: 80)
➡️ Signal Quality: EXCELLENT
🚀 V1.6 Adaptive Complete: Full Features + Adaptive Rhythm
Signal: LONG
Confidence: 100.0%
Threshold: 70%
Quality: EXCELLENT
Regime: RANGING
Would Trade: ❌ NO
🎉 VERSION INFO:
Version: V1.6 Adaptive Complete (CORRECTED)
Features: Position Control + Relaxed + Adaptive Rhythm
Status: Production-Ready ✅
======================================================================
In [33]:
# Test 5: Trade Execution Test (DRY RUN)
print("\n🧪 TEST 5: Trade Execution (DRY RUN)")
print("="*50)
print("\nTesting trading logic without actual order...")
# Dies führt die komplette Trading-Logik aus,
# führt aber nur dann wirklich einen Trade aus,
# wenn alle Bedingungen erfüllt sind
test_result = execute_trade_v2_adaptive(**ADAPTIVE_COMPLETE_CONFIG)
if test_result:
print("\n✅ Trade würde ausgeführt!")
else:
print("\n⏸️ Kein Trade - Bedingungen nicht erfüllt")🧪 TEST 5: Trade Execution (DRY RUN) ================================================== Testing trading logic without actual order... 📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 28.5 (weight 1.0x) ✅ TREND H4: ADX 39.4 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 36.2 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) 🛑 TRADE BLOCKIERT: 1/1 Positionen aktiv BUY @ 4539.16 | 🔴 -3.39 ⏸️ Kein Trade - Bedingungen nicht erfüllt
In [34]:
scheduler.get_jobs()Out [34]:
[<Job (id=adaptive_trading_check name=create_protected_trading_check.<locals>.protected_check)>, <Job (id=position_monitor name=PositionMonitor.check_open_positions)>, <Job (id=advanced_position_management name=<lambda>)>, <Job (id=status_report name=print_status_report)>, <Job (id=daily_report name=TradingInfrastructure.send_daily_report)>, <Job (id=weekly_report name=TradingInfrastructure.send_weekly_report)>]
In [35]:
execute_trade_v2_adaptive(**ADAPTIVE_COMPLETE_CONFIG)📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 28.5 (weight 1.0x) ✅ TREND H4: ADX 39.4 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 36.2 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) 🛑 TRADE BLOCKIERT: 1/1 Positionen aktiv BUY @ 4539.16 | 🔴 -3.39
In [36]:
# ✅ KORRIGIERT: Management Control Panel (fehlte in V1.6)
def show_adaptive_management_options():
"""
✅ NEU: Management UI für V1.6 Adaptive Complete
"""
print("\n" + "="*70)
print("🔧 V1.6 ADAPTIVE COMPLETE - MANAGEMENT CONTROL PANEL")
print("="*70)
print("\n📊 MONITORING:")
print(" 1. check_adaptive_bot_status() - Complete Status")
print(" 2. get_position_summary() - Position Overview")
print(" 3. print_status_report() - Adaptive Rhythm Status")
print(" 4. analyze_performance_adaptive() - Performance Analysis")
print("\n🎯 ANALYSIS:")
print(" 5. extended_top_down_v2_adaptive() - Signal Analysis")
print(" 6. rhythm_manager.calculate_optimal_interval() - Current Interval")
print("\n💼 POSITION MANAGEMENT:")
print(" 7. close_existing_positions(force_close=True) - Close All Positions")
print("\n🚀 TRADING:")
print(" 8. execute_trade_v2_adaptive(**ADAPTIVE_COMPLETE_CONFIG) - Manual Trade")
print("\n⚙️ SCHEDULER CONTROL:")
print(" 9. scheduler.get_jobs() - Show Active Jobs")
print(" 10. scheduler.pause() - Pause Scheduler")
print(" 11. scheduler.resume() - Resume Scheduler")
print(" 12. scheduler.shutdown() - Stop Scheduler")
print("\n🔧 CONFIGURATION:")
print(" 13. ADAPTIVE_COMPLETE_CONFIG - View Config")
print(" 14. rhythm_manager.atr_thresholds - ATR Settings")
print("\n📝 QUICK COMMANDS:")
print(" • Status: check_adaptive_bot_status()")
print(" • Close: close_existing_positions(symbol, strategy_name, force_close=True)")
print(" • Stop: scheduler.shutdown()")
print("="*70)
show_adaptive_management_options()====================================================================== 🔧 V1.6 ADAPTIVE COMPLETE - MANAGEMENT CONTROL PANEL ====================================================================== 📊 MONITORING: 1. check_adaptive_bot_status() - Complete Status 2. get_position_summary() - Position Overview 3. print_status_report() - Adaptive Rhythm Status 4. analyze_performance_adaptive() - Performance Analysis 🎯 ANALYSIS: 5. extended_top_down_v2_adaptive() - Signal Analysis 6. rhythm_manager.calculate_optimal_interval() - Current Interval 💼 POSITION MANAGEMENT: 7. close_existing_positions(force_close=True) - Close All Positions 🚀 TRADING: 8. execute_trade_v2_adaptive(**ADAPTIVE_COMPLETE_CONFIG) - Manual Trade ⚙️ SCHEDULER CONTROL: 9. scheduler.get_jobs() - Show Active Jobs 10. scheduler.pause() - Pause Scheduler 11. scheduler.resume() - Resume Scheduler 12. scheduler.shutdown() - Stop Scheduler 🔧 CONFIGURATION: 13. ADAPTIVE_COMPLETE_CONFIG - View Config 14. rhythm_manager.atr_thresholds - ATR Settings 📝 QUICK COMMANDS: • Status: check_adaptive_bot_status() • Close: close_existing_positions(symbol, strategy_name, force_close=True) • Stop: scheduler.shutdown() ======================================================================
In [37]:
# Optional: Close positions manually
# UNCOMMENT to use:
# close_existing_positions(symbol, strategy_name, force_close=True)
print("💡 To close positions manually, uncomment the code above")💡 To close positions manually, uncomment the code above
In [38]:
# Optional: ATR-Schwellenwerte anpassen
# UNCOMMENT to use:
# rhythm_manager.atr_thresholds = {
# 'high': 18.0,
# 'medium': 10.0,
# 'low': 5.0
# }
# print("✅ ATR thresholds updated")
print("💡 To adjust ATR thresholds, uncomment the code above")💡 To adjust ATR thresholds, uncomment the code above
In [39]:
# Scheduler Control
print("🎛️ SCHEDULER CONTROL")
print("\n💡 To pause trading:")
print("scheduler.pause()")
print("\n💡 To resume trading:")
print("scheduler.resume()")
print("\n💡 To stop completely:")
print("scheduler.shutdown()")
# UNCOMMENT to stop:
# scheduler.shutdown()
# print("🔴 Trading Bot stopped")🎛️ SCHEDULER CONTROL 💡 To pause trading: scheduler.pause() 💡 To resume trading: scheduler.resume() 💡 To stop completely: scheduler.shutdown()
In [40]:
print("\n" + "="*70)
print("📈 TRADINGBOT V1.6 ADAPTIVE COMPLETE - SUMMARY")
print("="*70)
print("\n🎉 VERSION: V1.6 ADAPTIVE COMPLETE (CORRECTED & READY!)")
print("\n✅ ALLE FEATURES INTEGRIERT:")
print("\n🛡️ Position Control (aus V1.5):")
print(" • Maximal 1 Trade gleichzeitig")
print(" • check_existing_positions()")
print(" • get_position_summary()")
print(" • close_existing_positions() ✅ KORRIGIERT!")
print("\n🚀 Relaxed Trading Parameters (aus V1.5):")
print(" • 10-20% niedrigere Confidence-Schwellen")
print(" • Disabled Pullback Entry")
print(" • Relaxed Signal-Quality-Filter")
print(" • Niedrigere Min Risk-Adjusted Strength (80)")
print(" • Fixed 2/4 Timeframe Alignment")
print("\n⚡ Adaptive Rhythm (NEU in V1.6):")
print(" • Adaptive Intervalle: 5/15/30 Minuten")
print(" • Volatilitäts-basiert (ATR)")
print(" • Session-abhängig (Asian/London/NY/Overlap)")
print(" • Intelligente Entscheidungs-Matrix")
print("\n📊 Monitoring & Management (aus V1.5, angepasst):")
print(" • Performance Logging")
print(" • Performance Analysis")
print(" • Complete Status Monitoring ✅ KORRIGIERT!")
print(" • Management Control Panel ✅ KORRIGIERT!")
print("\n🤖 Automation:")
print(" • APScheduler Integration")
print(" • Adaptive Trading Checks (jede Minute)")
print(" • Status Reports (alle 30 Min)")
print("\n🧪 Testing Suite (aus V1.5):")
print(" • Position Tests ✅ KORRIGIERT!")
print(" • Signal Analysis Tests ✅ KORRIGIERT!")
print(" • Adaptive Rhythm Tests")
print(" • Complete Status Tests ✅ KORRIGIERT!")
print("\n⚙️ Configuration:")
print(" • ADAPTIVE_COMPLETE_CONFIG ✅ KORRIGIERT!")
print(" • Zentrale Parameter-Verwaltung")
print("\n🎯 VORTEILE VON V1.6 ADAPTIVE COMPLETE:")
print(" ✅ Maximale Sicherheit (Position Control)")
print(" ✅ Maximale Gelegenheiten (Relaxed Parameters)")
print(" ✅ Maximale Effizienz (Adaptive Rhythm)")
print(" ✅ Vollständige Kontrolle (Complete Management)")
print(" ✅ Production-Ready!")
print("\n📊 TYPISCHER 24H-ZYKLUS:")
print(" 00:00-08:00 (Asian) → 15-30 min")
print(" 08:00-13:00 (London) → 5-30 min")
print(" 13:00-16:00 (Overlap) → 5-15 min 🔥")
print(" 16:00-21:00 (NY) → 5-30 min")
print(" 21:00-00:00 (After) → 15-30 min")
print("\n💡 HAUPTFUNKTIONEN:")
print(" • Status: check_adaptive_bot_status()")
print(" • Analyze: extended_top_down_v2_adaptive()")
print(" • Trade: execute_trade_v2_adaptive()")
print(" • Manage: show_adaptive_management_options()")
print("\n🏆 V1.6 ADAPTIVE COMPLETE - ALLE FUNKTIONEN INTEGRIERT!")
print(" 🛡️ Sicherheit + 🚀 Aggressivität + ⚡ Intelligenz")
print(" Production-Ready & Fully Tested! ✅")
print("\n" + "="*70)
print("🎊 Ready for intelligent, safe, and adaptive trading!")
print("="*70)====================================================================== 📈 TRADINGBOT V1.6 ADAPTIVE COMPLETE - SUMMARY ====================================================================== 🎉 VERSION: V1.6 ADAPTIVE COMPLETE (CORRECTED & READY!) ✅ ALLE FEATURES INTEGRIERT: 🛡️ Position Control (aus V1.5): • Maximal 1 Trade gleichzeitig • check_existing_positions() • get_position_summary() • close_existing_positions() ✅ KORRIGIERT! 🚀 Relaxed Trading Parameters (aus V1.5): • 10-20% niedrigere Confidence-Schwellen • Disabled Pullback Entry • Relaxed Signal-Quality-Filter • Niedrigere Min Risk-Adjusted Strength (80) • Fixed 2/4 Timeframe Alignment ⚡ Adaptive Rhythm (NEU in V1.6): • Adaptive Intervalle: 5/15/30 Minuten • Volatilitäts-basiert (ATR) • Session-abhängig (Asian/London/NY/Overlap) • Intelligente Entscheidungs-Matrix 📊 Monitoring & Management (aus V1.5, angepasst): • Performance Logging • Performance Analysis • Complete Status Monitoring ✅ KORRIGIERT! • Management Control Panel ✅ KORRIGIERT! 🤖 Automation: • APScheduler Integration • Adaptive Trading Checks (jede Minute) • Status Reports (alle 30 Min) 🧪 Testing Suite (aus V1.5): • Position Tests ✅ KORRIGIERT! • Signal Analysis Tests ✅ KORRIGIERT! • Adaptive Rhythm Tests • Complete Status Tests ✅ KORRIGIERT! ⚙️ Configuration: • ADAPTIVE_COMPLETE_CONFIG ✅ KORRIGIERT! • Zentrale Parameter-Verwaltung 🎯 VORTEILE VON V1.6 ADAPTIVE COMPLETE: ✅ Maximale Sicherheit (Position Control) ✅ Maximale Gelegenheiten (Relaxed Parameters) ✅ Maximale Effizienz (Adaptive Rhythm) ✅ Vollständige Kontrolle (Complete Management) ✅ Production-Ready! 📊 TYPISCHER 24H-ZYKLUS: 00:00-08:00 (Asian) → 15-30 min 08:00-13:00 (London) → 5-30 min 13:00-16:00 (Overlap) → 5-15 min 🔥 16:00-21:00 (NY) → 5-30 min 21:00-00:00 (After) → 15-30 min 💡 HAUPTFUNKTIONEN: • Status: check_adaptive_bot_status() • Analyze: extended_top_down_v2_adaptive() • Trade: execute_trade_v2_adaptive() • Manage: show_adaptive_management_options() 🏆 V1.6 ADAPTIVE COMPLETE - ALLE FUNKTIONEN INTEGRIERT! 🛡️ Sicherheit + 🚀 Aggressivität + ⚡ Intelligenz Production-Ready & Fully Tested! ✅ ====================================================================== 🎊 Ready for intelligent, safe, and adaptive trading! ======================================================================
In [41]:
# Check Drawdown Protection Status
print("🔍 Drawdown Protection Debug:")
print(f" trading_paused: {drawdown_protection.trading_paused}")
print(f" pause_until: {drawdown_protection.pause_until}")
print(f" pause_reason: {drawdown_protection.pause_reason}")
# Force clear everything
drawdown_protection.trading_paused = False
drawdown_protection.pause_until = None
drawdown_protection.pause_reason = None
# Test
can_trade, reason = drawdown_protection.can_trade()
print(f"\n✅ After force clear:")
print(f" Can trade: {can_trade}")
print(f" Reason: {reason}")
# Check consecutive losses in DB
consecutive = drawdown_protection._get_consecutive_losses()
print(f"\n📊 Consecutive losses from DB: {consecutive}")🔍 Drawdown Protection Debug: trading_paused: False pause_until: None pause_reason: None ✅ After force clear: Can trade: True Reason: OK 📊 Consecutive losses from DB: 0
In [42]:
# # ==========================================
# # RESET CONSECUTIVE LOSSES (V2.2)
# # ==========================================
# from datetime import datetime
# print("🔧 Resetting consecutive losses counter...")
# # Try to find the database instance
# db_instance = None
# if 'db' in globals():
# db_instance = db
# elif 'infra' in globals() and hasattr(infra, 'db'):
# db_instance = infra.db
# print(" Found DB via infra.db")
# elif 'drawdown_protection' in globals() and hasattr(drawdown_protection, 'db'):
# db_instance = drawdown_protection.db
# print(" Found DB via drawdown_protection.db")
# if db_instance:
# try:
# # Insert dummy winning trade directly via SQL
# db_instance.cursor.execute("""
# INSERT INTO trades (
# ticket, symbol, strategy_name, type, volume,
# entry_price, sl_price, tp_price, entry_time,
# session, regime, quality, confidence,
# status, exit_time, profit, net_profit, exit_reason
# ) VALUES (
# 999999999, 'XAUUSD', 'TradingBot_V2.2_Reset', 'BUY', 0.01,
# 2650.00, 2640.00, 2660.00, ?,
# 'manual', 'reset', 'manual_reset', 100.0,
# 'closed', ?, 1.00, 1.00, 'consecutive_loss_reset'
# )
# """, (datetime.now().isoformat(), datetime.now().isoformat()))
# db_instance.conn.commit()
# print("✅ Dummy winning trade inserted!")
# # Check consecutive losses
# consecutive = drawdown_protection._get_consecutive_losses()
# print(f"📊 Consecutive losses after reset: {consecutive}")
# # Clear pause
# drawdown_protection.trading_paused = False
# drawdown_protection.pause_until = None
# drawdown_protection.pause_reason = None
# # Test
# can_trade, reason = drawdown_protection.can_trade()
# print(f"\n✅ FINAL STATUS:")
# print(f" Can trade: {can_trade}")
# print(f" Reason: {reason if not can_trade else 'All systems GO! 🚀'}")
# if can_trade:
# print("\n🎉 SUCCESS! Trading is now ACTIVE!")
# print(" 🛑 Ranging Filter protects you")
# print(" 💾 Exit logging works")
# print(" 📊 Drawdown Protection active")
# else:
# print(f"\n⚠️ Still blocked: {reason}")
# print(" Trying nuclear option...")
# # Override the limit temporarily
# drawdown_protection.max_consecutive_losses = 100
# print(" ✅ Consecutive loss limit raised to 100")
# except Exception as e:
# print(f"❌ Error: {e}")
# import traceback
# traceback.print_exc()
# else:
# print("❌ Could not find database instance!")
# print(" Available globals:", [k for k in globals().keys() if 'db' in k.lower() or 'infra' in k.lower()])In [43]:
# Prüfe ob Filter aktiv ist
print(SESSION_WHITELIST_CONFIG)
# Teste manuell verschiedene Sessions
for session in ['asian', 'london', 'overlap', 'ny']:
allowed, reason = is_session_allowed(session)
emoji = "✅" if allowed else "❌"
print(f"{emoji} {session}: {reason}"){'enabled_sessions': {'asian': True, 'london': False, 'overlap': False, 'ny': True}, 'session_confidence_thresholds': {'asian': 95, 'ny': 97, 'london': 95, 'overlap': 95}, 'base_confidence': 95, 'atr_mult': 1.5, 'max_risk_per_trade': 0.02, 'min_atr': 0.0008, 'risk_filter': True, 'use_pullback_entry': False, 'debug': True}
✅ asian: Asian allowed: 97.8% WR, $151/trade (EXCELLENT!)
❌ london: London blocked: 12.5% win-rate, -$10/trade
❌ overlap: Overlap blocked: 14.3% win-rate, -$7/trade
✅ ny: NY allowed: 43.3% WR, $48/trade (needs >=97% conf)
In [ ]:
# Verschiedene Timeframes checken
print("📊 ADX auf verschiedenen Timeframes:\n")
for tf_name, tf in [('M15', mt.TIMEFRAME_M15), ('H1', mt.TIMEFRAME_H1), ('H4', mt.TIMEFRAME_H4), ('D1', mt.TIMEFRAME_D1)]:
rates = mt.copy_rates_from_pos("XAUUSD", tf, 0, 100)
df = pd.DataFrame(rates)
adx_data = ta.adx(df['high'], df['low'], df['close'], length=14)
current_adx = adx_data['ADX_14'].iloc[-1]
# Preis letzte 10 Bars
price_change = ((df['close'].iloc[-1] - df['close'].iloc[-10]) / df['close'].iloc[-10]) * 100
print(f"{tf_name:4s}: ADX = {current_adx:5.2f} | Preis-Change (10 bars): {price_change:+.2f}%")
# Aktueller Preis
print(f"\n💰 Aktueller Preis: {mt.symbol_info_tick('XAUUSD').bid:.2f}")📊 ADX auf verschiedenen Timeframes: M15 : ADX = 17.39 | Preis-Change (10 bars): -0.37% H1 : ADX = 26.36 | Preis-Change (10 bars): -0.05% H4 : ADX = 39.37 | Preis-Change (10 bars): +0.62% D1 : ADX = 36.58 | Preis-Change (10 bars): +5.03% 💰 Aktueller Preis: 4516.41
2025-12-26 18:38:00,011 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:39:00 CET)" (scheduled at 2025-12-26 18:38:00+01:00) 2025-12-26 18:38:00,018 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:39:00 CET)" executed successfully 2025-12-26 18:38:24,721 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:39:24 CET)" (scheduled at 2025-12-26 18:38:24.704366+01:00) 2025-12-26 18:38:24,722 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:39:24 CET)" executed successfully 2025-12-26 18:38:24,723 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:39:24 CET)" (scheduled at 2025-12-26 18:38:24.709373+01:00) 2025-12-26 18:38:24,724 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:38:24,726 - INFO - 📊 Partial TP Levels: 2025-12-26 18:38:24,726 - INFO - Entry: 4512.99000 2025-12-26 18:38:24,727 - INFO - SL: 4503.94000 2025-12-26 18:38:24,728 - INFO - Risk: 9.05000 2025-12-26 18:38:24,729 - INFO - TP1 (1.5R): 4526.56500 2025-12-26 18:38:24,730 - INFO - TP2 (2.5R): 4535.61500 2025-12-26 18:38:24,731 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:39:24 CET)" executed successfully 2025-12-26 18:39:00,010 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:40:00 CET)" (scheduled at 2025-12-26 18:39:00+01:00) 2025-12-26 18:39:00,010 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:40:00 CET)" executed successfully 2025-12-26 18:39:24,706 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:40:24 CET)" (scheduled at 2025-12-26 18:39:24.704366+01:00) 2025-12-26 18:39:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:40:24 CET)" executed successfully 2025-12-26 18:39:24,911 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:40:24 CET)" (scheduled at 2025-12-26 18:39:24.709373+01:00) 2025-12-26 18:39:24,912 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:39:24,913 - INFO - 📊 Partial TP Levels: 2025-12-26 18:39:24,914 - INFO - Entry: 4512.99000 2025-12-26 18:39:24,915 - INFO - SL: 4503.94000 2025-12-26 18:39:24,916 - INFO - Risk: 9.05000 2025-12-26 18:39:24,928 - INFO - TP1 (1.5R): 4526.56500 2025-12-26 18:39:24,929 - INFO - TP2 (2.5R): 4535.61500 2025-12-26 18:39:24,930 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:40:24 CET)" executed successfully 2025-12-26 18:40:00,153 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:41:00 CET)" (scheduled at 2025-12-26 18:40:00+01:00) 2025-12-26 18:40:00,159 - INFO - ⏰ 2025-12-26 18:40:00 - ADAPTIVE Check 2025-12-26 18:40:00,160 - INFO - ✅ Session: NY - NY allowed: 43.3% WR, $48/trade (needs >=97% conf) 2025-12-26 18:40:00,161 - INFO - 📊 Confidence Threshold: 95% 2025-12-26 18:40:00,162 - INFO - ⏱️ Intervall: 5 min 2025-12-26 18:40:00,180 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:41:00 CET)" executed successfully
📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 26.4 (weight 1.0x) ✅ TREND H4: ADX 39.4 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 35.8 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) 🛑 TRADE BLOCKIERT: 1/1 Positionen aktiv BUY @ 4512.99 | 🟢 6.31
2025-12-26 18:40:24,970 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:41:24 CET)" (scheduled at 2025-12-26 18:40:24.704366+01:00) 2025-12-26 18:40:24,970 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:41:24 CET)" executed successfully 2025-12-26 18:40:24,970 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:41:24 CET)" (scheduled at 2025-12-26 18:40:24.709373+01:00) 2025-12-26 18:40:24,970 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:40:24,970 - INFO - 📊 Partial TP Levels: 2025-12-26 18:40:24,970 - INFO - Entry: 4512.99000 2025-12-26 18:40:24,970 - INFO - SL: 4503.94000 2025-12-26 18:40:24,970 - INFO - Risk: 9.05000 2025-12-26 18:40:24,970 - INFO - TP1 (1.5R): 4526.56500 2025-12-26 18:40:24,970 - INFO - TP2 (2.5R): 4535.61500 2025-12-26 18:40:24,970 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:41:24 CET)" executed successfully 2025-12-26 18:41:00,211 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:42:00 CET)" (scheduled at 2025-12-26 18:41:00+01:00) 2025-12-26 18:41:00,222 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:42:00 CET)" executed successfully 2025-12-26 18:41:24,896 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:42:24 CET)" (scheduled at 2025-12-26 18:41:24.704366+01:00) 2025-12-26 18:41:24,896 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:42:24 CET)" (scheduled at 2025-12-26 18:41:24.709373+01:00) 2025-12-26 18:41:24,896 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:41:24,900 - INFO - 📊 Partial TP Levels: 2025-12-26 18:41:24,900 - INFO - Entry: 4512.99000 2025-12-26 18:41:24,900 - INFO - SL: 4503.94000 2025-12-26 18:41:24,900 - INFO - Risk: 9.05000 2025-12-26 18:41:24,900 - INFO - TP1 (1.5R): 4526.56500 2025-12-26 18:41:24,900 - INFO - TP2 (2.5R): 4535.61500 2025-12-26 18:41:24,900 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:42:24 CET)" executed successfully 2025-12-26 18:41:24,896 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:42:24 CET)" executed successfully 2025-12-26 18:42:00,011 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:43:00 CET)" (scheduled at 2025-12-26 18:42:00+01:00) 2025-12-26 18:42:00,011 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:43:00 CET)" executed successfully 2025-12-26 18:42:24,908 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:43:24 CET)" (scheduled at 2025-12-26 18:42:24.704366+01:00) 2025-12-26 18:42:24,908 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:43:24 CET)" executed successfully 2025-12-26 18:42:24,908 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:43:24 CET)" (scheduled at 2025-12-26 18:42:24.709373+01:00) 2025-12-26 18:42:24,908 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:42:24,908 - INFO - 📊 Partial TP Levels: 2025-12-26 18:42:24,908 - INFO - Entry: 4512.99000 2025-12-26 18:42:24,908 - INFO - SL: 4503.94000 2025-12-26 18:42:24,908 - INFO - Risk: 9.05000 2025-12-26 18:42:24,908 - INFO - TP1 (1.5R): 4526.56500 2025-12-26 18:42:24,908 - INFO - TP2 (2.5R): 4535.61500 2025-12-26 18:42:24,908 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:43:24 CET)" executed successfully 2025-12-26 18:43:00,022 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:44:00 CET)" (scheduled at 2025-12-26 18:43:00+01:00) 2025-12-26 18:43:00,035 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:44:00 CET)" executed successfully 2025-12-26 18:43:24,712 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:44:24 CET)" (scheduled at 2025-12-26 18:43:24.704366+01:00) 2025-12-26 18:43:24,712 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:44:24 CET)" executed successfully 2025-12-26 18:43:24,712 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:44:24 CET)" (scheduled at 2025-12-26 18:43:24.709373+01:00) 2025-12-26 18:43:24,712 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:43:24,737 - INFO - 📊 Partial TP Levels: 2025-12-26 18:43:24,738 - INFO - Entry: 4512.99000 2025-12-26 18:43:24,739 - INFO - SL: 4503.94000 2025-12-26 18:43:24,774 - INFO - Risk: 9.05000 2025-12-26 18:43:24,795 - INFO - TP1 (1.5R): 4526.56500 2025-12-26 18:43:24,799 - INFO - TP2 (2.5R): 4535.61500 2025-12-26 18:43:24,801 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:44:24 CET)" executed successfully 2025-12-26 18:44:00,110 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:45:00 CET)" (scheduled at 2025-12-26 18:44:00+01:00) 2025-12-26 18:44:00,110 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:45:00 CET)" executed successfully 2025-12-26 18:44:24,717 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:45:24 CET)" (scheduled at 2025-12-26 18:44:24.704366+01:00) 2025-12-26 18:44:24,717 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:45:24 CET)" executed successfully 2025-12-26 18:44:24,717 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:45:24 CET)" (scheduled at 2025-12-26 18:44:24.709373+01:00) 2025-12-26 18:44:24,717 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:44:24,717 - INFO - 📊 Partial TP Levels: 2025-12-26 18:44:24,717 - INFO - Entry: 4512.99000 2025-12-26 18:44:24,717 - INFO - SL: 4503.94000 2025-12-26 18:44:24,717 - INFO - Risk: 9.05000 2025-12-26 18:44:24,717 - INFO - TP1 (1.5R): 4526.56500 2025-12-26 18:44:24,717 - INFO - TP2 (2.5R): 4535.61500 2025-12-26 18:44:24,731 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:45:24 CET)" executed successfully 2025-12-26 18:45:00,181 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:46:00 CET)" (scheduled at 2025-12-26 18:45:00+01:00) 2025-12-26 18:45:00,191 - INFO - ⏰ 2025-12-26 18:45:00 - ADAPTIVE Check 2025-12-26 18:45:00,192 - INFO - ✅ Session: NY - NY allowed: 43.3% WR, $48/trade (needs >=97% conf) 2025-12-26 18:45:00,193 - INFO - 📊 Confidence Threshold: 95% 2025-12-26 18:45:00,194 - INFO - ⏱️ Intervall: 5 min 2025-12-26 18:45:00,339 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:46:00 CET)" executed successfully
📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 26.4 (weight 1.0x) ✅ TREND H4: ADX 39.4 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 35.8 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) 🛑 TRADE BLOCKIERT: 1/1 Positionen aktiv BUY @ 4512.99 | 🟢 3.38
2025-12-26 18:45:24,706 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:46:24 CET)" (scheduled at 2025-12-26 18:45:24.704366+01:00) 2025-12-26 18:45:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:46:24 CET)" executed successfully 2025-12-26 18:45:24,718 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:46:24 CET)" (scheduled at 2025-12-26 18:45:24.709373+01:00) 2025-12-26 18:45:24,719 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:45:24,721 - INFO - 📊 Partial TP Levels: 2025-12-26 18:45:24,740 - INFO - Entry: 4512.99000 2025-12-26 18:45:24,746 - INFO - SL: 4503.94000 2025-12-26 18:45:24,747 - INFO - Risk: 9.05000 2025-12-26 18:45:24,748 - INFO - TP1 (1.5R): 4526.56500 2025-12-26 18:45:24,749 - INFO - TP2 (2.5R): 4535.61500 2025-12-26 18:45:24,749 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:46:24 CET)" executed successfully 2025-12-26 18:46:00,111 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:47:00 CET)" (scheduled at 2025-12-26 18:46:00+01:00) 2025-12-26 18:46:00,117 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:47:00 CET)" executed successfully 2025-12-26 18:46:24,720 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:47:24 CET)" (scheduled at 2025-12-26 18:46:24.704366+01:00) 2025-12-26 18:46:24,720 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:47:24 CET)" (scheduled at 2025-12-26 18:46:24.709373+01:00) 2025-12-26 18:46:24,726 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:46:24,727 - INFO - 📊 Partial TP Levels: 2025-12-26 18:46:24,728 - INFO - Entry: 4512.99000 2025-12-26 18:46:24,728 - INFO - SL: 4503.94000 2025-12-26 18:46:24,729 - INFO - Risk: 9.05000 2025-12-26 18:46:24,730 - INFO - TP1 (1.5R): 4526.56500 2025-12-26 18:46:24,731 - INFO - TP2 (2.5R): 4535.61500 2025-12-26 18:46:24,733 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:47:24 CET)" executed successfully 2025-12-26 18:46:24,720 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:47:24 CET)" executed successfully 2025-12-26 18:47:00,009 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:48:00 CET)" (scheduled at 2025-12-26 18:47:00+01:00) 2025-12-26 18:47:00,080 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:48:00 CET)" executed successfully 2025-12-26 18:47:25,330 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:48:24 CET)" (scheduled at 2025-12-26 18:47:24.704366+01:00) 2025-12-26 18:47:25,331 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:48:24 CET)" (scheduled at 2025-12-26 18:47:24.709373+01:00) 2025-12-26 18:47:25,333 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:48:24 CET)" executed successfully 2025-12-26 18:47:25,343 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:47:25,344 - INFO - 📊 Partial TP Levels: 2025-12-26 18:47:25,345 - INFO - Entry: 4512.99000 2025-12-26 18:47:25,346 - INFO - SL: 4503.94000 2025-12-26 18:47:25,347 - INFO - Risk: 9.05000 2025-12-26 18:47:25,350 - INFO - TP1 (1.5R): 4526.56500 2025-12-26 18:47:25,352 - INFO - TP2 (2.5R): 4535.61500 2025-12-26 18:47:25,353 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:48:24 CET)" executed successfully 2025-12-26 18:48:00,003 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:49:00 CET)" (scheduled at 2025-12-26 18:48:00+01:00) 2025-12-26 18:48:00,015 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:49:00 CET)" executed successfully 2025-12-26 18:48:24,866 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:49:24 CET)" (scheduled at 2025-12-26 18:48:24.704366+01:00) 2025-12-26 18:48:24,867 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:49:24 CET)" executed successfully 2025-12-26 18:48:24,869 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:49:24 CET)" (scheduled at 2025-12-26 18:48:24.709373+01:00) 2025-12-26 18:48:24,885 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:48:24,886 - INFO - 📊 Partial TP Levels: 2025-12-26 18:48:24,887 - INFO - Entry: 4512.99000 2025-12-26 18:48:24,888 - INFO - SL: 4503.94000 2025-12-26 18:48:24,888 - INFO - Risk: 9.05000 2025-12-26 18:48:24,889 - INFO - TP1 (1.5R): 4526.56500 2025-12-26 18:48:24,890 - INFO - TP2 (2.5R): 4535.61500 2025-12-26 18:48:24,891 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:49:24 CET)" executed successfully 2025-12-26 18:49:00,029 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:50:00 CET)" (scheduled at 2025-12-26 18:49:00+01:00) 2025-12-26 18:49:00,041 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:50:00 CET)" executed successfully 2025-12-26 18:49:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:50:24 CET)" (scheduled at 2025-12-26 18:49:24.704366+01:00) 2025-12-26 18:49:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:50:24 CET)" executed successfully 2025-12-26 18:49:24,721 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:50:24 CET)" (scheduled at 2025-12-26 18:49:24.709373+01:00) 2025-12-26 18:49:24,722 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:49:24,724 - INFO - 📈 Trailing Stop Trigger for #623344430: Break-Even at 51.5% progress 2025-12-26 18:49:24,902 - INFO - ✅ Trailing Stop updated for #623344430 2025-12-26 18:49:24,903 - INFO - Old SL: 4503.94000 2025-12-26 18:49:24,906 - INFO - New SL: 4512.99000 2025-12-26 18:49:24,907 - INFO - 📊 Partial TP Levels: 2025-12-26 18:49:24,909 - INFO - Entry: 4512.99000 2025-12-26 18:49:24,909 - INFO - SL: 4503.94000 2025-12-26 18:49:24,911 - INFO - Risk: 9.05000 2025-12-26 18:49:24,912 - INFO - TP1 (1.5R): 4526.56500 2025-12-26 18:49:24,913 - INFO - TP2 (2.5R): 4535.61500 2025-12-26 18:49:24,914 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:50:24 CET)" executed successfully 2025-12-26 18:50:00,144 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:51:00 CET)" (scheduled at 2025-12-26 18:50:00+01:00) 2025-12-26 18:50:00,153 - INFO - ⏰ 2025-12-26 18:50:00 - ADAPTIVE Check 2025-12-26 18:50:00,154 - INFO - ✅ Session: NY - NY allowed: 43.3% WR, $48/trade (needs >=97% conf) 2025-12-26 18:50:00,155 - INFO - 📊 Confidence Threshold: 95% 2025-12-26 18:50:00,156 - INFO - ⏱️ Intervall: 5 min 2025-12-26 18:50:00,174 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:51:00 CET)" executed successfully
📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 26.4 (weight 1.0x) ✅ TREND H4: ADX 39.4 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 35.8 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) 🛑 TRADE BLOCKIERT: 1/1 Positionen aktiv BUY @ 4512.99 | 🟢 9.33
2025-12-26 18:50:24,707 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:51:24 CET)" (scheduled at 2025-12-26 18:50:24.704366+01:00) 2025-12-26 18:50:24,709 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:51:24 CET)" executed successfully 2025-12-26 18:50:24,721 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:51:24 CET)" (scheduled at 2025-12-26 18:50:24.709373+01:00) 2025-12-26 18:50:24,724 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:50:24,725 - INFO - 📊 Partial TP Levels: 2025-12-26 18:50:24,726 - INFO - Entry: 4512.99000 2025-12-26 18:50:24,727 - INFO - SL: 4512.99000 2025-12-26 18:50:24,743 - INFO - Risk: 0.00000 2025-12-26 18:50:24,746 - INFO - TP1 (1.5R): 4512.99000 2025-12-26 18:50:24,747 - INFO - TP2 (2.5R): 4512.99000 2025-12-26 18:50:24,748 - INFO - 🎯 Partial TP Trigger for #623344430: TP1 hit: Price 4521.68000 >= TP1 4512.99000 2025-12-26 18:50:24,914 - INFO - ✅ Partial close executed for #623344430 2025-12-26 18:50:24,915 - INFO - Closed: 0.01 lots (50%) 2025-12-26 18:50:24,916 - INFO - Remaining: 0.00 lots 2025-12-26 18:50:24,931 - ERROR - Error closing partial position: 'OrderSendResult' object has no attribute 'profit' 2025-12-26 18:50:24,934 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:51:24 CET)" executed successfully 2025-12-26 18:51:00,145 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:52:00 CET)" (scheduled at 2025-12-26 18:51:00+01:00) 2025-12-26 18:51:00,157 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:52:00 CET)" executed successfully 2025-12-26 18:51:24,714 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:52:24 CET)" (scheduled at 2025-12-26 18:51:24.704366+01:00) 2025-12-26 18:51:24,714 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:52:24 CET)" (scheduled at 2025-12-26 18:51:24.709373+01:00) 2025-12-26 18:51:24,723 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:52:24 CET)" executed successfully 2025-12-26 18:51:24,896 - INFO - ✅ Updated closed position 623344430: manual_close, Profit: -70.90 2025-12-26 18:51:25,616 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:52:24 CET)" executed successfully
⚠️ Telegram send failed: 400
2025-12-26 18:52:00,001 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:53:00 CET)" (scheduled at 2025-12-26 18:52:00+01:00) 2025-12-26 18:52:00,007 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:53:00 CET)" executed successfully 2025-12-26 18:52:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:53:24 CET)" (scheduled at 2025-12-26 18:52:24.704366+01:00) 2025-12-26 18:52:24,706 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:53:24 CET)" executed successfully 2025-12-26 18:52:24,717 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:53:24 CET)" (scheduled at 2025-12-26 18:52:24.709373+01:00) 2025-12-26 18:52:24,721 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:53:24 CET)" executed successfully 2025-12-26 18:53:00,020 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:54:00 CET)" (scheduled at 2025-12-26 18:53:00+01:00) 2025-12-26 18:53:00,032 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:54:00 CET)" executed successfully 2025-12-26 18:53:24,706 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:54:24 CET)" (scheduled at 2025-12-26 18:53:24.704366+01:00) 2025-12-26 18:53:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:54:24 CET)" executed successfully 2025-12-26 18:53:24,717 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:54:24 CET)" (scheduled at 2025-12-26 18:53:24.709373+01:00) 2025-12-26 18:53:24,721 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:54:24 CET)" executed successfully 2025-12-26 18:54:00,098 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:55:00 CET)" (scheduled at 2025-12-26 18:54:00+01:00) 2025-12-26 18:54:00,107 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:55:00 CET)" executed successfully 2025-12-26 18:54:24,706 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:55:24 CET)" (scheduled at 2025-12-26 18:54:24.704366+01:00) 2025-12-26 18:54:24,708 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:55:24 CET)" executed successfully 2025-12-26 18:54:24,717 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:55:24 CET)" (scheduled at 2025-12-26 18:54:24.709373+01:00) 2025-12-26 18:54:24,718 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:55:24 CET)" executed successfully 2025-12-26 18:55:00,154 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:56:00 CET)" (scheduled at 2025-12-26 18:55:00+01:00) 2025-12-26 18:55:00,167 - INFO - ⏰ 2025-12-26 18:55:00 - ADAPTIVE Check 2025-12-26 18:55:00,168 - INFO - ✅ Session: NY - NY allowed: 43.3% WR, $48/trade (needs >=97% conf) 2025-12-26 18:55:00,170 - INFO - 📊 Confidence Threshold: 95% 2025-12-26 18:55:00,171 - INFO - ⏱️ Intervall: 5 min 2025-12-26 18:55:00,304 - INFO - 📊 Adaptive Position Sizing: 2025-12-26 18:55:00,305 - INFO - Confidence: 100.0% (HIGH) 2025-12-26 18:55:00,306 - INFO - Base Risk: 2.0% 2025-12-26 18:55:00,369 - INFO - Multiplier: 1.5x 2025-12-26 18:55:00,371 - INFO - Adjusted Risk: 3.0% 2025-12-26 18:55:00,372 - INFO - 💰 Position Size: 0.01 lots 2025-12-26 18:55:00,372 - INFO - Risk Amount: $207.19 2025-12-26 18:55:00,373 - INFO - SL Distance: 90162.63 pips
📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 26.4 (weight 1.0x) ✅ TREND H4: ADX 39.4 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 35.8 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) ✅ Position-Check OK: 0/1 🔍 Analyzing XAUUSD with V1.6 ADAPTIVE COMPLETE parameters... 📊 V1.6 ADAPTIVE COMPLETE Trend-Analyse für XAUUSD ⚡ Adaptive Interval: 5 min | Session: NY 🎯 Market Regime: RANGING (Strength: 18%) 🎚️ Adaptive Threshold: 70% (RELAXED) +------+---------+------------+---------+---------+---------+ | TF | Trend | Strength | ATR | Slope | Price | |------+---------+------------+---------+---------+---------| | D1 | uptrend | 768.78 | 71.3863 | 8.23206 | 4514.35 | | H4 | uptrend | 574.58 | 29.2221 | 2.51856 | 4514.35 | | H1 | uptrend | 635.69 | 17.3408 | 1.6535 | 4514.35 | | M30 | uptrend | 321.57 | 12.5244 | 0.60412 | 4514.35 | | M15 | uptrend | 163.44 | 9.7596 | 0.23927 | 4514.35 | | M5 | uptrend | 149.91 | 6.6787 | 0.15018 | 4514.35 | +------+---------+------------+---------+---------+---------+ ➡️ Standard-Trend: uptrend (Strength: 691.10) ➡️ Fast-Trend: uptrend (Required: 2/4) ➡️ Top-Down-Trend: uptrend ➡️ Confidence: 100.0% (Threshold: 70%) ➡️ Risk-Adjusted Strength: 174207.4 (Min: 80) ➡️ Signal Quality: EXCELLENT 🚀 V1.6 Adaptive Complete: Full Features + Adaptive Rhythm 🚀 V1.6 ADAPTIVE COMPLETE TRADE EXECUTION Direction: LONG Price: 4514.35000 | Volume: 0.01 SL: 4505.33374 | TP: 4536.89066 Confidence: 100.0% | Quality: EXCELLENT Regime: RANGING Adaptive Interval: 5 min Session: NY ✅ Trade erfolgreich! Ticket: 623421721
2025-12-26 18:55:01,634 - INFO - 📱 Trade logged to DB + Telegram notification sent 2025-12-26 18:55:01,671 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:56:00 CET)" executed successfully
📊 Positionen: 1 📊 Performance logged to trade_performance_v16_XAUUSD_202512.json
2025-12-26 18:55:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:56:24 CET)" (scheduled at 2025-12-26 18:55:24.704366+01:00) 2025-12-26 18:55:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:56:24 CET)" executed successfully 2025-12-26 18:55:24,716 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:56:24 CET)" (scheduled at 2025-12-26 18:55:24.709373+01:00) 2025-12-26 18:55:24,717 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:55:24,720 - INFO - 📊 Partial TP Levels: 2025-12-26 18:55:24,723 - INFO - Entry: 4514.32000 2025-12-26 18:55:24,728 - INFO - SL: 4505.33000 2025-12-26 18:55:24,731 - INFO - Risk: 8.99000 2025-12-26 18:55:24,734 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 18:55:24,758 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 18:55:24,760 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:56:24 CET)" executed successfully 2025-12-26 18:56:00,656 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:57:00 CET)" (scheduled at 2025-12-26 18:56:00+01:00) 2025-12-26 18:56:00,664 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:57:00 CET)" executed successfully 2025-12-26 18:56:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:57:24 CET)" (scheduled at 2025-12-26 18:56:24.704366+01:00) 2025-12-26 18:56:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:57:24 CET)" executed successfully 2025-12-26 18:56:24,718 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:57:24 CET)" (scheduled at 2025-12-26 18:56:24.709373+01:00) 2025-12-26 18:56:24,721 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:56:24,722 - INFO - 📊 Partial TP Levels: 2025-12-26 18:56:24,722 - INFO - Entry: 4514.32000 2025-12-26 18:56:24,723 - INFO - SL: 4505.33000 2025-12-26 18:56:24,724 - INFO - Risk: 8.99000 2025-12-26 18:56:24,725 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 18:56:24,726 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 18:56:24,741 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:57:24 CET)" executed successfully 2025-12-26 18:57:00,096 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:58:00 CET)" (scheduled at 2025-12-26 18:57:00+01:00) 2025-12-26 18:57:00,103 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:58:00 CET)" executed successfully 2025-12-26 18:57:24,704 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:58:24 CET)" (scheduled at 2025-12-26 18:57:24.704366+01:00) 2025-12-26 18:57:24,706 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:58:24 CET)" executed successfully 2025-12-26 18:57:24,717 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:58:24 CET)" (scheduled at 2025-12-26 18:57:24.709373+01:00) 2025-12-26 18:57:24,718 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:57:24,721 - INFO - 📊 Partial TP Levels: 2025-12-26 18:57:24,722 - INFO - Entry: 4514.32000 2025-12-26 18:57:24,723 - INFO - SL: 4505.33000 2025-12-26 18:57:24,723 - INFO - Risk: 8.99000 2025-12-26 18:57:24,724 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 18:57:24,725 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 18:57:24,746 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:58:24 CET)" executed successfully 2025-12-26 18:58:00,480 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:59:00 CET)" (scheduled at 2025-12-26 18:58:00+01:00) 2025-12-26 18:58:00,491 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 18:59:00 CET)" executed successfully 2025-12-26 18:58:24,837 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:59:24 CET)" (scheduled at 2025-12-26 18:58:24.704366+01:00) 2025-12-26 18:58:24,842 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 18:59:24 CET)" executed successfully 2025-12-26 18:58:24,842 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:59:24 CET)" (scheduled at 2025-12-26 18:58:24.709373+01:00) 2025-12-26 18:58:24,951 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:58:24,953 - INFO - 📊 Partial TP Levels: 2025-12-26 18:58:24,960 - INFO - Entry: 4514.32000 2025-12-26 18:58:24,961 - INFO - SL: 4505.33000 2025-12-26 18:58:24,962 - INFO - Risk: 8.99000 2025-12-26 18:58:24,963 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 18:58:24,968 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 18:58:24,969 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 18:59:24 CET)" executed successfully 2025-12-26 18:59:00,266 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:00:00 CET)" (scheduled at 2025-12-26 18:59:00+01:00) 2025-12-26 18:59:00,273 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:00:00 CET)" executed successfully 2025-12-26 18:59:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:00:24 CET)" (scheduled at 2025-12-26 18:59:24.704366+01:00) 2025-12-26 18:59:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:00:24 CET)" executed successfully 2025-12-26 18:59:24,800 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:00:24 CET)" (scheduled at 2025-12-26 18:59:24.709373+01:00) 2025-12-26 18:59:24,801 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 18:59:24,802 - INFO - 📊 Partial TP Levels: 2025-12-26 18:59:24,803 - INFO - Entry: 4514.32000 2025-12-26 18:59:24,804 - INFO - SL: 4505.33000 2025-12-26 18:59:24,804 - INFO - Risk: 8.99000 2025-12-26 18:59:24,805 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 18:59:24,810 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 18:59:24,813 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:00:24 CET)" executed successfully 2025-12-26 19:00:00,015 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:01:00 CET)" (scheduled at 2025-12-26 19:00:00+01:00) 2025-12-26 19:00:00,016 - INFO - Running job "print_status_report (trigger: cron[minute='0,30'], next run at: 2025-12-26 19:30:00 CET)" (scheduled at 2025-12-26 19:00:00+01:00) 2025-12-26 19:00:00,039 - INFO - Job "print_status_report (trigger: cron[minute='0,30'], next run at: 2025-12-26 19:30:00 CET)" executed successfully 2025-12-26 19:00:00,030 - INFO - ⏰ 2025-12-26 19:00:00 - ADAPTIVE Check 2025-12-26 19:00:00,051 - INFO - ✅ Session: NY - NY allowed: 43.3% WR, $48/trade (needs >=97% conf) 2025-12-26 19:00:00,052 - INFO - 📊 Confidence Threshold: 95% 2025-12-26 19:00:00,053 - INFO - ⏱️ Intervall: 5 min 2025-12-26 19:00:00,090 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:01:00 CET)" executed successfully
╔════════════════════════════════════════════════════════╗ ║ ADAPTIVE RHYTHM STATUS - 19:00:00 UTC ║ ╠════════════════════════════════════════════════════════╣ ║ Aktuelles Intervall: 5 Minuten ║ ║ Trading Session: NY ║ ║ Volatilitätslevel: HIGH ║ ║ ATR (H1): 17.55 ║ ╠════════════════════════════════════════════════════════╣ ║ INTERVALL-SCHEMA: ║ ║ • Overlap (13-16 UTC): 5-15 Min (aktivste Phase) ║ ║ • London/NY: 5-30 Min (volatilitätsabh.) ║ ║ • Asian Session: 15-30 Min (ruhigere Phase) ║ ╚════════════════════════════════════════════════════════╝ 📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 26.4 (weight 1.0x) ✅ TREND H4: ADX 39.4 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 35.8 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) 🛑 TRADE BLOCKIERT: 1/1 Positionen aktiv BUY @ 4514.32 | 🟢 4.81
2025-12-26 19:00:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:01:24 CET)" (scheduled at 2025-12-26 19:00:24.704366+01:00) 2025-12-26 19:00:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:01:24 CET)" executed successfully 2025-12-26 19:00:24,716 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:01:24 CET)" (scheduled at 2025-12-26 19:00:24.709373+01:00) 2025-12-26 19:00:24,721 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:00:24,722 - INFO - 📊 Partial TP Levels: 2025-12-26 19:00:24,730 - INFO - Entry: 4514.32000 2025-12-26 19:00:24,731 - INFO - SL: 4505.33000 2025-12-26 19:00:24,733 - INFO - Risk: 8.99000 2025-12-26 19:00:24,734 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:00:24,735 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:00:24,736 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:01:24 CET)" executed successfully 2025-12-26 19:01:00,041 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:02:00 CET)" (scheduled at 2025-12-26 19:01:00+01:00) 2025-12-26 19:01:00,053 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:02:00 CET)" executed successfully 2025-12-26 19:01:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:02:24 CET)" (scheduled at 2025-12-26 19:01:24.704366+01:00) 2025-12-26 19:01:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:02:24 CET)" executed successfully 2025-12-26 19:01:24,718 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:02:24 CET)" (scheduled at 2025-12-26 19:01:24.709373+01:00) 2025-12-26 19:01:24,723 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:01:24,732 - INFO - 📊 Partial TP Levels: 2025-12-26 19:01:24,733 - INFO - Entry: 4514.32000 2025-12-26 19:01:24,734 - INFO - SL: 4505.33000 2025-12-26 19:01:24,735 - INFO - Risk: 8.99000 2025-12-26 19:01:24,737 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:01:24,738 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:01:24,739 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:02:24 CET)" executed successfully 2025-12-26 19:02:00,060 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:03:00 CET)" (scheduled at 2025-12-26 19:02:00+01:00) 2025-12-26 19:02:00,071 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:03:00 CET)" executed successfully 2025-12-26 19:02:24,704 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:03:24 CET)" (scheduled at 2025-12-26 19:02:24.704366+01:00) 2025-12-26 19:02:24,706 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:03:24 CET)" executed successfully 2025-12-26 19:02:24,760 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:03:24 CET)" (scheduled at 2025-12-26 19:02:24.709373+01:00) 2025-12-26 19:02:24,762 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:02:24,764 - INFO - 📊 Partial TP Levels: 2025-12-26 19:02:24,765 - INFO - Entry: 4514.32000 2025-12-26 19:02:24,766 - INFO - SL: 4505.33000 2025-12-26 19:02:24,766 - INFO - Risk: 8.99000 2025-12-26 19:02:24,768 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:02:24,769 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:02:24,770 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:03:24 CET)" executed successfully 2025-12-26 19:03:00,012 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:04:00 CET)" (scheduled at 2025-12-26 19:03:00+01:00) 2025-12-26 19:03:00,024 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:04:00 CET)" executed successfully 2025-12-26 19:03:24,707 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:04:24 CET)" (scheduled at 2025-12-26 19:03:24.704366+01:00) 2025-12-26 19:03:24,709 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:04:24 CET)" executed successfully 2025-12-26 19:03:24,725 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:04:24 CET)" (scheduled at 2025-12-26 19:03:24.709373+01:00) 2025-12-26 19:03:24,727 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:03:24,728 - INFO - 📊 Partial TP Levels: 2025-12-26 19:03:24,728 - INFO - Entry: 4514.32000 2025-12-26 19:03:24,729 - INFO - SL: 4505.33000 2025-12-26 19:03:24,730 - INFO - Risk: 8.99000 2025-12-26 19:03:24,731 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:03:24,732 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:03:24,733 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:04:24 CET)" executed successfully 2025-12-26 19:04:00,021 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:05:00 CET)" (scheduled at 2025-12-26 19:04:00+01:00) 2025-12-26 19:04:00,037 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:05:00 CET)" executed successfully 2025-12-26 19:04:24,706 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:05:24 CET)" (scheduled at 2025-12-26 19:04:24.704366+01:00) 2025-12-26 19:04:24,709 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:05:24 CET)" executed successfully 2025-12-26 19:04:24,718 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:05:24 CET)" (scheduled at 2025-12-26 19:04:24.709373+01:00) 2025-12-26 19:04:24,719 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:04:24,723 - INFO - 📊 Partial TP Levels: 2025-12-26 19:04:24,724 - INFO - Entry: 4514.32000 2025-12-26 19:04:24,736 - INFO - SL: 4505.33000 2025-12-26 19:04:24,737 - INFO - Risk: 8.99000 2025-12-26 19:04:24,738 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:04:24,744 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:04:24,747 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:05:24 CET)" executed successfully 2025-12-26 19:05:00,034 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:06:00 CET)" (scheduled at 2025-12-26 19:05:00+01:00) 2025-12-26 19:05:00,045 - INFO - ⏰ 2025-12-26 19:05:00 - ADAPTIVE Check 2025-12-26 19:05:00,047 - INFO - ✅ Session: NY - NY allowed: 43.3% WR, $48/trade (needs >=97% conf) 2025-12-26 19:05:00,047 - INFO - 📊 Confidence Threshold: 95% 2025-12-26 19:05:00,048 - INFO - ⏱️ Intervall: 5 min 2025-12-26 19:05:00,084 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:06:00 CET)" executed successfully
📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 25.7 (weight 1.0x) ✅ TREND H4: ADX 39.9 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 35.9 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) 🛑 TRADE BLOCKIERT: 1/1 Positionen aktiv BUY @ 4514.32 | 🟢 5.27
2025-12-26 19:05:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:06:24 CET)" (scheduled at 2025-12-26 19:05:24.704366+01:00) 2025-12-26 19:05:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:06:24 CET)" executed successfully 2025-12-26 19:05:24,718 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:06:24 CET)" (scheduled at 2025-12-26 19:05:24.709373+01:00) 2025-12-26 19:05:24,723 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:05:24,724 - INFO - 📊 Partial TP Levels: 2025-12-26 19:05:24,725 - INFO - Entry: 4514.32000 2025-12-26 19:05:24,735 - INFO - SL: 4505.33000 2025-12-26 19:05:24,736 - INFO - Risk: 8.99000 2025-12-26 19:05:24,738 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:05:24,739 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:05:24,740 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:06:24 CET)" executed successfully 2025-12-26 19:06:00,070 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:07:00 CET)" (scheduled at 2025-12-26 19:06:00+01:00) 2025-12-26 19:06:00,078 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:07:00 CET)" executed successfully 2025-12-26 19:06:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:07:24 CET)" (scheduled at 2025-12-26 19:06:24.704366+01:00) 2025-12-26 19:06:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:07:24 CET)" executed successfully 2025-12-26 19:06:24,718 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:07:24 CET)" (scheduled at 2025-12-26 19:06:24.709373+01:00) 2025-12-26 19:06:24,719 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:06:24,733 - INFO - 📊 Partial TP Levels: 2025-12-26 19:06:24,736 - INFO - Entry: 4514.32000 2025-12-26 19:06:24,737 - INFO - SL: 4505.33000 2025-12-26 19:06:24,738 - INFO - Risk: 8.99000 2025-12-26 19:06:24,739 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:06:24,747 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:06:24,748 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:07:24 CET)" executed successfully 2025-12-26 19:07:00,036 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:08:00 CET)" (scheduled at 2025-12-26 19:07:00+01:00) 2025-12-26 19:07:00,044 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:08:00 CET)" executed successfully 2025-12-26 19:07:24,704 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:08:24 CET)" (scheduled at 2025-12-26 19:07:24.704366+01:00) 2025-12-26 19:07:24,706 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:08:24 CET)" executed successfully 2025-12-26 19:07:24,715 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:08:24 CET)" (scheduled at 2025-12-26 19:07:24.709373+01:00) 2025-12-26 19:07:24,717 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:07:24,718 - INFO - 📊 Partial TP Levels: 2025-12-26 19:07:24,722 - INFO - Entry: 4514.32000 2025-12-26 19:07:24,723 - INFO - SL: 4505.33000 2025-12-26 19:07:24,724 - INFO - Risk: 8.99000 2025-12-26 19:07:24,724 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:07:24,733 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:07:24,735 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:08:24 CET)" executed successfully 2025-12-26 19:08:00,030 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:09:00 CET)" (scheduled at 2025-12-26 19:08:00+01:00) 2025-12-26 19:08:00,039 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:09:00 CET)" executed successfully 2025-12-26 19:08:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:09:24 CET)" (scheduled at 2025-12-26 19:08:24.704366+01:00) 2025-12-26 19:08:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:09:24 CET)" executed successfully 2025-12-26 19:08:24,718 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:09:24 CET)" (scheduled at 2025-12-26 19:08:24.709373+01:00) 2025-12-26 19:08:24,720 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:08:24,721 - INFO - 📊 Partial TP Levels: 2025-12-26 19:08:24,726 - INFO - Entry: 4514.32000 2025-12-26 19:08:24,728 - INFO - SL: 4505.33000 2025-12-26 19:08:24,728 - INFO - Risk: 8.99000 2025-12-26 19:08:24,729 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:08:24,742 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:08:24,743 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:09:24 CET)" executed successfully 2025-12-26 19:09:00,053 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:10:00 CET)" (scheduled at 2025-12-26 19:09:00+01:00) 2025-12-26 19:09:00,065 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:10:00 CET)" executed successfully 2025-12-26 19:09:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:10:24 CET)" (scheduled at 2025-12-26 19:09:24.704366+01:00) 2025-12-26 19:09:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:10:24 CET)" executed successfully 2025-12-26 19:09:24,716 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:10:24 CET)" (scheduled at 2025-12-26 19:09:24.709373+01:00) 2025-12-26 19:09:24,718 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:09:24,722 - INFO - 📊 Partial TP Levels: 2025-12-26 19:09:24,734 - INFO - Entry: 4514.32000 2025-12-26 19:09:24,737 - INFO - SL: 4505.33000 2025-12-26 19:09:24,737 - INFO - Risk: 8.99000 2025-12-26 19:09:24,742 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:09:24,771 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:09:24,772 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:10:24 CET)" executed successfully 2025-12-26 19:10:00,131 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:11:00 CET)" (scheduled at 2025-12-26 19:10:00+01:00) 2025-12-26 19:10:00,143 - INFO - ⏰ 2025-12-26 19:10:00 - ADAPTIVE Check 2025-12-26 19:10:00,144 - INFO - ✅ Session: NY - NY allowed: 43.3% WR, $48/trade (needs >=97% conf) 2025-12-26 19:10:00,145 - INFO - 📊 Confidence Threshold: 95% 2025-12-26 19:10:00,145 - INFO - ⏱️ Intervall: 5 min 2025-12-26 19:10:00,166 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:11:00 CET)" executed successfully
📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 25.7 (weight 1.0x) ✅ TREND H4: ADX 39.9 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 35.9 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) 🛑 TRADE BLOCKIERT: 1/1 Positionen aktiv BUY @ 4514.32 | 🟢 1.84
2025-12-26 19:10:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:11:24 CET)" (scheduled at 2025-12-26 19:10:24.704366+01:00) 2025-12-26 19:10:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:11:24 CET)" executed successfully 2025-12-26 19:10:24,718 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:11:24 CET)" (scheduled at 2025-12-26 19:10:24.709373+01:00) 2025-12-26 19:10:24,739 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:10:24,741 - INFO - 📊 Partial TP Levels: 2025-12-26 19:10:24,742 - INFO - Entry: 4514.32000 2025-12-26 19:10:24,751 - INFO - SL: 4505.33000 2025-12-26 19:10:24,759 - INFO - Risk: 8.99000 2025-12-26 19:10:24,762 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:10:24,765 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:10:24,766 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:11:24 CET)" executed successfully 2025-12-26 19:11:00,049 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:12:00 CET)" (scheduled at 2025-12-26 19:11:00+01:00) 2025-12-26 19:11:00,058 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:12:00 CET)" executed successfully 2025-12-26 19:11:24,704 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:12:24 CET)" (scheduled at 2025-12-26 19:11:24.704366+01:00) 2025-12-26 19:11:24,706 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:12:24 CET)" executed successfully 2025-12-26 19:11:24,736 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:12:24 CET)" (scheduled at 2025-12-26 19:11:24.709373+01:00) 2025-12-26 19:11:24,737 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:11:24,739 - INFO - 📊 Partial TP Levels: 2025-12-26 19:11:24,746 - INFO - Entry: 4514.32000 2025-12-26 19:11:24,750 - INFO - SL: 4505.33000 2025-12-26 19:11:24,751 - INFO - Risk: 8.99000 2025-12-26 19:11:24,752 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:11:24,753 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:11:24,754 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:12:24 CET)" executed successfully 2025-12-26 19:12:00,019 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:13:00 CET)" (scheduled at 2025-12-26 19:12:00+01:00) 2025-12-26 19:12:00,034 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:13:00 CET)" executed successfully 2025-12-26 19:12:24,704 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:13:24 CET)" (scheduled at 2025-12-26 19:12:24.704366+01:00) 2025-12-26 19:12:24,706 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:13:24 CET)" executed successfully 2025-12-26 19:12:24,718 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:13:24 CET)" (scheduled at 2025-12-26 19:12:24.709373+01:00) 2025-12-26 19:12:24,721 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:12:24,722 - INFO - 📊 Partial TP Levels: 2025-12-26 19:12:24,733 - INFO - Entry: 4514.32000 2025-12-26 19:12:24,735 - INFO - SL: 4505.33000 2025-12-26 19:12:24,736 - INFO - Risk: 8.99000 2025-12-26 19:12:24,737 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:12:24,738 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:12:24,746 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:13:24 CET)" executed successfully 2025-12-26 19:13:00,047 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:14:00 CET)" (scheduled at 2025-12-26 19:13:00+01:00) 2025-12-26 19:13:00,054 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:14:00 CET)" executed successfully 2025-12-26 19:13:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:14:24 CET)" (scheduled at 2025-12-26 19:13:24.704366+01:00) 2025-12-26 19:13:24,706 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:14:24 CET)" executed successfully 2025-12-26 19:13:24,718 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:14:24 CET)" (scheduled at 2025-12-26 19:13:24.709373+01:00) 2025-12-26 19:13:24,721 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:13:24,722 - INFO - 📊 Partial TP Levels: 2025-12-26 19:13:24,723 - INFO - Entry: 4514.32000 2025-12-26 19:13:24,724 - INFO - SL: 4505.33000 2025-12-26 19:13:24,725 - INFO - Risk: 8.99000 2025-12-26 19:13:24,726 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:13:24,726 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:13:24,728 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:14:24 CET)" executed successfully 2025-12-26 19:14:00,034 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:15:00 CET)" (scheduled at 2025-12-26 19:14:00+01:00) 2025-12-26 19:14:00,046 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:15:00 CET)" executed successfully 2025-12-26 19:14:24,704 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:15:24 CET)" (scheduled at 2025-12-26 19:14:24.704366+01:00) 2025-12-26 19:14:24,706 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:15:24 CET)" executed successfully 2025-12-26 19:14:24,733 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:15:24 CET)" (scheduled at 2025-12-26 19:14:24.709373+01:00) 2025-12-26 19:14:24,734 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:14:24,736 - INFO - 📊 Partial TP Levels: 2025-12-26 19:14:24,737 - INFO - Entry: 4514.32000 2025-12-26 19:14:24,738 - INFO - SL: 4505.33000 2025-12-26 19:14:24,743 - INFO - Risk: 8.99000 2025-12-26 19:14:24,750 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:14:24,751 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:14:24,752 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:15:24 CET)" executed successfully 2025-12-26 19:15:00,020 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:16:00 CET)" (scheduled at 2025-12-26 19:15:00+01:00) 2025-12-26 19:15:00,035 - INFO - ⏰ 2025-12-26 19:15:00 - ADAPTIVE Check 2025-12-26 19:15:00,037 - INFO - ✅ Session: NY - NY allowed: 43.3% WR, $48/trade (needs >=97% conf) 2025-12-26 19:15:00,038 - INFO - 📊 Confidence Threshold: 95% 2025-12-26 19:15:00,038 - INFO - ⏱️ Intervall: 5 min 2025-12-26 19:15:00,137 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:16:00 CET)" executed successfully
📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 25.7 (weight 1.0x) ✅ TREND H4: ADX 39.9 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 35.9 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) 🛑 TRADE BLOCKIERT: 1/1 Positionen aktiv BUY @ 4514.32 | 🟢 3.49
2025-12-26 19:15:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:16:24 CET)" (scheduled at 2025-12-26 19:15:24.704366+01:00) 2025-12-26 19:15:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:16:24 CET)" executed successfully 2025-12-26 19:15:24,717 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:16:24 CET)" (scheduled at 2025-12-26 19:15:24.709373+01:00) 2025-12-26 19:15:24,719 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:15:24,723 - INFO - 📊 Partial TP Levels: 2025-12-26 19:15:24,724 - INFO - Entry: 4514.32000 2025-12-26 19:15:24,735 - INFO - SL: 4505.33000 2025-12-26 19:15:24,735 - INFO - Risk: 8.99000 2025-12-26 19:15:24,736 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:15:24,737 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:15:24,738 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:16:24 CET)" executed successfully 2025-12-26 19:16:00,055 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:17:00 CET)" (scheduled at 2025-12-26 19:16:00+01:00) 2025-12-26 19:16:00,066 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:17:00 CET)" executed successfully 2025-12-26 19:16:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:17:24 CET)" (scheduled at 2025-12-26 19:16:24.704366+01:00) 2025-12-26 19:16:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:17:24 CET)" executed successfully 2025-12-26 19:16:24,718 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:17:24 CET)" (scheduled at 2025-12-26 19:16:24.709373+01:00) 2025-12-26 19:16:24,719 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:16:24,723 - INFO - 📊 Partial TP Levels: 2025-12-26 19:16:24,733 - INFO - Entry: 4514.32000 2025-12-26 19:16:24,734 - INFO - SL: 4505.33000 2025-12-26 19:16:24,735 - INFO - Risk: 8.99000 2025-12-26 19:16:24,737 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:16:24,739 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:16:24,740 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:17:24 CET)" executed successfully 2025-12-26 19:17:00,187 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:18:00 CET)" (scheduled at 2025-12-26 19:17:00+01:00) 2025-12-26 19:17:00,192 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:18:00 CET)" executed successfully 2025-12-26 19:17:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:18:24 CET)" (scheduled at 2025-12-26 19:17:24.704366+01:00) 2025-12-26 19:17:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:18:24 CET)" executed successfully 2025-12-26 19:17:24,752 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:18:24 CET)" (scheduled at 2025-12-26 19:17:24.709373+01:00) 2025-12-26 19:17:24,755 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:17:24,757 - INFO - 📊 Partial TP Levels: 2025-12-26 19:17:24,759 - INFO - Entry: 4514.32000 2025-12-26 19:17:24,760 - INFO - SL: 4505.33000 2025-12-26 19:17:24,761 - INFO - Risk: 8.99000 2025-12-26 19:17:24,761 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:17:24,762 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:17:24,763 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:18:24 CET)" executed successfully 2025-12-26 19:18:00,011 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:19:00 CET)" (scheduled at 2025-12-26 19:18:00+01:00) 2025-12-26 19:18:00,024 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:19:00 CET)" executed successfully 2025-12-26 19:18:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:19:24 CET)" (scheduled at 2025-12-26 19:18:24.704366+01:00) 2025-12-26 19:18:24,708 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:19:24 CET)" executed successfully 2025-12-26 19:18:24,723 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:19:24 CET)" (scheduled at 2025-12-26 19:18:24.709373+01:00) 2025-12-26 19:18:24,728 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:18:24,729 - INFO - 📊 Partial TP Levels: 2025-12-26 19:18:24,749 - INFO - Entry: 4514.32000 2025-12-26 19:18:24,751 - INFO - SL: 4505.33000 2025-12-26 19:18:24,760 - INFO - Risk: 8.99000 2025-12-26 19:18:24,762 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:18:24,763 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:18:24,764 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:19:24 CET)" executed successfully 2025-12-26 19:19:00,044 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:20:00 CET)" (scheduled at 2025-12-26 19:19:00+01:00) 2025-12-26 19:19:00,050 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:20:00 CET)" executed successfully 2025-12-26 19:19:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:20:24 CET)" (scheduled at 2025-12-26 19:19:24.704366+01:00) 2025-12-26 19:19:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:20:24 CET)" executed successfully 2025-12-26 19:19:24,717 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:20:24 CET)" (scheduled at 2025-12-26 19:19:24.709373+01:00) 2025-12-26 19:19:24,718 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:19:24,722 - INFO - 📊 Partial TP Levels: 2025-12-26 19:19:24,723 - INFO - Entry: 4514.32000 2025-12-26 19:19:24,735 - INFO - SL: 4505.33000 2025-12-26 19:19:24,735 - INFO - Risk: 8.99000 2025-12-26 19:19:24,736 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:19:24,737 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:19:24,741 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:20:24 CET)" executed successfully 2025-12-26 19:20:00,090 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:21:00 CET)" (scheduled at 2025-12-26 19:20:00+01:00) 2025-12-26 19:20:00,100 - INFO - ⏰ 2025-12-26 19:20:00 - ADAPTIVE Check 2025-12-26 19:20:00,101 - INFO - ✅ Session: NY - NY allowed: 43.3% WR, $48/trade (needs >=97% conf) 2025-12-26 19:20:00,102 - INFO - 📊 Confidence Threshold: 95% 2025-12-26 19:20:00,102 - INFO - ⏱️ Intervall: 5 min 2025-12-26 19:20:00,133 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:21:00 CET)" executed successfully
📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 25.7 (weight 1.0x) ✅ TREND H4: ADX 39.9 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 35.9 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) 🛑 TRADE BLOCKIERT: 1/1 Positionen aktiv BUY @ 4514.32 | 🟢 3.57
2025-12-26 19:20:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:21:24 CET)" (scheduled at 2025-12-26 19:20:24.704366+01:00) 2025-12-26 19:20:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:21:24 CET)" executed successfully 2025-12-26 19:20:24,748 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:21:24 CET)" (scheduled at 2025-12-26 19:20:24.709373+01:00) 2025-12-26 19:20:24,750 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:20:24,753 - INFO - 📊 Partial TP Levels: 2025-12-26 19:20:24,754 - INFO - Entry: 4514.32000 2025-12-26 19:20:24,754 - INFO - SL: 4505.33000 2025-12-26 19:20:24,755 - INFO - Risk: 8.99000 2025-12-26 19:20:24,756 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:20:24,758 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:20:24,759 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:21:24 CET)" executed successfully 2025-12-26 19:21:00,013 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:22:00 CET)" (scheduled at 2025-12-26 19:21:00+01:00) 2025-12-26 19:21:00,030 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:22:00 CET)" executed successfully 2025-12-26 19:21:24,747 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:22:24 CET)" (scheduled at 2025-12-26 19:21:24.704366+01:00) 2025-12-26 19:21:24,749 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:22:24 CET)" executed successfully 2025-12-26 19:21:24,747 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:22:24 CET)" (scheduled at 2025-12-26 19:21:24.709373+01:00) 2025-12-26 19:21:24,756 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:21:24,757 - INFO - 📊 Partial TP Levels: 2025-12-26 19:21:24,758 - INFO - Entry: 4514.32000 2025-12-26 19:21:24,759 - INFO - SL: 4505.33000 2025-12-26 19:21:24,760 - INFO - Risk: 8.99000 2025-12-26 19:21:24,761 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:21:24,762 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:21:24,774 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:22:24 CET)" executed successfully 2025-12-26 19:22:00,014 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:23:00 CET)" (scheduled at 2025-12-26 19:22:00+01:00) 2025-12-26 19:22:00,029 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:23:00 CET)" executed successfully 2025-12-26 19:22:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:23:24 CET)" (scheduled at 2025-12-26 19:22:24.704366+01:00) 2025-12-26 19:22:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:23:24 CET)" executed successfully 2025-12-26 19:22:24,718 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:23:24 CET)" (scheduled at 2025-12-26 19:22:24.709373+01:00) 2025-12-26 19:22:24,722 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:22:24,723 - INFO - 📊 Partial TP Levels: 2025-12-26 19:22:24,734 - INFO - Entry: 4514.32000 2025-12-26 19:22:24,735 - INFO - SL: 4505.33000 2025-12-26 19:22:24,736 - INFO - Risk: 8.99000 2025-12-26 19:22:24,737 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:22:24,741 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:22:24,742 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:23:24 CET)" executed successfully 2025-12-26 19:23:00,035 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:24:00 CET)" (scheduled at 2025-12-26 19:23:00+01:00) 2025-12-26 19:23:00,041 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:24:00 CET)" executed successfully 2025-12-26 19:23:24,718 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:24:24 CET)" (scheduled at 2025-12-26 19:23:24.704366+01:00) 2025-12-26 19:23:24,718 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:24:24 CET)" (scheduled at 2025-12-26 19:23:24.709373+01:00) 2025-12-26 19:23:24,727 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:23:24,728 - INFO - 📊 Partial TP Levels: 2025-12-26 19:23:24,729 - INFO - Entry: 4514.32000 2025-12-26 19:23:24,729 - INFO - SL: 4505.33000 2025-12-26 19:23:24,730 - INFO - Risk: 8.99000 2025-12-26 19:23:24,731 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:23:24,732 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:23:24,732 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:24:24 CET)" executed successfully 2025-12-26 19:23:24,720 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:24:24 CET)" executed successfully 2025-12-26 19:24:00,011 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:25:00 CET)" (scheduled at 2025-12-26 19:24:00+01:00) 2025-12-26 19:24:00,029 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:25:00 CET)" executed successfully 2025-12-26 19:24:24,779 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:25:24 CET)" (scheduled at 2025-12-26 19:24:24.704366+01:00) 2025-12-26 19:24:24,781 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:25:24 CET)" executed successfully 2025-12-26 19:24:24,779 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:25:24 CET)" (scheduled at 2025-12-26 19:24:24.709373+01:00) 2025-12-26 19:24:24,792 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:24:24,793 - INFO - 📊 Partial TP Levels: 2025-12-26 19:24:24,794 - INFO - Entry: 4514.32000 2025-12-26 19:24:24,795 - INFO - SL: 4505.33000 2025-12-26 19:24:24,796 - INFO - Risk: 8.99000 2025-12-26 19:24:24,797 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:24:24,810 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:24:24,811 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:25:24 CET)" executed successfully 2025-12-26 19:25:00,001 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:26:00 CET)" (scheduled at 2025-12-26 19:25:00+01:00) 2025-12-26 19:25:00,010 - INFO - ⏰ 2025-12-26 19:25:00 - ADAPTIVE Check 2025-12-26 19:25:00,012 - INFO - ✅ Session: NY - NY allowed: 43.3% WR, $48/trade (needs >=97% conf) 2025-12-26 19:25:00,013 - INFO - 📊 Confidence Threshold: 95% 2025-12-26 19:25:00,014 - INFO - ⏱️ Intervall: 5 min 2025-12-26 19:25:00,036 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:26:00 CET)" executed successfully
📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 25.7 (weight 1.0x) ✅ TREND H4: ADX 39.9 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 35.9 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) 🛑 TRADE BLOCKIERT: 1/1 Positionen aktiv BUY @ 4514.32 | 🟢 7.99
2025-12-26 19:25:24,706 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:26:24 CET)" (scheduled at 2025-12-26 19:25:24.704366+01:00) 2025-12-26 19:25:24,709 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:26:24 CET)" executed successfully 2025-12-26 19:25:24,751 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:26:24 CET)" (scheduled at 2025-12-26 19:25:24.709373+01:00) 2025-12-26 19:25:24,752 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:25:24,753 - INFO - 📊 Partial TP Levels: 2025-12-26 19:25:24,756 - INFO - Entry: 4514.32000 2025-12-26 19:25:24,757 - INFO - SL: 4505.33000 2025-12-26 19:25:24,757 - INFO - Risk: 8.99000 2025-12-26 19:25:24,758 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:25:24,759 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:25:24,759 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:26:24 CET)" executed successfully 2025-12-26 19:26:00,011 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:27:00 CET)" (scheduled at 2025-12-26 19:26:00+01:00) 2025-12-26 19:26:00,020 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:27:00 CET)" executed successfully 2025-12-26 19:26:24,731 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:27:24 CET)" (scheduled at 2025-12-26 19:26:24.704366+01:00) 2025-12-26 19:26:24,731 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:27:24 CET)" (scheduled at 2025-12-26 19:26:24.709373+01:00) 2025-12-26 19:26:24,739 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:26:24,740 - INFO - 📊 Partial TP Levels: 2025-12-26 19:26:24,741 - INFO - Entry: 4514.32000 2025-12-26 19:26:24,742 - INFO - SL: 4505.33000 2025-12-26 19:26:24,743 - INFO - Risk: 8.99000 2025-12-26 19:26:24,743 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:26:24,746 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:26:24,749 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:27:24 CET)" executed successfully 2025-12-26 19:26:24,734 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:27:24 CET)" executed successfully 2025-12-26 19:27:00,011 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:28:00 CET)" (scheduled at 2025-12-26 19:27:00+01:00) 2025-12-26 19:27:00,022 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:28:00 CET)" executed successfully 2025-12-26 19:27:24,706 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:28:24 CET)" (scheduled at 2025-12-26 19:27:24.704366+01:00) 2025-12-26 19:27:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:28:24 CET)" executed successfully 2025-12-26 19:27:24,757 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:28:24 CET)" (scheduled at 2025-12-26 19:27:24.709373+01:00) 2025-12-26 19:27:24,759 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:27:24,761 - INFO - 📊 Partial TP Levels: 2025-12-26 19:27:24,762 - INFO - Entry: 4514.32000 2025-12-26 19:27:24,764 - INFO - SL: 4505.33000 2025-12-26 19:27:24,765 - INFO - Risk: 8.99000 2025-12-26 19:27:24,766 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:27:24,767 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:27:24,768 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:28:24 CET)" executed successfully 2025-12-26 19:28:00,012 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:29:00 CET)" (scheduled at 2025-12-26 19:28:00+01:00) 2025-12-26 19:28:00,023 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:29:00 CET)" executed successfully 2025-12-26 19:28:24,706 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:29:24 CET)" (scheduled at 2025-12-26 19:28:24.704366+01:00) 2025-12-26 19:28:24,708 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:29:24 CET)" executed successfully 2025-12-26 19:28:24,720 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:29:24 CET)" (scheduled at 2025-12-26 19:28:24.709373+01:00) 2025-12-26 19:28:24,722 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:28:24,723 - INFO - 📊 Partial TP Levels: 2025-12-26 19:28:24,729 - INFO - Entry: 4514.32000 2025-12-26 19:28:24,768 - INFO - SL: 4505.33000 2025-12-26 19:28:24,770 - INFO - Risk: 8.99000 2025-12-26 19:28:24,771 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:28:24,772 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:28:24,773 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:29:24 CET)" executed successfully 2025-12-26 19:29:00,256 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:30:00 CET)" (scheduled at 2025-12-26 19:29:00+01:00) 2025-12-26 19:29:00,263 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:30:00 CET)" executed successfully 2025-12-26 19:29:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:30:24 CET)" (scheduled at 2025-12-26 19:29:24.704366+01:00) 2025-12-26 19:29:24,708 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:30:24 CET)" executed successfully 2025-12-26 19:29:24,720 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:30:24 CET)" (scheduled at 2025-12-26 19:29:24.709373+01:00) 2025-12-26 19:29:24,725 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:29:24,735 - INFO - 📊 Partial TP Levels: 2025-12-26 19:29:24,737 - INFO - Entry: 4514.32000 2025-12-26 19:29:24,738 - INFO - SL: 4505.33000 2025-12-26 19:29:24,742 - INFO - Risk: 8.99000 2025-12-26 19:29:24,747 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:29:24,748 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:29:24,749 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:30:24 CET)" executed successfully 2025-12-26 19:30:00,046 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:31:00 CET)" (scheduled at 2025-12-26 19:30:00+01:00) 2025-12-26 19:30:00,046 - INFO - Running job "print_status_report (trigger: cron[minute='0,30'], next run at: 2025-12-26 20:00:00 CET)" (scheduled at 2025-12-26 19:30:00+01:00) 2025-12-26 19:30:00,066 - INFO - Job "print_status_report (trigger: cron[minute='0,30'], next run at: 2025-12-26 20:00:00 CET)" executed successfully 2025-12-26 19:30:00,060 - INFO - ⏰ 2025-12-26 19:30:00 - ADAPTIVE Check 2025-12-26 19:30:00,090 - INFO - ✅ Session: NY - NY allowed: 43.3% WR, $48/trade (needs >=97% conf) 2025-12-26 19:30:00,091 - INFO - 📊 Confidence Threshold: 95% 2025-12-26 19:30:00,092 - INFO - ⏱️ Intervall: 5 min 2025-12-26 19:30:00,114 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:31:00 CET)" executed successfully
╔════════════════════════════════════════════════════════╗ ║ ADAPTIVE RHYTHM STATUS - 19:30:00 UTC ║ ╠════════════════════════════════════════════════════════╣ ║ Aktuelles Intervall: 5 Minuten ║ ║ Trading Session: NY ║ ║ Volatilitätslevel: HIGH ║ ║ ATR (H1): 17.04 ║ ╠════════════════════════════════════════════════════════╣ ║ INTERVALL-SCHEMA: ║ ║ • Overlap (13-16 UTC): 5-15 Min (aktivste Phase) ║ ║ • London/NY: 5-30 Min (volatilitätsabh.) ║ ║ • Asian Session: 15-30 Min (ruhigere Phase) ║ ╚════════════════════════════════════════════════════════╝ 📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 25.7 (weight 1.0x) ✅ TREND H4: ADX 39.9 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 35.9 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) 🛑 TRADE BLOCKIERT: 1/1 Positionen aktiv BUY @ 4514.32 | 🟢 4.80
2025-12-26 19:30:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:31:24 CET)" (scheduled at 2025-12-26 19:30:24.704366+01:00) 2025-12-26 19:30:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:31:24 CET)" executed successfully 2025-12-26 19:30:24,760 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:31:24 CET)" (scheduled at 2025-12-26 19:30:24.709373+01:00) 2025-12-26 19:30:24,761 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:30:24,762 - INFO - 📊 Partial TP Levels: 2025-12-26 19:30:24,763 - INFO - Entry: 4514.32000 2025-12-26 19:30:24,764 - INFO - SL: 4505.33000 2025-12-26 19:30:24,765 - INFO - Risk: 8.99000 2025-12-26 19:30:24,766 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:30:24,767 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:30:24,768 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:31:24 CET)" executed successfully 2025-12-26 19:31:00,001 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:32:00 CET)" (scheduled at 2025-12-26 19:31:00+01:00) 2025-12-26 19:31:00,008 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:32:00 CET)" executed successfully 2025-12-26 19:31:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:32:24 CET)" (scheduled at 2025-12-26 19:31:24.704366+01:00) 2025-12-26 19:31:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:32:24 CET)" executed successfully 2025-12-26 19:31:24,717 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:32:24 CET)" (scheduled at 2025-12-26 19:31:24.709373+01:00) 2025-12-26 19:31:24,718 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:31:24,736 - INFO - 📊 Partial TP Levels: 2025-12-26 19:31:24,737 - INFO - Entry: 4514.32000 2025-12-26 19:31:24,743 - INFO - SL: 4505.33000 2025-12-26 19:31:24,749 - INFO - Risk: 8.99000 2025-12-26 19:31:24,757 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:31:24,831 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:31:24,833 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:32:24 CET)" executed successfully 2025-12-26 19:32:00,122 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:33:00 CET)" (scheduled at 2025-12-26 19:32:00+01:00) 2025-12-26 19:32:00,132 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:33:00 CET)" executed successfully 2025-12-26 19:32:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:33:24 CET)" (scheduled at 2025-12-26 19:32:24.704366+01:00) 2025-12-26 19:32:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:33:24 CET)" executed successfully 2025-12-26 19:32:24,720 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:33:24 CET)" (scheduled at 2025-12-26 19:32:24.709373+01:00) 2025-12-26 19:32:24,721 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:32:24,725 - INFO - 📊 Partial TP Levels: 2025-12-26 19:32:24,726 - INFO - Entry: 4514.32000 2025-12-26 19:32:24,726 - INFO - SL: 4505.33000 2025-12-26 19:32:24,727 - INFO - Risk: 8.99000 2025-12-26 19:32:24,728 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:32:24,741 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:32:24,742 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:33:24 CET)" executed successfully 2025-12-26 19:33:00,184 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:34:00 CET)" (scheduled at 2025-12-26 19:33:00+01:00) 2025-12-26 19:33:00,191 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:34:00 CET)" executed successfully 2025-12-26 19:33:24,704 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:34:24 CET)" (scheduled at 2025-12-26 19:33:24.704366+01:00) 2025-12-26 19:33:24,706 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:34:24 CET)" executed successfully 2025-12-26 19:33:24,715 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:34:24 CET)" (scheduled at 2025-12-26 19:33:24.709373+01:00) 2025-12-26 19:33:24,717 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:33:24,718 - INFO - 📊 Partial TP Levels: 2025-12-26 19:33:24,721 - INFO - Entry: 4514.32000 2025-12-26 19:33:24,722 - INFO - SL: 4505.33000 2025-12-26 19:33:24,723 - INFO - Risk: 8.99000 2025-12-26 19:33:24,732 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:33:24,734 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:33:24,735 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:34:24 CET)" executed successfully 2025-12-26 19:34:00,258 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:35:00 CET)" (scheduled at 2025-12-26 19:34:00+01:00) 2025-12-26 19:34:00,265 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:35:00 CET)" executed successfully 2025-12-26 19:34:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:35:24 CET)" (scheduled at 2025-12-26 19:34:24.704366+01:00) 2025-12-26 19:34:24,706 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:35:24 CET)" executed successfully 2025-12-26 19:34:24,717 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:35:24 CET)" (scheduled at 2025-12-26 19:34:24.709373+01:00) 2025-12-26 19:34:24,718 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:34:24,719 - INFO - 📊 Partial TP Levels: 2025-12-26 19:34:24,719 - INFO - Entry: 4514.32000 2025-12-26 19:34:24,723 - INFO - SL: 4505.33000 2025-12-26 19:34:24,735 - INFO - Risk: 8.99000 2025-12-26 19:34:24,736 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:34:24,742 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:34:24,743 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:35:24 CET)" executed successfully 2025-12-26 19:35:00,034 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:36:00 CET)" (scheduled at 2025-12-26 19:35:00+01:00) 2025-12-26 19:35:00,040 - INFO - ⏰ 2025-12-26 19:35:00 - ADAPTIVE Check 2025-12-26 19:35:00,041 - INFO - ✅ Session: NY - NY allowed: 43.3% WR, $48/trade (needs >=97% conf) 2025-12-26 19:35:00,042 - INFO - 📊 Confidence Threshold: 95% 2025-12-26 19:35:00,042 - INFO - ⏱️ Intervall: 5 min 2025-12-26 19:35:00,084 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:36:00 CET)" executed successfully
📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 25.7 (weight 1.0x) ✅ TREND H4: ADX 39.9 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 35.9 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) 🛑 TRADE BLOCKIERT: 1/1 Positionen aktiv BUY @ 4514.32 | 🟢 6.70
2025-12-26 19:35:24,706 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:36:24 CET)" (scheduled at 2025-12-26 19:35:24.704366+01:00) 2025-12-26 19:35:24,708 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:36:24 CET)" executed successfully 2025-12-26 19:35:24,735 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:36:24 CET)" (scheduled at 2025-12-26 19:35:24.709373+01:00) 2025-12-26 19:35:24,737 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:35:24,738 - INFO - 📊 Partial TP Levels: 2025-12-26 19:35:24,740 - INFO - Entry: 4514.32000 2025-12-26 19:35:24,747 - INFO - SL: 4505.33000 2025-12-26 19:35:24,750 - INFO - Risk: 8.99000 2025-12-26 19:35:24,751 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:35:24,752 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:35:24,753 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:36:24 CET)" executed successfully 2025-12-26 19:36:00,019 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:37:00 CET)" (scheduled at 2025-12-26 19:36:00+01:00) 2025-12-26 19:36:00,030 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:37:00 CET)" executed successfully 2025-12-26 19:36:24,762 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:37:24 CET)" (scheduled at 2025-12-26 19:36:24.704366+01:00) 2025-12-26 19:36:24,762 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:37:24 CET)" (scheduled at 2025-12-26 19:36:24.709373+01:00) 2025-12-26 19:36:24,765 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:36:24,766 - INFO - 📊 Partial TP Levels: 2025-12-26 19:36:24,771 - INFO - Entry: 4514.32000 2025-12-26 19:36:24,772 - INFO - SL: 4505.33000 2025-12-26 19:36:24,773 - INFO - Risk: 8.99000 2025-12-26 19:36:24,773 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:36:24,774 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:36:24,780 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:37:24 CET)" executed successfully 2025-12-26 19:36:24,764 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:37:24 CET)" executed successfully 2025-12-26 19:37:00,012 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:38:00 CET)" (scheduled at 2025-12-26 19:37:00+01:00) 2025-12-26 19:37:00,030 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:38:00 CET)" executed successfully 2025-12-26 19:37:24,707 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:38:24 CET)" (scheduled at 2025-12-26 19:37:24.704366+01:00) 2025-12-26 19:37:24,709 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:38:24 CET)" executed successfully 2025-12-26 19:37:24,764 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:38:24 CET)" (scheduled at 2025-12-26 19:37:24.709373+01:00) 2025-12-26 19:37:24,767 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:37:24,768 - INFO - 📊 Partial TP Levels: 2025-12-26 19:37:24,770 - INFO - Entry: 4514.32000 2025-12-26 19:37:24,771 - INFO - SL: 4505.33000 2025-12-26 19:37:24,772 - INFO - Risk: 8.99000 2025-12-26 19:37:24,773 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:37:24,775 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:37:24,777 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:38:24 CET)" executed successfully 2025-12-26 19:38:00,001 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:39:00 CET)" (scheduled at 2025-12-26 19:38:00+01:00) 2025-12-26 19:38:00,007 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:39:00 CET)" executed successfully 2025-12-26 19:38:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:39:24 CET)" (scheduled at 2025-12-26 19:38:24.704366+01:00) 2025-12-26 19:38:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:39:24 CET)" executed successfully 2025-12-26 19:38:24,757 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:39:24 CET)" (scheduled at 2025-12-26 19:38:24.709373+01:00) 2025-12-26 19:38:24,759 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:38:24,760 - INFO - 📊 Partial TP Levels: 2025-12-26 19:38:24,764 - INFO - Entry: 4514.32000 2025-12-26 19:38:24,765 - INFO - SL: 4505.33000 2025-12-26 19:38:24,768 - INFO - Risk: 8.99000 2025-12-26 19:38:24,769 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:38:24,791 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:38:24,793 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:39:24 CET)" executed successfully 2025-12-26 19:39:00,049 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:40:00 CET)" (scheduled at 2025-12-26 19:39:00+01:00) 2025-12-26 19:39:00,063 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:40:00 CET)" executed successfully 2025-12-26 19:39:24,704 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:40:24 CET)" (scheduled at 2025-12-26 19:39:24.704366+01:00) 2025-12-26 19:39:24,706 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:40:24 CET)" executed successfully 2025-12-26 19:39:24,717 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:40:24 CET)" (scheduled at 2025-12-26 19:39:24.709373+01:00) 2025-12-26 19:39:24,719 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:39:24,723 - INFO - 📊 Partial TP Levels: 2025-12-26 19:39:24,725 - INFO - Entry: 4514.32000 2025-12-26 19:39:24,725 - INFO - SL: 4505.33000 2025-12-26 19:39:24,737 - INFO - Risk: 8.99000 2025-12-26 19:39:24,738 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:39:24,739 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:39:24,747 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:40:24 CET)" executed successfully 2025-12-26 19:40:00,269 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:41:00 CET)" (scheduled at 2025-12-26 19:40:00+01:00) 2025-12-26 19:40:00,283 - INFO - ⏰ 2025-12-26 19:40:00 - ADAPTIVE Check 2025-12-26 19:40:00,284 - INFO - ✅ Session: NY - NY allowed: 43.3% WR, $48/trade (needs >=97% conf) 2025-12-26 19:40:00,285 - INFO - 📊 Confidence Threshold: 95% 2025-12-26 19:40:00,288 - INFO - ⏱️ Intervall: 5 min 2025-12-26 19:40:00,322 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:41:00 CET)" executed successfully
📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 25.7 (weight 1.0x) ✅ TREND H4: ADX 39.9 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 35.9 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) 🛑 TRADE BLOCKIERT: 1/1 Positionen aktiv BUY @ 4514.32 | 🟢 8.35
2025-12-26 19:40:24,704 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:41:24 CET)" (scheduled at 2025-12-26 19:40:24.704366+01:00) 2025-12-26 19:40:24,706 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:41:24 CET)" executed successfully 2025-12-26 19:40:24,720 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:41:24 CET)" (scheduled at 2025-12-26 19:40:24.709373+01:00) 2025-12-26 19:40:24,723 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:40:24,724 - INFO - 📊 Partial TP Levels: 2025-12-26 19:40:24,725 - INFO - Entry: 4514.32000 2025-12-26 19:40:24,726 - INFO - SL: 4505.33000 2025-12-26 19:40:24,728 - INFO - Risk: 8.99000 2025-12-26 19:40:24,729 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:40:24,739 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:40:24,740 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:41:24 CET)" executed successfully 2025-12-26 19:41:00,069 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:42:00 CET)" (scheduled at 2025-12-26 19:41:00+01:00) 2025-12-26 19:41:00,083 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:42:00 CET)" executed successfully 2025-12-26 19:41:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:42:24 CET)" (scheduled at 2025-12-26 19:41:24.704366+01:00) 2025-12-26 19:41:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:42:24 CET)" executed successfully 2025-12-26 19:41:24,717 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:42:24 CET)" (scheduled at 2025-12-26 19:41:24.709373+01:00) 2025-12-26 19:41:24,719 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:41:24,723 - INFO - 📈 Trailing Stop Trigger for #623421721: Break-Even at 51.1% progress 2025-12-26 19:41:24,834 - INFO - ✅ Trailing Stop updated for #623421721 2025-12-26 19:41:24,836 - INFO - Old SL: 4505.33000 2025-12-26 19:41:24,837 - INFO - New SL: 4514.32000 2025-12-26 19:41:24,840 - INFO - 📊 Partial TP Levels: 2025-12-26 19:41:24,841 - INFO - Entry: 4514.32000 2025-12-26 19:41:24,842 - INFO - SL: 4505.33000 2025-12-26 19:41:24,843 - INFO - Risk: 8.99000 2025-12-26 19:41:24,844 - INFO - TP1 (1.5R): 4527.80500 2025-12-26 19:41:24,845 - INFO - TP2 (2.5R): 4536.79500 2025-12-26 19:41:24,847 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:42:24 CET)" executed successfully 2025-12-26 19:42:00,054 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:43:00 CET)" (scheduled at 2025-12-26 19:42:00+01:00) 2025-12-26 19:42:00,067 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:43:00 CET)" executed successfully 2025-12-26 19:42:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:43:24 CET)" (scheduled at 2025-12-26 19:42:24.704366+01:00) 2025-12-26 19:42:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:43:24 CET)" executed successfully 2025-12-26 19:42:24,717 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:43:24 CET)" (scheduled at 2025-12-26 19:42:24.709373+01:00) 2025-12-26 19:42:24,718 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:42:24,722 - INFO - 📊 Partial TP Levels: 2025-12-26 19:42:24,733 - INFO - Entry: 4514.32000 2025-12-26 19:42:24,734 - INFO - SL: 4514.32000 2025-12-26 19:42:24,735 - INFO - Risk: 0.00000 2025-12-26 19:42:24,736 - INFO - TP1 (1.5R): 4514.32000 2025-12-26 19:42:24,736 - INFO - TP2 (2.5R): 4514.32000 2025-12-26 19:42:24,738 - INFO - 🎯 Partial TP Trigger for #623421721: TP1 hit: Price 4529.88000 >= TP1 4514.32000 2025-12-26 19:42:24,865 - INFO - ✅ Partial close executed for #623421721 2025-12-26 19:42:24,866 - INFO - Closed: 0.01 lots (50%) 2025-12-26 19:42:24,867 - INFO - Remaining: 0.00 lots 2025-12-26 19:42:24,867 - ERROR - Error closing partial position: 'OrderSendResult' object has no attribute 'profit' 2025-12-26 19:42:24,870 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:43:24 CET)" executed successfully 2025-12-26 19:43:00,063 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:44:00 CET)" (scheduled at 2025-12-26 19:43:00+01:00) 2025-12-26 19:43:00,072 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:44:00 CET)" executed successfully 2025-12-26 19:43:24,706 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:44:24 CET)" (scheduled at 2025-12-26 19:43:24.704366+01:00) 2025-12-26 19:43:24,719 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:44:24 CET)" (scheduled at 2025-12-26 19:43:24.709373+01:00) 2025-12-26 19:43:24,721 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:44:24 CET)" executed successfully 2025-12-26 19:43:24,778 - INFO - ✅ Updated closed position 623421721: manual_close, Profit: -70.90 2025-12-26 19:43:25,205 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:44:24 CET)" executed successfully
⚠️ Telegram send failed: 400
2025-12-26 19:44:00,050 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:45:00 CET)" (scheduled at 2025-12-26 19:44:00+01:00) 2025-12-26 19:44:00,065 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:45:00 CET)" executed successfully 2025-12-26 19:44:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:45:24 CET)" (scheduled at 2025-12-26 19:44:24.704366+01:00) 2025-12-26 19:44:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:45:24 CET)" executed successfully 2025-12-26 19:44:24,715 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:45:24 CET)" (scheduled at 2025-12-26 19:44:24.709373+01:00) 2025-12-26 19:44:24,716 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:45:24 CET)" executed successfully 2025-12-26 19:45:00,038 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:46:00 CET)" (scheduled at 2025-12-26 19:45:00+01:00) 2025-12-26 19:45:00,045 - INFO - ⏰ 2025-12-26 19:45:00 - ADAPTIVE Check 2025-12-26 19:45:00,046 - INFO - ✅ Session: NY - NY allowed: 43.3% WR, $48/trade (needs >=97% conf) 2025-12-26 19:45:00,047 - INFO - 📊 Confidence Threshold: 95% 2025-12-26 19:45:00,048 - INFO - ⏱️ Intervall: 5 min 2025-12-26 19:45:00,160 - INFO - 📊 Adaptive Position Sizing: 2025-12-26 19:45:00,162 - INFO - Confidence: 100.0% (HIGH) 2025-12-26 19:45:00,163 - INFO - Base Risk: 2.0% 2025-12-26 19:45:00,163 - INFO - Multiplier: 1.5x 2025-12-26 19:45:00,164 - INFO - Adjusted Risk: 3.0% 2025-12-26 19:45:00,166 - INFO - 💰 Position Size: 0.01 lots 2025-12-26 19:45:00,166 - INFO - Risk Amount: $207.65 2025-12-26 19:45:00,167 - INFO - SL Distance: 76946.11 pips
📊 MULTI-TIMEFRAME REGIME CHECK ============================================================ H1: ADX 25.7 (weight 1.0x) ✅ TREND H4: ADX 39.9 (weight 2.0x) ✅ TREND D1: ADX 36.6 (weight 3.0x) ✅ TREND Weighted ADX: 35.9 Threshold: 25 ✅ ALLOWED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert ============================================================ ✅ REGIME CHECK PASSED: TRENDING Reason: D1 stark trending (ADX 36.6 > 30) → Trend dominiert 🔍 POSITION CHECK für XAUUSD (V1.6 Adaptive Complete) ✅ Position-Check OK: 0/1 🔍 Analyzing XAUUSD with V1.6 ADAPTIVE COMPLETE parameters... 📊 V1.6 ADAPTIVE COMPLETE Trend-Analyse für XAUUSD ⚡ Adaptive Interval: 5 min | Session: NY 🎯 Market Regime: RANGING (Strength: 10%) 🎚️ Adaptive Threshold: 70% (RELAXED) +------+---------+------------+---------+----------+---------+ | TF | Trend | Strength | ATR | Slope | Price | |------+---------+------------+---------+----------+---------| | D1 | uptrend | 769.12 | 71.3863 | 8.2357 | 4529.75 | | H4 | uptrend | 600.64 | 28.2406 | 2.54437 | 4529.75 | | H1 | uptrend | 644.69 | 17.2079 | 1.66406 | 4529.75 | | M30 | uptrend | 315.06 | 12.4538 | 0.58855 | 4529.77 | | M15 | uptrend | 201.84 | 9.095 | 0.275358 | 4529.77 | | M5 | uptrend | 158.97 | 5.6997 | 0.135913 | 4529.77 | +------+---------+------------+---------+----------+---------+ ➡️ Standard-Trend: uptrend (Strength: 701.73) ➡️ Fast-Trend: uptrend (Required: 2/4) ➡️ Top-Down-Trend: uptrend ➡️ Confidence: 100.0% (Threshold: 70%) ➡️ Risk-Adjusted Strength: 178315.8 (Min: 80) ➡️ Signal Quality: EXCELLENT 🚀 V1.6 Adaptive Complete: Full Features + Adaptive Rhythm 🚀 V1.6 ADAPTIVE COMPLETE TRADE EXECUTION Direction: LONG Price: 4529.77000 | Volume: 0.01 SL: 4522.07539 | TP: 4549.00653 Confidence: 100.0% | Quality: EXCELLENT Regime: RANGING Adaptive Interval: 5 min Session: NY ✅ Trade erfolgreich! Ticket: 623560612
2025-12-26 19:45:01,062 - INFO - 📱 Trade logged to DB + Telegram notification sent 2025-12-26 19:45:01,116 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:46:00 CET)" executed successfully
📊 Positionen: 1 📊 Performance logged to trade_performance_v16_XAUUSD_202512.json
2025-12-26 19:45:24,706 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:46:24 CET)" (scheduled at 2025-12-26 19:45:24.704366+01:00) 2025-12-26 19:45:24,708 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:46:24 CET)" executed successfully 2025-12-26 19:45:24,753 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:46:24 CET)" (scheduled at 2025-12-26 19:45:24.709373+01:00) 2025-12-26 19:45:24,758 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:45:24,760 - INFO - 📊 Partial TP Levels: 2025-12-26 19:45:24,762 - INFO - Entry: 4529.92000 2025-12-26 19:45:24,763 - INFO - SL: 4522.08000 2025-12-26 19:45:24,767 - INFO - Risk: 7.84000 2025-12-26 19:45:24,768 - INFO - TP1 (1.5R): 4541.68000 2025-12-26 19:45:24,769 - INFO - TP2 (2.5R): 4549.52000 2025-12-26 19:45:24,770 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:46:24 CET)" executed successfully 2025-12-26 19:46:00,029 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:47:00 CET)" (scheduled at 2025-12-26 19:46:00+01:00) 2025-12-26 19:46:00,037 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:47:00 CET)" executed successfully 2025-12-26 19:46:24,705 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:47:24 CET)" (scheduled at 2025-12-26 19:46:24.704366+01:00) 2025-12-26 19:46:24,707 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:47:24 CET)" executed successfully 2025-12-26 19:46:24,716 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:47:24 CET)" (scheduled at 2025-12-26 19:46:24.709373+01:00) 2025-12-26 19:46:24,717 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:46:24,718 - INFO - 📊 Partial TP Levels: 2025-12-26 19:46:24,722 - INFO - Entry: 4529.92000 2025-12-26 19:46:24,724 - INFO - SL: 4522.08000 2025-12-26 19:46:24,724 - INFO - Risk: 7.84000 2025-12-26 19:46:24,725 - INFO - TP1 (1.5R): 4541.68000 2025-12-26 19:46:24,726 - INFO - TP2 (2.5R): 4549.52000 2025-12-26 19:46:24,726 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:47:24 CET)" executed successfully 2025-12-26 19:47:00,036 - INFO - Running job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:48:00 CET)" (scheduled at 2025-12-26 19:47:00+01:00) 2025-12-26 19:47:00,046 - INFO - Job "create_protected_trading_check.<locals>.protected_check (trigger: cron[minute='*'], next run at: 2025-12-26 19:48:00 CET)" executed successfully 2025-12-26 19:47:24,727 - INFO - Running job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:48:24 CET)" (scheduled at 2025-12-26 19:47:24.704366+01:00) 2025-12-26 19:47:24,727 - INFO - Running job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:48:24 CET)" (scheduled at 2025-12-26 19:47:24.709373+01:00) 2025-12-26 19:47:24,733 - INFO - 🔍 Checking 1 position(s) for XAUUSD... 2025-12-26 19:47:24,735 - INFO - 📊 Partial TP Levels: 2025-12-26 19:47:24,736 - INFO - Entry: 4529.92000 2025-12-26 19:47:24,737 - INFO - SL: 4522.08000 2025-12-26 19:47:24,737 - INFO - Risk: 7.84000 2025-12-26 19:47:24,740 - INFO - TP1 (1.5R): 4541.68000 2025-12-26 19:47:24,741 - INFO - TP2 (2.5R): 4549.52000 2025-12-26 19:47:24,742 - INFO - Job "<lambda> (trigger: interval[0:01:00], next run at: 2025-12-26 19:48:24 CET)" executed successfully 2025-12-26 19:47:24,733 - INFO - Job "PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-26 19:48:24 CET)" executed successfully
In [ ]: