From f3041dbb0128df164c6ed0884ccaaaa91af8c238 Mon Sep 17 00:00:00 2001 From: cbazza Date: Sat, 20 Dec 2025 18:21:15 +0100 Subject: [PATCH] Update: sync latest notebook and add December 2025 trade performance data --- ...Bot_V1.6_Adaptive_Complete_CORRECTED.ipynb | 1077 ++--------------- analyze_mt5_profitability.py | 577 +++++++++ trade_performance_v16_XAUUSD_202512.json | 623 ++++++++++ 3 files changed, 1278 insertions(+), 999 deletions(-) create mode 100644 analyze_mt5_profitability.py create mode 100644 trade_performance_v16_XAUUSD_202512.json diff --git a/TradingBot_V1.6_Adaptive_Complete_CORRECTED.ipynb b/TradingBot_V1.6_Adaptive_Complete_CORRECTED.ipynb index a061a2c..565960a 100644 --- a/TradingBot_V1.6_Adaptive_Complete_CORRECTED.ipynb +++ b/TradingBot_V1.6_Adaptive_Complete_CORRECTED.ipynb @@ -45,17 +45,9 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "βœ… All imports successful - V1.6 Adaptive Complete (CORRECTED)\n" - ] - } - ], + "outputs": [], "source": [ "# Standard Imports\n", "import pandas as pd\n", @@ -86,17 +78,9 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "βœ… Infrastructure modules loaded\n" - ] - } - ], + "outputs": [], "source": [ "# ==========================================\n", "# INFRASTRUCTURE IMPORTS (V1.8)\n", @@ -121,17 +105,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "βœ… Adaptive Rhythm Manager defined\n" - ] - } - ], + "outputs": [], "source": [ "class AdaptiveRhythmManager:\n", " \"\"\"\n", @@ -287,37 +263,9 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Login successful: True\n", - "Symbol: XAUUSD\n", - "Strategy: TradingBot_V1.6\n", - "Max Positions: 1\n", - "Version: V1.6 COMPLETE - Adaptive + Full Features! πŸš€πŸ›‘οΈβš‘\n", - "\n", - "\n", - "╔════════════════════════════════════════════════════════╗\n", - "β•‘ ADAPTIVE RHYTHM STATUS - 09:26:57 UTC β•‘\n", - "╠════════════════════════════════════════════════════════╣\n", - "β•‘ Aktuelles Intervall: 5 Minuten β•‘\n", - "β•‘ Trading Session: LONDON β•‘\n", - "β•‘ VolatilitΓ€tslevel: MEDIUM β•‘\n", - "β•‘ ATR (H1): 9.59 β•‘\n", - "╠════════════════════════════════════════════════════════╣\n", - "β•‘ INTERVALL-SCHEMA: β•‘\n", - "β•‘ β€’ Overlap (13-16 UTC): 5-15 Min (aktivste Phase) β•‘\n", - "β•‘ β€’ London/NY: 5-30 Min (volatilitΓ€tsabh.) β•‘\n", - "β•‘ β€’ Asian Session: 15-30 Min (ruhigere Phase) β•‘\n", - "β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•\n", - "\n" - ] - } - ], + "outputs": [], "source": [ "# MT5 Login\n", "mt.initialize()\n", @@ -344,23 +292,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "πŸ”§ Initializing Infrastructure...\n", - "βœ… Database initialized: trading_bot.db\n", - "βœ… Telegram Bot connected: @Xausd_digger_bot\n", - "βœ… Telegram notifications enabled\n", - "βœ… Infrastructure ready!\n", - " Database: βœ…\n", - " Telegram: βœ…\n" - ] - } - ], + "outputs": [], "source": [ "# ==========================================\n", "# INITIALIZE INFRASTRUCTURE (V1.8)\n", @@ -394,40 +328,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-12-10 09:26:58,891 - INFO - 🎯 Advanced Position Manager initialized\n", - "2025-12-10 09:26:58,892 - INFO - Adaptive Sizing: βœ…\n", - "2025-12-10 09:26:58,893 - INFO - Trailing Stop: βœ…\n", - "2025-12-10 09:26:58,894 - INFO - Partial TP: βœ…\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "🎯 Initializing Advanced Position Management...\n", - "βœ… Advanced Position Management activated!\n", - " πŸ“Š Adaptive Position Sizing: ACTIVE\n", - " β€’ High Confidence (β‰₯80%): 1.5x risk\n", - " β€’ Medium Confidence (β‰₯70%): 1.0x risk\n", - " β€’ Low Confidence (<70%): 0.5x risk\n", - "\n", - " πŸ“ˆ Trailing Stop-Loss: ACTIVE\n", - " β€’ Break-Even at 50% progress to TP\n", - " β€’ Lock 50% profit at 75% progress\n", - "\n", - " 🎯 Partial Take Profit: ACTIVE\n", - " β€’ TP1 at 1.5R (close 50%)\n", - " β€’ TP2 at 2.5R (let 50% run)\n" - ] - } - ], + "outputs": [], "source": [ "# ==========================================\n", "# ADVANCED POSITION MANAGEMENT SETUP\n", @@ -461,24 +364,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "πŸ”§ Initializing Position Monitor...\n", - "βœ… Position Monitor ready!\n", - " Will check for closed positions every minute\n", - " Closed trades will be automatically logged with:\n", - " β€’ Exit price & time\n", - " β€’ Profit/Loss calculation\n", - " β€’ Exit reason (TP/SL/Manual)\n", - " β€’ Telegram notification\n" - ] - } - ], + "outputs": [], "source": [ "# ==========================================\n", "# POSITION MONITOR SETUP (V1.8)\n", @@ -509,17 +397,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "βœ… Position Control functions defined (COMPLETE with close function!)\n" - ] - } - ], + "outputs": [], "source": [ "def check_existing_positions(symbol=\"XAUUSD\", strategy_name=\"TradingBot_V1.6\"):\n", " \"\"\"\n", @@ -641,17 +521,9 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "βœ… Helper functions defined\n" - ] - } - ], + "outputs": [], "source": [ "def get_rates(timeframe=\"h4\", count=200, symbol=\"XAUUSD\"):\n", " \"\"\"Hole Kursdaten\"\"\"\n", @@ -726,17 +598,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "βœ… Market analysis functions defined (with RELAXED thresholds)\n" - ] - } - ], + "outputs": [], "source": [ "def detect_market_regime(df, lookback=50):\n", " \"\"\"Market Regime Detection\"\"\"\n", @@ -848,17 +712,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "βœ… V1.6 Adaptive Complete Top-Down Analysis defined\n" - ] - } - ], + "outputs": [], "source": [ "def extended_top_down_v2_adaptive(symbol=\"XAUUSD\", lookback=150):\n", " \"\"\"\n", @@ -1040,17 +896,9 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "βœ… Entry timing functions defined (DISABLED in Relaxed mode)\n" - ] - } - ], + "outputs": [], "source": [ "def check_pullback_entry(symbol, signal_info, timeframe=\"M5\"):\n", " \"\"\"\n", @@ -1100,7 +948,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1150,20 +998,9 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.01" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "#mt.symbol_info(symbol).volume_min\n", "mt.symbol_info(symbol).volume_step" @@ -1171,17 +1008,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "βœ… V1.6 Adaptive Complete Execute Trade defined\n" - ] - } - ], + "outputs": [], "source": [ "def execute_trade_v2_adaptive(\n", " symbol=\"XAUUSD\",\n", @@ -1380,19 +1209,9 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "βœ… Ranging Filter activated!\n", - " πŸ›‘ Blocks ALL ranging market trades\n", - " βœ… Only allows trending markets with ADX > 25\n" - ] - } - ], + "outputs": [], "source": [ "# ==========================================\n", "# πŸ”₯ FIX #1: RANGING FILTER WRAPPER (09.12.2025)\n", @@ -1469,17 +1288,9 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "⚠️ check_open_positions not found - skipping Position Monitor fix\n" - ] - } - ], + "outputs": [], "source": [ "# ==========================================\n", "# πŸ”₯ FIX #2: POSITION MONITOR DB LOGGING (09.12.2025)\n", @@ -1550,17 +1361,9 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "βœ… Performance Monitoring functions defined (with adaptive features)\n" - ] - } - ], + "outputs": [], "source": [ "def log_trade_performance_adaptive(signal_info, order_result):\n", " \"\"\"\n", @@ -1681,18 +1484,9 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "πŸ”§ Force resuming trading after Ranging Filter deployment...\n", - "⚠️ drawdown_protection not initialized yet\n" - ] - } - ], + "outputs": [], "source": [ "# ==========================================\n", "# FORCE RESUME TRADING (V2.2 FIX)\n", @@ -1731,34 +1525,9 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "πŸ”§ Setting up Trading Check...\n", - "βœ… Session Filter aktiviert!\n", - " Deaktivierte Sessions:\n", - " β€’ ASIAN : βœ… AKTIV\n", - " β€’ LONDON : ❌ DEAKTIVIERT\n", - " β€’ OVERLAP : ❌ DEAKTIVIERT\n", - " β€’ NY : βœ… AKTIV\n", - "\n", - "πŸ›‘οΈ Drawdown Protection aktiviert!\n", - " β€’ Daily Loss Limit: $100\n", - " β€’ Weekly Loss Limit: $300\n", - " β€’ Monthly Loss Limit: $800\n", - " β€’ Max Consecutive Losses: 5\n", - " β€’ Cooldown: 24h\n", - "\n", - "βœ… Trading Check ist jetzt vollstΓ€ndig geschΓΌtzt!\n", - " πŸ“Š Session Filter: Aktiv\n", - " πŸ›‘οΈ Drawdown Protection: Aktiv\n" - ] - } - ], + "outputs": [], "source": [ "# ==========================================\n", "# TRADING CHECK: SESSION FILTER + DRAWDOWN PROTECTION\n", @@ -1808,24 +1577,9 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-12-10 09:27:00,491 - INFO - βœ… Trading resumed after: None\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "βœ… Trading force-resumed (Ranging Filter deployed)\n" - ] - } - ], + "outputs": [], "source": [ "# Force resume after restart (V2.2 fix)\n", "drawdown_protection._resume_trading()\n", @@ -1834,7 +1588,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1880,33 +1634,9 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "βš™οΈ V1.6 Adaptive Complete Configuration:\n", - "\n", - "πŸ›‘οΈ Position Control:\n", - " Max Positions: 1\n", - " Strategy: TradingBot_V1.6\n", - "\n", - "πŸš€ Relaxed Parameters:\n", - " Base Confidence: 60%\n", - " Min ATR: 0.0008\n", - " Pullback Entry: False\n", - "\n", - "⚑ Adaptive Features:\n", - " Dynamic Intervals: 5/15/30 min\n", - " Session-aware: Yes\n", - " Volatility-based: Yes\n", - "\n", - "βœ… Configuration complete!\n" - ] - } - ], + "outputs": [], "source": [ "# βœ… KORRIGIERT: Zentrale Konfiguration (fehlte in ursprΓΌnglicher V1.6)\n", "ADAPTIVE_COMPLETE_CONFIG = {\n", @@ -1949,17 +1679,9 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "βœ… Status monitoring function defined (COMPLETE with all features)\n" - ] - } - ], + "outputs": [], "source": [ "# βœ… KORRIGIERT: Umfassendes Status Monitoring (fehlte in V1.6)\n", "def check_adaptive_bot_status():\n", @@ -2043,57 +1765,9 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-12-10 09:27:01,663 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts\n", - "2025-12-10 09:27:01,665 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts\n", - "2025-12-10 09:27:01,667 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts\n", - "2025-12-10 09:27:01,670 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts\n", - "2025-12-10 09:27:01,675 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts\n", - "2025-12-10 09:27:01,683 - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts\n", - "2025-12-10 09:27:01,685 - INFO - Added job \"create_protected_trading_check..protected_check\" to job store \"default\"\n", - "2025-12-10 09:27:01,686 - INFO - Added job \"print_status_report\" to job store \"default\"\n", - "2025-12-10 09:27:01,687 - INFO - Added job \"TradingInfrastructure.send_daily_report\" to job store \"default\"\n", - "2025-12-10 09:27:01,688 - INFO - Added job \"TradingInfrastructure.send_weekly_report\" to job store \"default\"\n", - "2025-12-10 09:27:01,689 - INFO - Added job \"PositionMonitor.check_open_positions\" to job store \"default\"\n", - "2025-12-10 09:27:01,690 - INFO - Added job \"\" to job store \"default\"\n", - "2025-12-10 09:27:01,691 - INFO - Scheduler started\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "βœ… Scheduled reports added:\n", - " πŸ“Š Daily report: 22:00 UTC\n", - " πŸ“ˆ Weekly report: Sunday 23:00 UTC\n", - "βœ… Scheduled reports added:\n", - " πŸ“Š Daily report: 22:00 UTC\n", - " πŸ“ˆ Weekly report: Sunday 23:00 UTC\n", - "βœ… Position Monitor job added\n", - "βœ… Advanced Position Management job added\n", - "\n", - "βœ… Scheduler started!\n", - "\n", - "πŸ“‹ Active Jobs: 6\n", - " β€’ adaptive_trading_check\n", - " β€’ position_monitor\n", - " β€’ advanced_position_management\n", - " β€’ status_report\n", - " β€’ daily_report\n", - " β€’ weekly_report\n", - "\n", - "======================================================================\n", - "πŸš€ TradingBot V2.2 - All Systems Ready!\n", - "======================================================================\n" - ] - } - ], + "outputs": [], "source": [ "# ==========================================\n", "# SETUP SCHEDULER (V1.6 ADAPTIVE COMPLETE)\n", @@ -2173,32 +1847,9 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "πŸ§ͺ TEST 1: Position Check\n", - "==================================================\n", - "\n", - "πŸ“Š POSITION SUMMARY fΓΌr XAUUSD (V1.6 Adaptive Complete)\n", - "============================================================\n", - "βœ… Keine aktiven Positionen - bereit fΓΌr neuen Trade\n" - ] - }, - { - "data": { - "text/plain": [ - "False" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# βœ… KORRIGIERT: Umfassende Testing Suite (fehlte in V1.6)\n", "\n", @@ -2210,48 +1861,9 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-12-10 09:27:02,498 - INFO - πŸ”„ Rhythmus-Γ„nderung: 5m β†’ 15m\n", - "2025-12-10 09:27:02,499 - INFO - Session: london, VolatilitΓ€t: medium (ATR: 9.59)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "πŸ§ͺ TEST 2: Adaptive Rhythm\n", - "==================================================\n", - "\n", - "╔════════════════════════════════════════════════════════╗\n", - "β•‘ ADAPTIVE RHYTHM STATUS - 09:27:02 UTC β•‘\n", - "╠════════════════════════════════════════════════════════╣\n", - "β•‘ Aktuelles Intervall: 5 Minuten β•‘\n", - "β•‘ Trading Session: LONDON β•‘\n", - "β•‘ VolatilitΓ€tslevel: MEDIUM β•‘\n", - "β•‘ ATR (H1): 9.59 β•‘\n", - "╠════════════════════════════════════════════════════════╣\n", - "β•‘ INTERVALL-SCHEMA: β•‘\n", - "β•‘ β€’ Overlap (13-16 UTC): 5-15 Min (aktivste Phase) β•‘\n", - "β•‘ β€’ London/NY: 5-30 Min (volatilitΓ€tsabh.) β•‘\n", - "β•‘ β€’ Asian Session: 15-30 Min (ruhigere Phase) β•‘\n", - "β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•\n", - "\n", - "\n", - "Details:\n", - " Optimal Interval: 15 min\n", - " Session: london\n", - " ATR: 9.59\n", - " Volatility Level: medium\n" - ] - } - ], + "outputs": [], "source": [ "# Test 2: Adaptive Rhythm Status\n", "print(\"\\nπŸ§ͺ TEST 2: Adaptive Rhythm\")\n", @@ -2275,56 +1887,9 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "πŸ§ͺ TEST 3: Signal Analysis\n", - "==================================================\n", - "πŸ” Analyzing XAUUSD with V1.6 ADAPTIVE COMPLETE parameters...\n", - "\n", - "πŸ“Š V1.6 ADAPTIVE COMPLETE Trend-Analyse fΓΌr XAUUSD\n", - "⚑ Adaptive Interval: 15 min | Session: LONDON\n", - "🎯 Market Regime: RANGING (Strength: 83%)\n", - "🎚️ Adaptive Threshold: 70% (RELAXED)\n", - "\n", - "+------+-----------+------------+---------+-----------+---------+\n", - "| TF | Trend | Strength | ATR | Slope | Price |\n", - "|------+-----------+------------+---------+-----------+---------|\n", - "| D1 | uptrend | 726.15 | 67.5509 | 7.35778 | 4204.08 |\n", - "| H4 | uptrend | 396.3 | 21.7336 | 1.29195 | 4204.08 |\n", - "| H1 | downtrend | 42.35 | 9.5979 | -0.060974 | 4204.08 |\n", - "| M30 | downtrend | 130.77 | 6.3449 | -0.124459 | 4204.08 |\n", - "| M15 | uptrend | 294.43 | 4.1651 | 0.183947 | 4204.08 |\n", - "| M5 | downtrend | 99.26 | 2.471 | -0.036789 | 4204.08 |\n", - "+------+-----------+------------+---------+-----------+---------+\n", - "\n", - "➑️ Standard-Trend: uptrend (Strength: 594.21)\n", - "➑️ Fast-Trend: downtrend (Required: 2/4)\n", - "➑️ Top-Down-Trend: sideways\n", - "➑️ Confidence: 0.0% (Threshold: 70%)\n", - "➑️ Risk-Adjusted Strength: 0.0 (Min: 80)\n", - "➑️ Signal Quality: NONE\n", - "\n", - "πŸš€ V1.6 Adaptive Complete: Full Features + Adaptive Rhythm\n", - "\n", - "🎯 SIGNAL SUMMARY:\n", - " Entry Signal: 0\n", - " Confidence: 0.0%\n", - " Threshold: 70%\n", - " Quality: NONE\n", - " Regime: RANGING\n", - " Adaptive Interval: 15 min\n", - " Session: LONDON\n", - "\n", - "⏸️ NO TRADING SIGNAL\n" - ] - } - ], + "outputs": [], "source": [ "# Test 3: Signal Analysis\n", "print(\"\\nπŸ§ͺ TEST 3: Signal Analysis\")\n", @@ -2353,78 +1918,9 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "πŸ§ͺ TEST 4: Complete Bot Status\n", - "==================================================\n", - "\n", - "======================================================================\n", - "πŸ” V1.6 ADAPTIVE COMPLETE BOT STATUS\n", - "======================================================================\n", - "\n", - "πŸ“‘ SYSTEM STATUS:\n", - " MT5 Connection: βœ…\n", - " Scheduler Running: βœ…\n", - " Active Jobs: 6\n", - "\n", - "⚑ ADAPTIVE RHYTHM:\n", - " Current Interval: 15 min\n", - " Trading Session: LONDON\n", - " ATR (H1): 9.59\n", - " Volatility: MEDIUM\n", - "\n", - "πŸ›‘οΈ POSITION CONTROL:\n", - " Active Positions: 0/1\n", - " Trading Status: βœ… READY\n", - "\n", - "πŸ“Š CURRENT SIGNAL:\n", - "πŸ” Analyzing XAUUSD with V1.6 ADAPTIVE COMPLETE parameters...\n", - "\n", - "πŸ“Š V1.6 ADAPTIVE COMPLETE Trend-Analyse fΓΌr XAUUSD\n", - "⚑ Adaptive Interval: 15 min | Session: LONDON\n", - "🎯 Market Regime: RANGING (Strength: 83%)\n", - "🎚️ Adaptive Threshold: 70% (RELAXED)\n", - "\n", - "+------+-----------+------------+---------+-----------+---------+\n", - "| TF | Trend | Strength | ATR | Slope | Price |\n", - "|------+-----------+------------+---------+-----------+---------|\n", - "| D1 | uptrend | 726.15 | 67.5509 | 7.35778 | 4204.08 |\n", - "| H4 | uptrend | 396.3 | 21.7336 | 1.29195 | 4204.08 |\n", - "| H1 | downtrend | 42.35 | 9.5979 | -0.060974 | 4204.08 |\n", - "| M30 | downtrend | 130.77 | 6.3449 | -0.124459 | 4204.08 |\n", - "| M15 | uptrend | 294.43 | 4.1651 | 0.183947 | 4204.08 |\n", - "| M5 | downtrend | 99.26 | 2.471 | -0.036789 | 4204.08 |\n", - "+------+-----------+------------+---------+-----------+---------+\n", - "\n", - "➑️ Standard-Trend: uptrend (Strength: 594.21)\n", - "➑️ Fast-Trend: downtrend (Required: 2/4)\n", - "➑️ Top-Down-Trend: sideways\n", - "➑️ Confidence: 0.0% (Threshold: 70%)\n", - "➑️ Risk-Adjusted Strength: 0.0 (Min: 80)\n", - "➑️ Signal Quality: NONE\n", - "\n", - "πŸš€ V1.6 Adaptive Complete: Full Features + Adaptive Rhythm\n", - " Signal: NONE\n", - " Confidence: 0.0%\n", - " Threshold: 70%\n", - " Quality: NONE\n", - " Regime: RANGING\n", - " Would Trade: ❌ NO\n", - "\n", - "πŸŽ‰ VERSION INFO:\n", - " Version: V1.6 Adaptive Complete (CORRECTED)\n", - " Features: Position Control + Relaxed + Adaptive Rhythm\n", - " Status: Production-Ready βœ…\n", - "======================================================================\n" - ] - } - ], + "outputs": [], "source": [ "# Test 4: Complete Bot Status\n", "print(\"\\nπŸ§ͺ TEST 4: Complete Bot Status\")\n", @@ -2434,54 +1930,9 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "πŸ§ͺ TEST 5: Trade Execution (DRY RUN)\n", - "==================================================\n", - "\n", - "Testing trading logic without actual order...\n", - "πŸ” Analyzing XAUUSD with V1.6 ADAPTIVE COMPLETE parameters...\n", - "\n", - "πŸ“Š V1.6 ADAPTIVE COMPLETE Trend-Analyse fΓΌr XAUUSD\n", - "⚑ Adaptive Interval: 15 min | Session: LONDON\n", - "🎯 Market Regime: RANGING (Strength: 83%)\n", - "🎚️ Adaptive Threshold: 70% (RELAXED)\n", - "\n", - "+------+-----------+------------+---------+-----------+---------+\n", - "| TF | Trend | Strength | ATR | Slope | Price |\n", - "|------+-----------+------------+---------+-----------+---------|\n", - "| D1 | uptrend | 726.15 | 67.5509 | 7.35778 | 4204.08 |\n", - "| H4 | uptrend | 396.3 | 21.7336 | 1.29195 | 4204.08 |\n", - "| H1 | downtrend | 42.35 | 9.5979 | -0.060974 | 4204.08 |\n", - "| M30 | downtrend | 130.77 | 6.3449 | -0.124459 | 4204.08 |\n", - "| M15 | uptrend | 294.43 | 4.1651 | 0.183947 | 4204.08 |\n", - "| M5 | downtrend | 99.26 | 2.471 | -0.036789 | 4204.08 |\n", - "+------+-----------+------------+---------+-----------+---------+\n", - "\n", - "➑️ Standard-Trend: uptrend (Strength: 594.21)\n", - "➑️ Fast-Trend: downtrend (Required: 2/4)\n", - "➑️ Top-Down-Trend: sideways\n", - "➑️ Confidence: 0.0% (Threshold: 70%)\n", - "➑️ Risk-Adjusted Strength: 0.0 (Min: 80)\n", - "➑️ Signal Quality: NONE\n", - "\n", - "πŸš€ V1.6 Adaptive Complete: Full Features + Adaptive Rhythm\n", - "\n", - "πŸ›‘ TRADE BLOCKIERT: Ranging Market!\n", - " ADX: 8.5 (< 25 = Ranging)\n", - " πŸ“Š Ranging Performance: 0% Win Rate, 20 consecutive losses\n", - " βœ… Filter is protecting you from losses!\n", - "\n", - "⏸️ Kein Trade - Bedingungen nicht erfΓΌllt\n" - ] - } - ], + "outputs": [], "source": [ "# Test 5: Trade Execution Test (DRY RUN)\n", "print(\"\\nπŸ§ͺ TEST 5: Trade Execution (DRY RUN)\")\n", @@ -2509,124 +1960,27 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[.protected_check)>,\n", - " ,\n", - " )>,\n", - " ,\n", - " ,\n", - " ]" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "scheduler.get_jobs()" ] }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "πŸ” Analyzing XAUUSD with V1.6 ADAPTIVE COMPLETE parameters...\n", - "\n", - "πŸ“Š V1.6 ADAPTIVE COMPLETE Trend-Analyse fΓΌr XAUUSD\n", - "⚑ Adaptive Interval: 15 min | Session: LONDON\n", - "🎯 Market Regime: RANGING (Strength: 83%)\n", - "🎚️ Adaptive Threshold: 70% (RELAXED)\n", - "\n", - "+------+-----------+------------+---------+-----------+---------+\n", - "| TF | Trend | Strength | ATR | Slope | Price |\n", - "|------+-----------+------------+---------+-----------+---------|\n", - "| D1 | uptrend | 726.15 | 67.5509 | 7.35778 | 4204.07 |\n", - "| H4 | uptrend | 396.3 | 21.7336 | 1.29195 | 4204.07 |\n", - "| H1 | downtrend | 42.35 | 9.5979 | -0.060977 | 4204.07 |\n", - "| M30 | downtrend | 130.77 | 6.3449 | -0.124461 | 4204.07 |\n", - "| M15 | uptrend | 294.42 | 4.1651 | 0.183944 | 4204.07 |\n", - "| M5 | downtrend | 99.26 | 2.471 | -0.036792 | 4204.07 |\n", - "+------+-----------+------------+---------+-----------+---------+\n", - "\n", - "➑️ Standard-Trend: uptrend (Strength: 594.21)\n", - "➑️ Fast-Trend: downtrend (Required: 2/4)\n", - "➑️ Top-Down-Trend: sideways\n", - "➑️ Confidence: 0.0% (Threshold: 70%)\n", - "➑️ Risk-Adjusted Strength: 0.0 (Min: 80)\n", - "➑️ Signal Quality: NONE\n", - "\n", - "πŸš€ V1.6 Adaptive Complete: Full Features + Adaptive Rhythm\n", - "\n", - "πŸ›‘ TRADE BLOCKIERT: Ranging Market!\n", - " ADX: 8.5 (< 25 = Ranging)\n", - " πŸ“Š Ranging Performance: 0% Win Rate, 20 consecutive losses\n", - " βœ… Filter is protecting you from losses!\n" - ] - } - ], + "outputs": [], "source": [ "execute_trade_v2_adaptive(**ADAPTIVE_COMPLETE_CONFIG)" ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "======================================================================\n", - "πŸ”§ V1.6 ADAPTIVE COMPLETE - MANAGEMENT CONTROL PANEL\n", - "======================================================================\n", - "\n", - "πŸ“Š MONITORING:\n", - " 1. check_adaptive_bot_status() - Complete Status\n", - " 2. get_position_summary() - Position Overview\n", - " 3. print_status_report() - Adaptive Rhythm Status\n", - " 4. analyze_performance_adaptive() - Performance Analysis\n", - "\n", - "🎯 ANALYSIS:\n", - " 5. extended_top_down_v2_adaptive() - Signal Analysis\n", - " 6. rhythm_manager.calculate_optimal_interval() - Current Interval\n", - "\n", - "πŸ’Ό POSITION MANAGEMENT:\n", - " 7. close_existing_positions(force_close=True) - Close All Positions\n", - "\n", - "πŸš€ TRADING:\n", - " 8. execute_trade_v2_adaptive(**ADAPTIVE_COMPLETE_CONFIG) - Manual Trade\n", - "\n", - "βš™οΈ SCHEDULER CONTROL:\n", - " 9. scheduler.get_jobs() - Show Active Jobs\n", - " 10. scheduler.pause() - Pause Scheduler\n", - " 11. scheduler.resume() - Resume Scheduler\n", - " 12. scheduler.shutdown() - Stop Scheduler\n", - "\n", - "πŸ”§ CONFIGURATION:\n", - " 13. ADAPTIVE_COMPLETE_CONFIG - View Config\n", - " 14. rhythm_manager.atr_thresholds - ATR Settings\n", - "\n", - "πŸ“ QUICK COMMANDS:\n", - " β€’ Status: check_adaptive_bot_status()\n", - " β€’ Close: close_existing_positions(symbol, strategy_name, force_close=True)\n", - " β€’ Stop: scheduler.shutdown()\n", - "======================================================================\n" - ] - } - ], + "outputs": [], "source": [ "# βœ… KORRIGIERT: Management Control Panel (fehlte in V1.6)\n", "def show_adaptive_management_options():\n", @@ -2676,17 +2030,9 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "πŸ’‘ To close positions manually, uncomment the code above\n" - ] - } - ], + "outputs": [], "source": [ "# Optional: Close positions manually\n", "# UNCOMMENT to use:\n", @@ -2697,17 +2043,9 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "πŸ’‘ To adjust ATR thresholds, uncomment the code above\n" - ] - } - ], + "outputs": [], "source": [ "# Optional: ATR-Schwellenwerte anpassen\n", "# UNCOMMENT to use:\n", @@ -2723,26 +2061,9 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "πŸŽ›οΈ SCHEDULER CONTROL\n", - "\n", - "πŸ’‘ To pause trading:\n", - "scheduler.pause()\n", - "\n", - "πŸ’‘ To resume trading:\n", - "scheduler.resume()\n", - "\n", - "πŸ’‘ To stop completely:\n", - "scheduler.shutdown()\n" - ] - } - ], + "outputs": [], "source": [ "# Scheduler Control\n", "print(\"πŸŽ›οΈ SCHEDULER CONTROL\")\n", @@ -2767,92 +2088,9 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "======================================================================\n", - "πŸ“ˆ TRADINGBOT V1.6 ADAPTIVE COMPLETE - SUMMARY\n", - "======================================================================\n", - "\n", - "πŸŽ‰ VERSION: V1.6 ADAPTIVE COMPLETE (CORRECTED & READY!)\n", - "\n", - "βœ… ALLE FEATURES INTEGRIERT:\n", - "\n", - "πŸ›‘οΈ Position Control (aus V1.5):\n", - " β€’ Maximal 1 Trade gleichzeitig\n", - " β€’ check_existing_positions()\n", - " β€’ get_position_summary()\n", - " β€’ close_existing_positions() βœ… KORRIGIERT!\n", - "\n", - "πŸš€ Relaxed Trading Parameters (aus V1.5):\n", - " β€’ 10-20% niedrigere Confidence-Schwellen\n", - " β€’ Disabled Pullback Entry\n", - " β€’ Relaxed Signal-Quality-Filter\n", - " β€’ Niedrigere Min Risk-Adjusted Strength (80)\n", - " β€’ Fixed 2/4 Timeframe Alignment\n", - "\n", - "⚑ Adaptive Rhythm (NEU in V1.6):\n", - " β€’ Adaptive Intervalle: 5/15/30 Minuten\n", - " β€’ VolatilitΓ€ts-basiert (ATR)\n", - " β€’ Session-abhΓ€ngig (Asian/London/NY/Overlap)\n", - " β€’ Intelligente Entscheidungs-Matrix\n", - "\n", - "πŸ“Š Monitoring & Management (aus V1.5, angepasst):\n", - " β€’ Performance Logging\n", - " β€’ Performance Analysis\n", - " β€’ Complete Status Monitoring βœ… KORRIGIERT!\n", - " β€’ Management Control Panel βœ… KORRIGIERT!\n", - "\n", - "πŸ€– Automation:\n", - " β€’ APScheduler Integration\n", - " β€’ Adaptive Trading Checks (jede Minute)\n", - " β€’ Status Reports (alle 30 Min)\n", - "\n", - "πŸ§ͺ Testing Suite (aus V1.5):\n", - " β€’ Position Tests βœ… KORRIGIERT!\n", - " β€’ Signal Analysis Tests βœ… KORRIGIERT!\n", - " β€’ Adaptive Rhythm Tests\n", - " β€’ Complete Status Tests βœ… KORRIGIERT!\n", - "\n", - "βš™οΈ Configuration:\n", - " β€’ ADAPTIVE_COMPLETE_CONFIG βœ… KORRIGIERT!\n", - " β€’ Zentrale Parameter-Verwaltung\n", - "\n", - "🎯 VORTEILE VON V1.6 ADAPTIVE COMPLETE:\n", - " βœ… Maximale Sicherheit (Position Control)\n", - " βœ… Maximale Gelegenheiten (Relaxed Parameters)\n", - " βœ… Maximale Effizienz (Adaptive Rhythm)\n", - " βœ… VollstΓ€ndige Kontrolle (Complete Management)\n", - " βœ… Production-Ready!\n", - "\n", - "πŸ“Š TYPISCHER 24H-ZYKLUS:\n", - " 00:00-08:00 (Asian) β†’ 15-30 min\n", - " 08:00-13:00 (London) β†’ 5-30 min\n", - " 13:00-16:00 (Overlap) β†’ 5-15 min πŸ”₯\n", - " 16:00-21:00 (NY) β†’ 5-30 min\n", - " 21:00-00:00 (After) β†’ 15-30 min\n", - "\n", - "πŸ’‘ HAUPTFUNKTIONEN:\n", - " β€’ Status: check_adaptive_bot_status()\n", - " β€’ Analyze: extended_top_down_v2_adaptive()\n", - " β€’ Trade: execute_trade_v2_adaptive()\n", - " β€’ Manage: show_adaptive_management_options()\n", - "\n", - "πŸ† V1.6 ADAPTIVE COMPLETE - ALLE FUNKTIONEN INTEGRIERT!\n", - " πŸ›‘οΈ Sicherheit + πŸš€ AggressivitΓ€t + ⚑ Intelligenz\n", - " Production-Ready & Fully Tested! βœ…\n", - "\n", - "======================================================================\n", - "🎊 Ready for intelligent, safe, and adaptive trading!\n", - "======================================================================\n" - ] - } - ], + "outputs": [], "source": [ "print(\"\\n\" + \"=\"*70)\n", "print(\"πŸ“ˆ TRADINGBOT V1.6 ADAPTIVE COMPLETE - SUMMARY\")\n", @@ -2940,26 +2178,9 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "πŸ” Drawdown Protection Debug:\n", - " trading_paused: False\n", - " pause_until: None\n", - " pause_reason: None\n", - "\n", - "βœ… After force clear:\n", - " Can trade: True\n", - " Reason: OK\n", - "\n", - "πŸ“Š Consecutive losses from DB: 0\n" - ] - } - ], + "outputs": [], "source": [ "# Check Drawdown Protection Status\n", "print(\"πŸ” Drawdown Protection Debug:\")\n", @@ -2994,21 +2215,7 @@ "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-12-10 09:32:00,004 - INFO - Running job \"create_protected_trading_check..protected_check (trigger: cron[minute='*'], next run at: 2025-12-10 09:33:00 CET)\" (scheduled at 2025-12-10 09:32:00+01:00)\n", - "2025-12-10 09:32:00,009 - INFO - ⏸️ Trading SKIP: Session blocked: London is break-even, 29.6% win-rate\n", - "2025-12-10 09:32:00,010 - INFO - Job \"create_protected_trading_check..protected_check (trigger: cron[minute='*'], next run at: 2025-12-10 09:33:00 CET)\" executed successfully\n", - "2025-12-10 09:32:01,711 - INFO - Running job \"PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-10 09:33:01 CET)\" (scheduled at 2025-12-10 09:32:01.675271+01:00)\n", - "2025-12-10 09:32:01,711 - INFO - Running job \" (trigger: interval[0:01:00], next run at: 2025-12-10 09:33:01 CET)\" (scheduled at 2025-12-10 09:32:01.678266+01:00)\n", - "2025-12-10 09:32:01,763 - INFO - Job \" (trigger: interval[0:01:00], next run at: 2025-12-10 09:33:01 CET)\" executed successfully\n", - "2025-12-10 09:32:01,765 - INFO - Job \"PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-10 09:33:01 CET)\" executed successfully\n" - ] - } - ], + "outputs": [], "source": [ "# # ==========================================\n", "# # RESET CONSECUTIVE LOSSES (V2.2)\n", @@ -3090,34 +2297,9 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{'enabled_sessions': {'asian': True, 'london': False, 'overlap': False, 'ny': True}, 'base_confidence': 70, 'atr_mult': 1.5, 'max_risk_per_trade': 0.01, 'min_atr': 0.0008, 'risk_filter': True, 'use_pullback_entry': False, 'aggressive_mode': False, 'conservative_mode': False, 'debug': True}\n", - "βœ… asian: ASIAN allowed: In whitelist\n", - "❌ london: Session blocked: London is break-even, 29.6% win-rate\n", - "❌ overlap: Session blocked: Not in whitelist\n", - "βœ… ny: NY allowed: +$372 profit, 50.0% win-rate (BEST!)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-12-10 09:33:00,002 - INFO - Running job \"create_protected_trading_check..protected_check (trigger: cron[minute='*'], next run at: 2025-12-10 09:34:00 CET)\" (scheduled at 2025-12-10 09:33:00+01:00)\n", - "2025-12-10 09:33:00,014 - INFO - ⏸️ Trading SKIP: Session blocked: London is break-even, 29.6% win-rate\n", - "2025-12-10 09:33:00,035 - INFO - Job \"create_protected_trading_check..protected_check (trigger: cron[minute='*'], next run at: 2025-12-10 09:34:00 CET)\" executed successfully\n", - "2025-12-10 09:33:01,797 - INFO - Running job \"PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-10 09:34:01 CET)\" (scheduled at 2025-12-10 09:33:01.675271+01:00)\n", - "2025-12-10 09:33:01,800 - INFO - Job \"PositionMonitor.check_open_positions (trigger: interval[0:01:00], next run at: 2025-12-10 09:34:01 CET)\" executed successfully\n", - "2025-12-10 09:33:01,798 - INFO - Running job \" (trigger: interval[0:01:00], next run at: 2025-12-10 09:34:01 CET)\" (scheduled at 2025-12-10 09:33:01.678266+01:00)\n", - "2025-12-10 09:33:01,805 - INFO - Job \" (trigger: interval[0:01:00], next run at: 2025-12-10 09:34:01 CET)\" executed successfully\n" - ] - } - ], + "outputs": [], "source": [ "# PrΓΌfe ob Filter aktiv ist\n", "print(SESSION_WHITELIST_CONFIG)\n", @@ -3129,109 +2311,6 @@ " print(f\"{emoji} {session}: {reason}\")" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# ==========================================", - "# πŸ“Š MARKET REGIME INDICATOR (Live Status)", - "# ==========================================", - "", - "def show_current_regime(symbol=\"XAUUSD\"):", - " \"\"\"Display current market regime with visual indicator\"\"\"", - "", - " from datetime import datetime", - "", - " print(\"\\n\" + \"=\" * 70)", - " print(f\"πŸ“Š MARKET REGIME STATUS - {symbol}\")", - " print(\"=\" * 70)", - "", - " # Get signal", - " try:", - " signal_info = extended_top_down_v2_adaptive(symbol)", - "", - " if signal_info is None:", - " print(\"❌ Could not get signal info\")", - " return None", - "", - " # Extract data", - " market_regime = signal_info.get(\"market_regime\", {})", - " regime = market_regime.get('regime', 'unknown')", - " adx = market_regime.get('adx', 0)", - "", - " # Get current price", - " tick = mt.symbol_info_tick(symbol)", - " current_price = tick.bid if tick else 0", - "", - " # Display", - " print(f\"\\n⏰ Time: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\")", - " print(f\"πŸ’Ή Price: ${current_price:.2f}\")", - " print(f\"\\nπŸ“ˆ REGIME:\")", - "", - " # Visual indicator", - " if regime == 'ranging':", - " print(\" πŸ”΄ RANGING MARKET\")", - " print(f\" ADX: {adx:.1f} (< 25)\")", - " print(\" Status: ❌ Trading BLOCKED\")", - " print(\" Reason: No clear trend\")", - " bar_color = \"πŸ”΄\"", - " can_trade = False", - " elif regime == 'trending' and adx >= 25:", - " print(\" 🟒 TRENDING MARKET\")", - " print(f\" ADX: {adx:.1f} (β‰₯ 25)\")", - " print(\" Status: βœ… Trading ALLOWED\")", - " print(\" Reason: Strong trend detected\")", - " bar_color = \"🟒\"", - " can_trade = True", - " else:", - " print(\" 🟑 WEAK TREND\")", - " print(f\" ADX: {adx:.1f} (< 25)\")", - " print(\" Status: ⚠️ Trading BLOCKED\")", - " print(\" Reason: Trend too weak\")", - " bar_color = \"🟑\"", - " can_trade = False", - "", - " # ADX bar", - " bar_length = min(int(adx / 2), 50)", - " print(f\"\\nπŸ“Š ADX Scale:\")", - " print(f\" {bar_color} {'β–ˆ' * bar_length} {adx:.1f}\")", - " print(\" β”œβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€\")", - " print(\" 0 10 20 25 40 50+\")", - " print(\" ↑ ↑\")", - " print(\" Ranging Trending\")", - "", - " # Signal info", - " if 'direction' in signal_info:", - " direction = signal_info['direction']", - " confidence = signal_info.get('confidence', 0)", - " print(f\"\\nπŸ“ Signal:\")", - " print(f\" Direction: {direction}\")", - " print(f\" Confidence: {confidence:.1f}%\")", - "", - " print(\"\\n\" + \"=\" * 70 + \"\\n\")", - "", - " return {", - " 'regime': regime,", - " 'adx': adx,", - " 'can_trade': can_trade,", - " 'price': current_price", - " }", - "", - " except Exception as e:", - " print(f\"❌ Error: {e}\")", - " import traceback", - " traceback.print_exc()", - " return None", - "", - "# Run indicator", - "print(\"\\n🎯 To check regime anytime, run: show_current_regime()\")", - "print(\"\\nπŸ“Š Running initial check...\")", - "result = show_current_regime(\"XAUUSD\")", - "" - ] - }, { "cell_type": "code", "execution_count": null, @@ -3261,4 +2340,4 @@ }, "nbformat": 4, "nbformat_minor": 4 -} \ No newline at end of file +} diff --git a/analyze_mt5_profitability.py b/analyze_mt5_profitability.py new file mode 100644 index 0000000..c64fee0 --- /dev/null +++ b/analyze_mt5_profitability.py @@ -0,0 +1,577 @@ +#!/usr/bin/env python3 +""" +TradingBot V1.6 MT5 Profitability Analyzer +Holt Trade-Historie aus MT5 und berechnet echte Performance +""" + +import MetaTrader5 as mt +import json +import glob +from datetime import datetime, timedelta +from collections import defaultdict +import keyring as kr + + +class MT5ProfitabilityAnalyzer: + """Analysiert echte Trading-Performance aus MT5""" + + def __init__(self, strategy_name="TradingBot_V1.6", symbol="XAUUSD"): + self.strategy_name = strategy_name + self.symbol = symbol + self.json_trades = [] + self.mt5_deals = [] + self.mt5_positions = [] + self.matched_trades = [] + self.stats = {} + + def connect_mt5(self): + """Verbindet zu MT5""" + print("πŸ”Œ Verbinde zu MT5...") + + if not mt.initialize(): + print(f"❌ MT5 Initialisierung fehlgeschlagen: {mt.last_error()}") + return False + + # Login (wie im Bot) + login = 10800246 + server = 'VantageInternational-Demo' + password = kr.get_password(server, str(login)) + + if not mt.login(login, password, server): + print(f"❌ MT5 Login fehlgeschlagen: {mt.last_error()}") + return False + + account_info = mt.account_info() + if account_info: + print(f"βœ… MT5 verbunden") + print(f" Account: {account_info.login}") + print(f" Balance: ${account_info.balance:.2f}") + print(f" Equity: ${account_info.equity:.2f}") + print(f" Profit: ${account_info.profit:.2f}") + + return True + + def load_json_trades(self, json_pattern="trade_performance_v16_XAUUSD_*.json"): + """LΓ€dt JSON Trade-Daten""" + print(f"\nπŸ“‚ Lade JSON Trade-Daten...") + + json_files = glob.glob(json_pattern) + if not json_files: + print(f"❌ Keine JSON-Files gefunden") + return False + + all_trades = [] + for file in json_files: + try: + with open(file, 'r') as f: + data = json.load(f) + all_trades.extend(data) + except Exception as e: + print(f"⚠️ Fehler beim Laden von {file}: {e}") + + if not all_trades: + return False + + self.json_trades = all_trades + print(f"βœ… {len(all_trades)} JSON Trades geladen") + return True + + def fetch_mt5_history(self, days_back=30): + """Holt Trade-Historie aus MT5""" + print(f"\nπŸ“Š Hole MT5 Trade-Historie (letzte {days_back} Tage)...") + + # Zeitraum + date_to = datetime.now() + date_from = date_to - timedelta(days=days_back) + + # Hole ALLE Deals fΓΌr das Symbol (nicht nur mit Comment) + all_deals = mt.history_deals_get(date_from, date_to, symbol=self.symbol) + + if all_deals is None: + print(f"❌ Keine Deals gefunden: {mt.last_error()}") + return False + + print(f"πŸ“Š {len(all_deals)} Total Deals fΓΌr {self.symbol} gefunden") + + # Filtere nach Strategy + strategy_deals = [ + deal for deal in all_deals + if self.strategy_name in deal.comment + ] + + # ZΓ€hle Entry vs Exit Deals + entry_deals = [d for d in strategy_deals if d.entry == 0] # IN + exit_deals = [d for d in strategy_deals if d.entry == 1] # OUT + + self.mt5_deals = strategy_deals + print(f"βœ… {len(strategy_deals)} Strategy Deals gefunden:") + print(f" - {len(entry_deals)} Entry Deals (entry=0)") + print(f" - {len(exit_deals)} Exit Deals (entry=1)") + + # Wenn keine Exit Deals, dann sind Positionen noch offen ODER + # sie wurden per SL/TP geschlossen (anderer Comment?) + if len(exit_deals) == 0: + print(f"\n⚠️ KEINE Exit Deals gefunden!") + print(f" Das bedeutet: Positionen wurden per SL/TP geschlossen,") + print(f" aber Exit-Deals haben anderen Comment (nicht '{self.strategy_name}')") + print(f"\nπŸ” PrΓΌfe alle Deals fΓΌr Position-IDs...") + + # Sammle alle Position IDs aus Entry Deals + entry_position_ids = set(d.position_id for d in entry_deals) + + # Suche ALLE Deals mit diesen Position IDs (auch ohne Strategy Comment) + all_position_deals = [ + d for d in all_deals + if d.position_id in entry_position_ids + ] + + print(f"βœ… {len(all_position_deals)} Deals fΓΌr diese Position-IDs gefunden") + + # Verwende ALLE Deals fΓΌr diese Positionen + self.mt5_deals = all_position_deals + + # Neu zΓ€hlen + entry_deals = [d for d in all_position_deals if d.entry == 0] + exit_deals = [d for d in all_position_deals if d.entry == 1] + print(f" - {len(entry_deals)} Entry Deals") + print(f" - {len(exit_deals)} Exit Deals") + + # Hole auch geschlossene Positionen + positions_history = mt.history_orders_get(date_from, date_to) + + if positions_history: + strategy_positions = [ + pos for pos in positions_history + if pos.symbol == self.symbol and self.strategy_name in pos.comment + ] + self.mt5_positions = strategy_positions + print(f"βœ… {len(strategy_positions)} Order-Historie-EintrΓ€ge gefunden") + + return True + + def match_trades(self): + """Matched JSON Entry-Daten mit MT5 Exit-Daten""" + print(f"\nπŸ”— Matche JSON Entries mit MT5 Exits...") + + matched = [] + unmatched_json = [] + + # Gruppiere Deals nach Position ID + deals_by_position = defaultdict(list) + for deal in self.mt5_deals: + deals_by_position[deal.position_id].append(deal) + + # Debug: Zeige erste Deals + print(f"\nπŸ” Debug: Erste 3 Deals:") + for i, deal in enumerate(self.mt5_deals[:3]): + print(f" Deal {i+1}:") + print(f" ticket: {deal.ticket}") + print(f" position_id: {deal.position_id}") + print(f" entry: {deal.entry}") + print(f" type: {deal.type}") + print(f" price: {deal.price}") + print(f" profit: {deal.profit}") + + # Extrahiere Deal-IDs aus JSON + for json_trade in self.json_trades: + order_str = json_trade.get('order_result', '') + + # Extrahiere Deal ID + import re + deal_match = re.search(r'deal=(\d+)', order_str) + + if not deal_match: + unmatched_json.append(json_trade) + continue + + entry_deal_id = int(deal_match.group(1)) + + # Finde Entry Deal in MT5 + entry_deal = None + for deal in self.mt5_deals: + if deal.ticket == entry_deal_id: + entry_deal = deal + break + + if not entry_deal: + unmatched_json.append(json_trade) + continue + + # Finde zugehΓΆrigen Exit Deal + # Ein Exit Deal hat: + # - Gleiche position_id + # - Andere ticket ID + # - entry = 1 (OUT) statt 0 (IN) + # - SpΓ€terer Zeitstempel + position_id = entry_deal.position_id + position_deals = deals_by_position[position_id] + + exit_deal = None + if len(position_deals) >= 2: + # Sortiere nach Zeit + sorted_deals = sorted(position_deals, key=lambda d: d.time) + # Entry sollte erster sein, Exit zweiter + for deal in sorted_deals: + if deal.ticket != entry_deal_id and deal.time > entry_deal.time: + exit_deal = deal + break + + # Erstelle Match-Entry + match_entry = { + 'json_trade': json_trade, + 'entry_deal': entry_deal, + 'exit_deal': exit_deal, + 'is_closed': exit_deal is not None, + 'entry_time': datetime.fromtimestamp(entry_deal.time), + 'entry_price': entry_deal.price, + 'entry_volume': entry_deal.volume, + } + + if exit_deal: + match_entry.update({ + 'exit_time': datetime.fromtimestamp(exit_deal.time), + 'exit_price': exit_deal.price, + 'profit': exit_deal.profit, + 'commission': exit_deal.commission, + 'swap': exit_deal.swap, + 'net_profit': exit_deal.profit + exit_deal.commission + exit_deal.swap, + 'hold_time_hours': (datetime.fromtimestamp(exit_deal.time) - + datetime.fromtimestamp(entry_deal.time)).total_seconds() / 3600, + 'pips': abs(exit_deal.price - entry_deal.price), + 'is_winner': exit_deal.profit > 0, + }) + + matched.append(match_entry) + + self.matched_trades = matched + + print(f"\nβœ… {len(matched)} Trades gematched") + print(f" - {sum(1 for m in matched if m['is_closed'])} geschlossen") + print(f" - {sum(1 for m in matched if not m['is_closed'])} noch offen") + + if unmatched_json: + print(f"⚠️ {len(unmatched_json)} JSON Trades konnten nicht gematched werden") + + return True + + def calculate_performance_metrics(self): + """Berechnet umfassende Performance-Metriken""" + print(f"\nπŸ“ˆ Berechne Performance-Metriken...") + + closed_trades = [t for t in self.matched_trades if t['is_closed']] + + if not closed_trades: + print("⚠️ Keine geschlossenen Trades gefunden!") + return False + + # Basic Stats + total_closed = len(closed_trades) + winners = [t for t in closed_trades if t['is_winner']] + losers = [t for t in closed_trades if not t['is_winner']] + + win_count = len(winners) + loss_count = len(losers) + win_rate = (win_count / total_closed * 100) if total_closed > 0 else 0 + + # P&L + total_profit = sum(t['profit'] for t in closed_trades) + total_commission = sum(t['commission'] for t in closed_trades) + total_swap = sum(t['swap'] for t in closed_trades) + net_profit = sum(t['net_profit'] for t in closed_trades) + + gross_profit = sum(t['profit'] for t in winners) if winners else 0 + gross_loss = abs(sum(t['profit'] for t in losers)) if losers else 0 + + profit_factor = (gross_profit / gross_loss) if gross_loss > 0 else float('inf') + + # Average Trade + avg_win = (sum(t['profit'] for t in winners) / win_count) if winners else 0 + avg_loss = (sum(t['profit'] for t in losers) / loss_count) if losers else 0 + avg_trade = net_profit / total_closed + + # Hold Time + avg_hold_time = sum(t['hold_time_hours'] for t in closed_trades) / total_closed + + # Expectancy + expectancy = (win_rate/100 * avg_win) + ((1 - win_rate/100) * avg_loss) + + # Drawdown Analyse + cumulative_profits = [] + running_profit = 0 + for trade in sorted(closed_trades, key=lambda x: x['exit_time']): + running_profit += trade['net_profit'] + cumulative_profits.append(running_profit) + + peak = cumulative_profits[0] + max_drawdown = 0 + drawdown_pct = 0 + + for profit in cumulative_profits: + if profit > peak: + peak = profit + drawdown = peak - profit + if drawdown > max_drawdown: + max_drawdown = drawdown + drawdown_pct = (drawdown / peak * 100) if peak > 0 else 0 + + # Session Analysis + session_performance = defaultdict(lambda: {'count': 0, 'profit': 0, 'wins': 0}) + for trade in closed_trades: + session = trade['json_trade'].get('session', 'unknown') + session_performance[session]['count'] += 1 + session_performance[session]['profit'] += trade['net_profit'] + if trade['is_winner']: + session_performance[session]['wins'] += 1 + + # Regime Analysis + regime_performance = defaultdict(lambda: {'count': 0, 'profit': 0, 'wins': 0}) + for trade in closed_trades: + regime = trade['json_trade'].get('market_regime', 'unknown') + regime_performance[regime]['count'] += 1 + regime_performance[regime]['profit'] += trade['net_profit'] + if trade['is_winner']: + regime_performance[regime]['wins'] += 1 + + # Quality Analysis + quality_performance = defaultdict(lambda: {'count': 0, 'profit': 0, 'wins': 0}) + for trade in closed_trades: + quality = trade['json_trade'].get('signal_quality', 'unknown') + quality_performance[quality]['count'] += 1 + quality_performance[quality]['profit'] += trade['net_profit'] + if trade['is_winner']: + quality_performance[quality]['wins'] += 1 + + # Best/Worst Trades + best_trade = max(closed_trades, key=lambda x: x['profit']) + worst_trade = min(closed_trades, key=lambda x: x['profit']) + + self.stats = { + 'total_closed': total_closed, + 'win_count': win_count, + 'loss_count': loss_count, + 'win_rate': win_rate, + 'total_profit': total_profit, + 'total_commission': total_commission, + 'total_swap': total_swap, + 'net_profit': net_profit, + 'gross_profit': gross_profit, + 'gross_loss': gross_loss, + 'profit_factor': profit_factor, + 'avg_win': avg_win, + 'avg_loss': avg_loss, + 'avg_trade': avg_trade, + 'avg_hold_time': avg_hold_time, + 'expectancy': expectancy, + 'max_drawdown': max_drawdown, + 'max_drawdown_pct': drawdown_pct, + 'session_performance': dict(session_performance), + 'regime_performance': dict(regime_performance), + 'quality_performance': dict(quality_performance), + 'best_trade': { + 'profit': best_trade['profit'], + 'entry_time': best_trade['entry_time'], + 'session': best_trade['json_trade'].get('session'), + }, + 'worst_trade': { + 'profit': worst_trade['profit'], + 'entry_time': worst_trade['entry_time'], + 'session': worst_trade['json_trade'].get('session'), + }, + 'cumulative_profits': cumulative_profits, + } + + print("βœ… Performance-Metriken berechnet") + return True + + def print_profitability_report(self): + """Druckt umfassenden ProfitabilitΓ€ts-Report""" + stats = self.stats + + print("\n" + "="*70) + print("πŸ’° TRADINGBOT V1.6 - PROFITABILITY REPORT") + print("="*70) + + # Profitability Status + is_profitable = stats['net_profit'] > 0 + status_emoji = "βœ…" if is_profitable else "❌" + status_text = "PROFITABEL" if is_profitable else "NICHT PROFITABEL" + + print(f"\n{status_emoji} STATUS: {status_text}") + print(f" Net Profit: ${stats['net_profit']:.2f}") + + print(f"\nπŸ“Š TRADE STATISTICS:") + print(f" Total Closed Trades: {stats['total_closed']}") + print(f" Winners: {stats['win_count']} ({stats['win_rate']:.1f}%)") + print(f" Losers: {stats['loss_count']} ({100-stats['win_rate']:.1f}%)") + + print(f"\nπŸ’΅ PROFIT & LOSS:") + print(f" Gross Profit: ${stats['gross_profit']:.2f}") + print(f" Gross Loss: ${stats['gross_loss']:.2f}") + print(f" Total Commission: ${stats['total_commission']:.2f}") + print(f" Total Swap: ${stats['total_swap']:.2f}") + print(f" Net Profit: ${stats['net_profit']:.2f}") + + print(f"\nπŸ“ˆ PERFORMANCE METRICS:") + pf_display = f"{stats['profit_factor']:.2f}" if stats['profit_factor'] != float('inf') else "∞" + print(f" Profit Factor: {pf_display}") + print(f" Average Win: ${stats['avg_win']:.2f}") + print(f" Average Loss: ${stats['avg_loss']:.2f}") + print(f" Average Trade: ${stats['avg_trade']:.2f}") + print(f" Expectancy: ${stats['expectancy']:.2f}") + + print(f"\n⏱️ TIMING:") + print(f" Avg Hold Time: {stats['avg_hold_time']:.1f} hours") + + print(f"\nπŸ“‰ RISK METRICS:") + print(f" Max Drawdown: ${stats['max_drawdown']:.2f} ({stats['max_drawdown_pct']:.1f}%)") + + print(f"\nπŸ† BEST TRADE:") + best = stats['best_trade'] + print(f" Profit: ${best['profit']:.2f}") + print(f" Time: {best['entry_time'].strftime('%Y-%m-%d %H:%M')}") + print(f" Session: {best['session']}") + + print(f"\nπŸ’” WORST TRADE:") + worst = stats['worst_trade'] + print(f" Loss: ${worst['profit']:.2f}") + print(f" Time: {worst['entry_time'].strftime('%Y-%m-%d %H:%M')}") + print(f" Session: {worst['session']}") + + print(f"\n🌍 SESSION PERFORMANCE:") + for session in ['asian', 'london', 'overlap', 'ny']: + if session in stats['session_performance']: + perf = stats['session_performance'][session] + win_rate = (perf['wins'] / perf['count'] * 100) if perf['count'] > 0 else 0 + profit_emoji = "βœ…" if perf['profit'] > 0 else "❌" + print(f" {session.capitalize():8s}: {perf['count']:3d} trades | " + f"${perf['profit']:7.2f} | Win Rate: {win_rate:5.1f}% {profit_emoji}") + + print(f"\nπŸ“ˆ REGIME PERFORMANCE:") + for regime, perf in stats['regime_performance'].items(): + win_rate = (perf['wins'] / perf['count'] * 100) if perf['count'] > 0 else 0 + profit_emoji = "βœ…" if perf['profit'] > 0 else "❌" + print(f" {regime.capitalize():10s}: {perf['count']:3d} trades | " + f"${perf['profit']:7.2f} | Win Rate: {win_rate:5.1f}% {profit_emoji}") + + print(f"\n🎯 SIGNAL QUALITY PERFORMANCE:") + for quality in ['excellent', 'good', 'fair']: + if quality in stats['quality_performance']: + perf = stats['quality_performance'][quality] + win_rate = (perf['wins'] / perf['count'] * 100) if perf['count'] > 0 else 0 + profit_emoji = "βœ…" if perf['profit'] > 0 else "❌" + print(f" {quality.capitalize():10s}: {perf['count']:3d} trades | " + f"${perf['profit']:7.2f} | Win Rate: {win_rate:5.1f}% {profit_emoji}") + + print("\n" + "="*70) + + # Interpretation + print("\nπŸ’‘ INTERPRETATION:") + + if is_profitable: + print(" βœ… Die Strategie ist profitabel!") + if stats['win_rate'] >= 50: + print(" βœ… Gute Win-Rate") + else: + print(" ⚠️ Win-Rate unter 50% - Strategie profitiert von großen Wins") + + if stats['profit_factor'] >= 2.0: + print(" βœ… Exzellenter Profit Factor (>=2.0)") + elif stats['profit_factor'] >= 1.5: + print(" βœ… Guter Profit Factor (>=1.5)") + else: + print(" ⚠️ Profit Factor kΓΆnnte besser sein") + else: + print(" ❌ Die Strategie ist derzeit nicht profitabel") + print(" ⚠️ Optimierung notwendig!") + + print("="*70) + + def save_results(self, output_file='profitability_analysis.json'): + """Speichert Ergebnisse als JSON""" + print(f"\nπŸ’Ύ Speichere Ergebnisse...") + + results = { + 'analysis_date': datetime.now().isoformat(), + 'strategy_name': self.strategy_name, + 'symbol': self.symbol, + 'statistics': { + k: v for k, v in self.stats.items() + if k not in ['best_trade', 'worst_trade', 'cumulative_profits'] + }, + 'best_trade': { + 'profit': self.stats['best_trade']['profit'], + 'entry_time': self.stats['best_trade']['entry_time'].isoformat(), + 'session': self.stats['best_trade']['session'], + }, + 'worst_trade': { + 'profit': self.stats['worst_trade']['profit'], + 'entry_time': self.stats['worst_trade']['entry_time'].isoformat(), + 'session': self.stats['worst_trade']['session'], + }, + } + + with open(output_file, 'w') as f: + json.dump(results, f, indent=2) + + print(f"βœ… Ergebnisse gespeichert: {output_file}") + + def disconnect_mt5(self): + """Trennt MT5 Verbindung""" + mt.shutdown() + print("βœ… MT5 Verbindung getrennt") + + +def main(): + """Haupt-Analyse""" + print("="*70) + print("πŸ’° TradingBot V1.6 - MT5 Profitability Analyzer") + print("="*70) + + analyzer = MT5ProfitabilityAnalyzer() + + # 1. Connect MT5 + if not analyzer.connect_mt5(): + return + + # 2. Load JSON Trades + if not analyzer.load_json_trades(): + analyzer.disconnect_mt5() + return + + # 3. Fetch MT5 History + if not analyzer.fetch_mt5_history(days_back=30): + analyzer.disconnect_mt5() + return + + # 4. Match Trades + if not analyzer.match_trades(): + analyzer.disconnect_mt5() + return + + # 5. Calculate Performance + if not analyzer.calculate_performance_metrics(): + analyzer.disconnect_mt5() + return + + # 6. Print Report + analyzer.print_profitability_report() + + # 7. Save Results + analyzer.save_results() + + # 8. Disconnect + analyzer.disconnect_mt5() + + print("\n" + "="*70) + print("βœ… ANALYSE ABGESCHLOSSEN") + print("="*70) + print("\nπŸ“‚ Generierte Files:") + print(" - profitability_analysis.json") + print("\n🎯 NΓ€chste Schritte basierend auf Ergebnis:") + print(" β€’ Falls profitabel β†’ SQLite + Telegram + Scaling") + print(" β€’ Falls nicht profitabel β†’ Parameter-Optimierung + Backtesting") + print("="*70) + + +if __name__ == "__main__": + main() diff --git a/trade_performance_v16_XAUUSD_202512.json b/trade_performance_v16_XAUUSD_202512.json new file mode 100644 index 0000000..1cbb898 --- /dev/null +++ b/trade_performance_v16_XAUUSD_202512.json @@ -0,0 +1,623 @@ +[ + { + "timestamp": "2025-12-01T09:30:01.179022", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 100.0, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 26.187311170434114, + "risk_adjusted_strength": 176397.25501302085, + "adaptive_interval": 5, + "session": "london", + "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": "OrderSendResult(retcode=10009, deal=503373712, order=555239668, volume=0.1, price=4249.84, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087505, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4249.87, stoplimit=0.0, sl=4244.47261369406, tp=4262.69846576485, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-01T09:40:01.091136", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 100.0, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 26.187311170434114, + "risk_adjusted_strength": 176705.93331163903, + "adaptive_interval": 5, + "session": "london", + "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": "OrderSendResult(retcode=10009, deal=503404159, order=555271485, volume=0.1, price=4244.93, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087506, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4244.86, stoplimit=0.0, sl=4239.496226500302, tp=4257.849433749243, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-01T09:50:01.237961", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 100.0, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 26.187311170434114, + "risk_adjusted_strength": 174783.75079423017, + "adaptive_interval": 5, + "session": "london", + "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": "OrderSendResult(retcode=10009, deal=503430133, order=555298988, volume=0.1, price=4240.11, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087507, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4240.11, stoplimit=0.0, sl=4234.551737412074, tp=4253.340656469817, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-01T11:15:00.937882", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 100.0, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 22.950196356222577, + "risk_adjusted_strength": 185090.22489130433, + "adaptive_interval": 5, + "session": "london", + "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": "OrderSendResult(retcode=10009, deal=503609381, order=555485214, volume=0.1, price=4259.0, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087508, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4259.0, stoplimit=0.0, sl=4253.756304214274, tp=4271.4442394643165, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-01T11:25:00.836591", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 100.0, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 22.950196356222577, + "risk_adjusted_strength": 182442.8148539039, + "adaptive_interval": 5, + "session": "london", + "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": "OrderSendResult(retcode=10009, deal=503632416, order=555509528, volume=0.1, price=4254.89, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087509, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4254.83, stoplimit=0.0, sl=4249.562827807786, tp=4267.3679304805355, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-01T12:30:01.054444", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 100.0, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 22.950196356222577, + "risk_adjusted_strength": 197309.6636831888, + "adaptive_interval": 15, + "session": "london", + "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": "OrderSendResult(retcode=10009, deal=503759064, order=555646332, volume=0.1, price=4254.58, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087510, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4254.6, stoplimit=0.0, sl=4249.845641441868, tp=4265.925896395328, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-01T13:15:01.501352", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 100.0, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 22.950196356222577, + "risk_adjusted_strength": 196985.01079364016, + "adaptive_interval": 15, + "session": "london", + "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": "OrderSendResult(retcode=10009, deal=503855999, order=555749313, volume=0.1, price=4249.08, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087511, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4249.07, stoplimit=0.0, sl=4244.391994744853, tp=4260.100013137867, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-01T14:00:01.300231", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 100.0, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 22.950196356222577, + "risk_adjusted_strength": 200635.71763647176, + "adaptive_interval": 15, + "session": "overlap", + "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": "OrderSendResult(retcode=10009, deal=503984299, order=555882788, volume=0.1, price=4246.69, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087512, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4246.7, stoplimit=0.0, sl=4241.557051440018, tp=4258.927371399957, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-01T14:45:01.547899", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 100.0, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 22.855971047619605, + "risk_adjusted_strength": 191017.6319337731, + "adaptive_interval": 15, + "session": "overlap", + "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": "OrderSendResult(retcode=10009, deal=504129495, order=556035267, volume=0.1, price=4262.15, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087513, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4262.24, stoplimit=0.0, sl=4256.6815248643825, tp=4275.4711878390435, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-01T15:00:07.840065", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 100.0, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 22.855971047619605, + "risk_adjusted_strength": 180240.67670192872, + "adaptive_interval": 15, + "session": "overlap", + "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": "OrderSendResult(retcode=10009, deal=504179076, order=556087481, volume=0.1, price=4247.86, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087514, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4247.59, stoplimit=0.0, sl=4240.9611044446665, tp=4263.497238888332, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-01T15:30:23.337699", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 100.0, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 19.893595925527748, + "risk_adjusted_strength": 188782.93793608592, + "adaptive_interval": 15, + "session": "overlap", + "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": "OrderSendResult(retcode=10009, deal=504270600, order=556183948, volume=0.1, price=4246.72, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087515, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4246.79, stoplimit=0.0, sl=4240.418990879546, tp=4262.052522801137, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-01T15:40:12.627862", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 100.0, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 22.011906057750465, + "risk_adjusted_strength": 171292.01007691692, + "adaptive_interval": 5, + "session": "overlap", + "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": "OrderSendResult(retcode=10009, deal=504333873, order=556248758, volume=0.09, price=4232.56, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087516, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.09, price=4231.75, stoplimit=0.0, sl=4224.03960280412, tp=4250.3959929897, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-01T15:45:01.924286", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 100.0, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 22.96919510043668, + "risk_adjusted_strength": 165496.095712373, + "adaptive_interval": 5, + "session": "overlap", + "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": "OrderSendResult(retcode=10009, deal=504368039, order=556284215, volume=0.08, price=4224.5, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087517, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.08, price=4225.38, stoplimit=0.0, sl=4216.36685280412, tp=4247.2828679897, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-02T17:00:03.945254", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 91.89, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 32.00907405127121, + "risk_adjusted_strength": 102422.27759198961, + "adaptive_interval": 5, + "session": "ny", + "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": "OrderSendResult(retcode=10009, deal=508082993, order=560205332, volume=0.07, price=4169.37, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087518, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.07, price=4169.33, stoplimit=0.0, sl=4159.667887312871, tp=4193.275281717823, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-02T18:35:01.428979", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 89.28, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 32.00907405127121, + "risk_adjusted_strength": 94959.99219814289, + "adaptive_interval": 5, + "session": "ny", + "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": "OrderSendResult(retcode=10009, deal=508370745, order=560529506, volume=0.1, price=4194.04, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087519, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4194.08, stoplimit=0.0, sl=4187.015967471403, tp=4211.075081321494, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-02T19:40:01.665835", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 88.43, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 34.84893980267297, + "risk_adjusted_strength": 93505.30823592909, + "adaptive_interval": 5, + "session": "ny", + "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": "OrderSendResult(retcode=10009, deal=508506612, order=560690972, volume=0.1, price=4186.98, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087520, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4187.05, stoplimit=0.0, sl=4181.44009902176, tp=4200.444752445599, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-02T21:00:01.869508", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 87.16, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 34.84893980267297, + "risk_adjusted_strength": 94595.20323478205, + "adaptive_interval": 5, + "session": "ny", + "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": "OrderSendResult(retcode=10009, deal=508639732, order=560845433, volume=0.1, price=4196.88, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087521, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4196.75, stoplimit=0.0, sl=4192.121468613154, tp=4207.656328467115, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-02T21:45:02.626320", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 88.76, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 34.84893980267297, + "risk_adjusted_strength": 92306.78311213526, + "adaptive_interval": 5, + "session": "ny", + "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": "OrderSendResult(retcode=10009, deal=508712897, order=560928109, volume=0.1, price=4210.45, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087523, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4210.05, stoplimit=0.0, sl=4204.944212121386, tp=4222.149469696533, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-03T17:00:06.841820", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 99.01, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 46.940390834700004, + "risk_adjusted_strength": 83670.70705993928, + "adaptive_interval": 15, + "session": "ny", + "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": "OrderSendResult(retcode=10009, deal=511510378, order=563962292, volume=0.09, price=4215.46, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087524, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.09, price=4216.47, stoplimit=0.0, sl=4207.920880005341, tp=4237.212799986648, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-03T17:55:15.633690", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 98.91, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 46.940390834700004, + "risk_adjusted_strength": 83244.24420344245, + "adaptive_interval": 5, + "session": "ny", + "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": "OrderSendResult(retcode=10009, deal=511699655, order=564160610, volume=0.09, price=4206.76, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087525, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.09, price=4207.04, stoplimit=0.0, sl=4198.631041471649, tp=4227.222396320878, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-03T18:00:01.999827", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 98.93, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 46.940390834700004, + "risk_adjusted_strength": 81264.39403518823, + "adaptive_interval": 5, + "session": "ny", + "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": "OrderSendResult(retcode=10009, deal=511734010, order=564196164, volume=0.08, price=4201.04, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087526, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.08, price=4200.96, stoplimit=0.0, sl=4192.116105763751, tp=4222.404735590624, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-04T17:15:07.427154", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 90.33, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 63.71558532160071, + "risk_adjusted_strength": 69756.58765206054, + "adaptive_interval": 15, + "session": "ny", + "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": "OrderSendResult(retcode=10009, deal=514641570, order=567326993, volume=0.1, price=4210.53, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087527, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4210.57, stoplimit=0.0, sl=4203.832415791341, tp=4226.7839605216495, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + }, + { + "timestamp": "2025-12-04T20:30:06.162421", + "version": "V1.6_Adaptive_Complete", + "symbol": "XAUUSD", + "entry_signal": 1, + "confidence": 93.46, + "adaptive_threshold": 70, + "signal_quality": "excellent", + "market_regime": "ranging", + "regime_strength": 65.90097047675054, + "risk_adjusted_strength": 79422.45120236522, + "adaptive_interval": 15, + "session": "ny", + "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": "OrderSendResult(retcode=10009, deal=515122043, order=567873192, volume=0.1, price=4205.16, bid=0.0, ask=0.0, comment='Request executed', request_id=2553087528, retcode_external=0, request=TradeRequest(action=1, magic=234000, order=0, symbol='XAUUSD', volume=0.1, price=4205.2, stoplimit=0.0, sl=4200.731469788589, tp=4215.706325528528, deviation=20, type=0, type_filling=1, type_time=0, expiration=0, comment='TradingBot_V1.6', position=0, position_by=0))" + } +] \ No newline at end of file