#!/usr/bin/env python3 """ Script to add News Filter cell to notebook """ import json import sys notebook_path = "TradingBot_V1.6_Adaptive_Complete_CORRECTED.ipynb" print(f"📖 Loading notebook: {notebook_path}") with open(notebook_path, 'r', encoding='utf-8') as f: notebook = json.load(f) # Create News Filter Info Cell (Markdown) news_filter_info_cell = { "cell_type": "markdown", "metadata": {}, "source": [ "## 📰 News Filter - High-Impact Event Protection\n", "\n", "**Status:** ACTIVE - Blockiert Trading 30min vor/nach High-Impact News\n", "\n", "### 🛡️ Schutz vor:\n", "- **NFP (Non-Farm Payrolls)** - 1. Freitag/Monat, 13:30 UTC\n", "- **CPI (Consumer Price Index)** - Mitte Monat, 13:30 UTC\n", "- **FOMC (Fed Interest Rate)** - 8x/Jahr, 19:00 UTC\n", "- **Retail Sales, PMI, etc.**\n", "\n", "### ✅ Features:\n", "- 30min Buffer vor/nach Event\n", "- Manuelle Event-Liste (keine API nötig)\n", "- Einfach zu warten\n", "- Offline-fähig\n", "\n", "### 📝 Event Management:\n", "- Events konfigurieren: `news_events_manual.json`\n", "- Wöchentlich Updates: Checke ForexFactory Calendar\n", "\n", "### 💰 Erwarteter Impact:\n", "- Verhindert $400-600/Monat News-Losses\n", "- Trading-Zeit reduziert: ~0.4% (minimal)\n", "- ROI: EXTREM HOCH ✅\n" ] } # Create News Filter Integration Cell (Code) news_filter_integration_cell = { "cell_type": "code", "execution_count": None, "metadata": {}, "outputs": [], "source": [ "# ==========================================\n", "# NEWS FILTER INTEGRATION\n", "# ==========================================\n", "\n", "from news_filter_integration import create_news_filter_wrapper\n", "\n", "# Backup original function (if not already backed up)\n", "if '_original_execute_trade_before_news' not in dir():\n", " _original_execute_trade_before_news = execute_trade_v2_adaptive\n", " print(\"✅ Original execute_trade_v2_adaptive saved\")\n", "\n", "# Wrap with news filter\n", "execute_trade_v2_adaptive = create_news_filter_wrapper(\n", " _original_execute_trade_before_news\n", ")\n", "\n", "print(\"✅ NEWS FILTER ACTIVATED\")\n", "print(\"-\" * 60)\n", "print(\"Protection: Trading blocked 30min before/after HIGH-IMPACT news\")\n", "print(\"Events monitored:\")\n", "print(\" • NFP (Non-Farm Payrolls)\")\n", "print(\" • CPI (Consumer Price Index)\")\n", "print(\" • FOMC (Fed Interest Rate Decision)\")\n", "print(\" • Retail Sales, PMI, GDP\")\n", "print(\" • Other high-impact USD/EUR/GBP events\")\n", "print(\"-\" * 60)\n", "print(\"\\n📝 To add events: Edit news_events_manual.json\")\n", "print(\"💡 Recommended: Weekly check ForexFactory calendar\")\n" ] } # Find position to insert (after Cell 30 - execute_trade integration) # We want to insert after the telegram integration cells insert_position = 31 # After Cell 30 print(f"\n📝 Inserting News Filter cells at position {insert_position}...") notebook['cells'].insert(insert_position, news_filter_info_cell) notebook['cells'].insert(insert_position + 1, news_filter_integration_cell) # Update cell count new_total = len(notebook['cells']) print(f"✅ New total cells: {new_total}") # Save notebook print(f"\n💾 Saving notebook...") with open(notebook_path, 'w', encoding='utf-8') as f: json.dump(notebook, f, indent=1, ensure_ascii=False) print("✅ Notebook updated successfully!") print(f"\n📋 Added cells:") print(f" Cell {insert_position}: News Filter Info (Markdown)") print(f" Cell {insert_position + 1}: News Filter Integration (Code)") print(f"\n🎯 News Filter is now at positions {insert_position}-{insert_position + 1}") print(f" (Total cells: {new_total})") print("\n📝 NEXT STEPS:") print(" 1. Open notebook") print(f" 2. Run Cell {insert_position + 1} (News Filter Integration)") print(" 3. Add upcoming events to news_events_manual.json") print(" 4. Done! Bot is protected from news events!")