#!/usr/bin/env python3 """ šŸŽØ Add Market Regime Indicator Cell to Notebook Shows live regime status with visual indicator """ import json from datetime import datetime NOTEBOOK_PATH = "TradingBot_V1.6_Adaptive_Complete_CORRECTED.ipynb" def add_regime_indicator(): """Add regime indicator cell""" print("=" * 70) print("šŸŽØ Adding Market Regime Indicator") print("=" * 70) # Load notebook with open(NOTEBOOK_PATH, 'r', encoding='utf-8') as f: nb = json.load(f) # Create regime indicator cell regime_indicator_code = """# ========================================== # šŸ“Š 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") """ new_cell = { "cell_type": "code", "execution_count": None, "metadata": {}, "outputs": [], "source": regime_indicator_code.split('\n') } # Find good position (after execute_trade cells) insert_pos = len(nb['cells']) - 1 # Before last cell # Insert nb['cells'].insert(insert_pos, new_cell) # Backup backup_path = NOTEBOOK_PATH.replace('.ipynb', f'_backup_regime_indicator_{datetime.now().strftime("%Y%m%d_%H%M%S")}.ipynb') with open(backup_path, 'w', encoding='utf-8') as f: json.dump(nb, f, indent=1, ensure_ascii=False) # Save with open(NOTEBOOK_PATH, 'w', encoding='utf-8') as f: json.dump(nb, f, indent=1, ensure_ascii=False) print(f"āœ… Regime Indicator cell added at position {insert_pos}") print(f"šŸ’¾ Backup: {backup_path}") print("\n" + "=" * 70) print("āœ… REGIME INDICATOR ADDED!") print("=" * 70) print("\nā° NEXT STEPS:") print(" 1. Open Jupyter Notebook") print(" 2. Run the new Regime Indicator cell") print(" 3. Call show_current_regime() anytime to check!") print("\nšŸ’” USAGE:") print(" show_current_regime() # Check current regime") return True if __name__ == "__main__": import sys success = add_regime_indicator() sys.exit(0 if success else 1)