{
  "is_running": true,
  "ai_available": true,
  "total_symbols": 65,
  "analyzed": 65,
  "ready_to_buy": 0,
  "watching": 0,
  "top_opportunities": [
    {
      "symbol": "WUSDT",
      "score": 40.9,
      "predicted_gain": 0,
      "confidence": 34.3,
      "status": "watching",
      "reason": "",
      "countdown": 0,
      "last_update": "2026-03-21T10:53:16.111091",
      "features": {
        "price_current": 0.0175,
        "ema_diff": 0.32608846426913307,
        "ema_slope": 0.7697590255641321,
        "ema_slope_long": 0.9631615759253331,
        "ema21_slope": 0.4294243115547963,
        "ema_trend_bullish": 1,
        "ema_trend_bearish": 0,
        "bb_bandwidth": 2.7922538153721135,
        "rsi": 100,
        "momentum_3": 0.5747126436781774,
        "momentum_5": 1.156069364161863,
        "near_bb_lower": 0,
        "bb_position": 1.0190342490858848,
        "price_change_recent": 0,
        "early_cycle_score": 0.0,
        "rsi_divergence_bullish": 0,
        "ema_convergence_speed": 0,
        "momentum_acceleration": -0.003322038402743921,
        "volume_precursor": 0,
        "candles_since_bullish_cross": 3
      },
      "smart_criteria": {
        "signal": "ACHAT",
        "score": 65.9,
        "eligible": true,
        "criteria": {
          "bb_squeeze": true,
          "ema9_under_ema21": false,
          "hausse_confirmee": true,
          "baisse_confirmee": false
        },
        "exclusions": {
          "ema_baisse_permanente": false,
          "peu_variations": false,
          "ema9_above_ema21": true
        }
      },
      "smart_signal": "ACHAT",
      "smart_score": 65.9,
      "smart_eligible": true,
      "smart_status": "FRESH CROSSOVER",
      "pattern": "PULLBACK",
      "is_blacklisted": false
    },
    {
      "symbol": "ETHUSDT",
      "score": 99.0,
      "predicted_gain": 0,
      "confidence": 57.6,
      "status": "watching",
      "reason": "",
      "countdown": 0,
      "last_update": "2026-03-21T10:53:27.616878",
      "features": {
        "price_current": 2153.07,
        "ema_diff": -0.031015255652641148,
        "ema_slope": -0.05467688828433041,
        "ema_slope_long": -0.06331112489746506,
        "ema21_slope": -0.0487215857666059,
        "ema_trend_bullish": 0,
        "ema_trend_bearish": 1,
        "bb_bandwidth": 0.3151817825932931,
        "rsi": 30.177993527510495,
        "momentum_3": -0.10068484252332074,
        "momentum_5": -0.11134462553408937,
        "near_bb_lower": 1,
        "bb_position": 0.031717758048652435,
        "price_change_recent": 0,
        "early_cycle_score": 4.220719482552852,
        "rsi_divergence_bullish": 0,
        "ema_convergence_speed": 0.025324316895317108,
        "momentum_acceleration": -0.19863167271323212,
        "volume_precursor": 0,
        "candles_since_bullish_cross": 99
      },
      "smart_criteria": {
        "signal": "HOLD",
        "score": 99,
        "eligible": false,
        "criteria": {
          "bb_squeeze": true,
          "ema9_under_ema21": false,
          "hausse_confirmee": true,
          "baisse_confirmee": false
        },
        "exclusions": {
          "ema_baisse_permanente": false,
          "peu_variations": true,
          "ema9_above_ema21": true
        }
      },
      "smart_signal": "HOLD",
      "smart_score": 99,
      "smart_eligible": false,
      "smart_status": "En attente",
      "pattern": "NEUTRAL",
      "is_blacklisted": false
    },
    {
      "symbol": "AVAXUSDT",
      "score": 95.0,
      "predicted_gain": 0,
      "confidence": 72.0,
      "status": "watching",
      "reason": "",
      "countdown": 0,
      "last_update": "2026-03-21T10:53:24.137033",
      "features": {
        "price_current": 9.5,
        "ema_diff": -0.18104038440644765,
        "ema_slope": -0.14354011268441003,
        "ema_slope_long": -0.5551032179966714,
        "ema21_slope": -0.3355500620385209,
        "ema_trend_bullish": 0,
        "ema_trend_bearish": 1,
        "bb_bandwidth": 1.0071338648762074,
        "rsi": 0.0,
        "momentum_3": -0.10515247108306822,
        "momentum_5": -0.10515247108306822,
        "near_bb_lower": 1,
        "bb_position": 0.16666666666666666,
        "price_change_recent": 0,
        "early_cycle_score": 0.0,
        "rsi_divergence_bullish": 0,
        "ema_convergence_speed": 0,
        "momentum_acceleration": -0.10515247108306822,
        "volume_precursor": 0,
        "candles_since_bullish_cross": 99
      },
      "smart_criteria": {
        "signal": "HOLD",
        "score": 95,
        "eligible": false,
        "criteria": {
          "bb_squeeze": true,
          "ema9_under_ema21": true,
          "hausse_confirmee": true,
          "baisse_confirmee": false
        },
        "exclusions": {
          "ema_baisse_permanente": false,
          "peu_variations": false,
          "ema9_above_ema21": false
        }
      },
      "smart_signal": "HOLD",
      "smart_score": 95,
      "smart_eligible": false,
      "smart_status": "En attente",
      "pattern": "NEUTRAL",
      "is_blacklisted": false
    },
    {
      "symbol": "DOTUSDT",
      "score": 95.0,
      "predicted_gain": 0,
      "confidence": 87.75,
      "status": "watching",
      "reason": "",
      "countdown": 0,
      "last_update": "2026-03-21T10:53:15.281087",
      "features": {
        "price_current": 1.495,
        "ema_diff": -0.12304083909162444,
        "ema_slope": 0.09029065751926843,
        "ema_slope_long": -0.5548383124294936,
        "ema21_slope": -0.31633565698640104,
        "ema_trend_bullish": 0,
        "ema_trend_bearish": 1,
        "bb_bandwidth": 1.1639660037099793,
        "rsi": 48.00000000000025,
        "momentum_3": 0.13395847287340934,
        "momentum_5": 0.33557046979866545,
        "near_bb_lower": 0,
        "bb_position": 0.5575054632785368,
        "price_change_recent": 0,
        "early_cycle_score": 0.0,
        "rsi_divergence_bullish": 0,
        "ema_convergence_speed": 0,
        "momentum_acceleration": -0.06751902880556254,
        "volume_precursor": 0,
        "candles_since_bullish_cross": 99
      },
      "smart_criteria": {
        "signal": "HOLD",
        "score": 95,
        "eligible": false,
        "criteria": {
          "bb_squeeze": true,
          "ema9_under_ema21": true,
          "hausse_confirmee": true,
          "baisse_confirmee": false
        },
        "exclusions": {
          "ema_baisse_permanente": false,
          "peu_variations": false,
          "ema9_above_ema21": false
        }
      },
      "smart_signal": "HOLD",
      "smart_score": 95,
      "smart_eligible": false,
      "smart_status": "Creux - Attendre rebond (HOLD)",
      "pattern": "NEUTRAL",
      "is_blacklisted": false
    },
    {
      "symbol": "SOLUSDT",
      "score": 94.0,
      "predicted_gain": 0,
      "confidence": 72.5,
      "status": "watching",
      "reason": "",
      "countdown": 0,
      "last_update": "2026-03-21T10:53:23.243847",
      "features": {
        "price_current": 89.94,
        "ema_diff": -0.0593683488818912,
        "ema_slope": -0.10624349673641416,
        "ema_slope_long": -0.13245756321993485,
        "ema21_slope": -0.09330174501137732,
        "ema_trend_bullish": 0,
        "ema_trend_bearish": 1,
        "bb_bandwidth": 0.5213356354239707,
        "rsi": 20.967741935482124,
        "momentum_3": -0.055561729081005845,
        "momentum_5": -0.07776913676259015,
        "near_bb_lower": 1,
        "bb_position": 0.12644013278665697,
        "price_change_recent": 0,
        "early_cycle_score": 5.120398758354567,
        "rsi_divergence_bullish": 0,
        "ema_convergence_speed": 0.0307223925501274,
        "momentum_acceleration": -0.11111728463655825,
        "volume_precursor": 0,
        "candles_since_bullish_cross": 99
      },
      "smart_criteria": {
        "signal": "HOLD",
        "score": 94,
        "eligible": false,
        "criteria": {
          "bb_squeeze": true,
          "ema9_under_ema21": false,
          "hausse_confirmee": true,
          "baisse_confirmee": false
        },
        "exclusions": {
          "ema_baisse_permanente": false,
          "peu_variations": false,
          "ema9_above_ema21": true
        }
      },
      "smart_signal": "HOLD",
      "smart_score": 94,
      "smart_eligible": false,
      "smart_status": "En attente",
      "pattern": "NEUTRAL",
      "is_blacklisted": false
    },
    {
      "symbol": "LTCUSDT",
      "score": 94.0,
      "predicted_gain": 0,
      "confidence": 72.5,
      "status": "watching",
      "reason": "",
      "countdown": 0,
      "last_update": "2026-03-21T10:53:15.869750",
      "features": {
        "price_current": 56.08,
        "ema_diff": -0.11576662170148436,
        "ema_slope": -0.08184918204564225,
        "ema_slope_long": -0.42581660255082765,
        "ema21_slope": -0.22675574375993643,
        "ema_trend_bullish": 0,
        "ema_trend_bearish": 1,
        "bb_bandwidth": 0.8211475199015797,
        "rsi": 26.923076923076863,
        "momentum_3": -0.1779992880028505,
        "momentum_5": -0.12466607301870043,
        "near_bb_lower": 1,
        "bb_position": 0.15569894852823282,
        "price_change_recent": 0,
        "early_cycle_score": 26.768004804578652,
        "rsi_divergence_bullish": 1,
        "ema_convergence_speed": 0.010608028827471902,
        "momentum_acceleration": -0.356252407432443,
        "volume_precursor": 0,
        "candles_since_bullish_cross": 99
      },
      "smart_criteria": {
        "signal": "HOLD",
        "score": 94,
        "eligible": false,
        "criteria": {
          "bb_squeeze": true,
          "ema9_under_ema21": true,
          "hausse_confirmee": true,
          "baisse_confirmee": false
        },
        "exclusions": {
          "ema_baisse_permanente": false,
          "peu_variations": false,
          "ema9_above_ema21": false
        }
      },
      "smart_signal": "HOLD",
      "smart_score": 94,
      "smart_eligible": false,
      "smart_status": "En attente",
      "pattern": "NEUTRAL",
      "is_blacklisted": false
    },
    {
      "symbol": "ENJUSDT",
      "score": 92.0,
      "predicted_gain": 0,
      "confidence": 72.25,
      "status": "watching",
      "reason": "",
      "countdown": 0,
      "last_update": "2026-03-21T10:53:19.901702",
      "features": {
        "price_current": 0.02406,
        "ema_diff": -0.31457363506500696,
        "ema_slope": -0.5612136582508692,
        "ema_slope_long": -0.5665847752173604,
        "ema21_slope": -0.2799904637917487,
        "ema_trend_bullish": 0,
        "ema_trend_bearish": 1,
        "bb_bandwidth": 2.4673149050443057,
        "rsi": 48.53801169590649,
        "momentum_3": 0.2500000000000043,
        "momentum_5": -0.8244023083264582,
        "near_bb_lower": 0,
        "bb_position": 0.293856164023848,
        "price_change_recent": 0,
        "early_cycle_score": 75.0,
        "rsi_divergence_bullish": 1,
        "ema_convergence_speed": 0.15144047284520498,
        "momentum_acceleration": 0.8287515502273761,
        "volume_precursor": 0,
        "candles_since_bullish_cross": 7
      },
      "smart_criteria": {
        "signal": "NO_BUY",
        "score": 92,
        "eligible": false,
        "criteria": {
          "bb_squeeze": true,
          "ema9_under_ema21": true,
          "hausse_confirmee": true,
          "baisse_confirmee": false
        },
        "exclusions": {
          "ema_baisse_permanente": false,
          "peu_variations": false,
          "ema9_above_ema21": false
        }
      },
      "smart_signal": "NO_BUY",
      "smart_score": 92,
      "smart_eligible": false,
      "smart_status": "Pattern invalide (RSI hors zone)",
      "pattern": "CREUX_REBOUND",
      "is_blacklisted": false
    },
    {
      "symbol": "FILUSDT",
      "score": 89.3,
      "predicted_gain": 0,
      "confidence": 67.0,
      "status": "watching",
      "reason": "",
      "countdown": 0,
      "last_update": "2026-03-21T10:53:24.030492",
      "features": {
        "price_current": 0.9,
        "ema_diff": -0.1524223686428942,
        "ema_slope": -0.011916944027026744,
        "ema_slope_long": -0.6294001349293508,
        "ema21_slope": -0.3228420265060939,
        "ema_trend_bullish": 0,
        "ema_trend_bearish": 1,
        "bb_bandwidth": 1.2109510338060483,
        "rsi": 41.66666666666667,
        "momentum_3": -0.11098779134295236,
        "momentum_5": -0.11098779134295236,
        "near_bb_lower": 0,
        "bb_position": 0.2986306928670042,
        "price_change_recent": 0,
        "early_cycle_score": 25.0,
        "rsi_divergence_bullish": 1,
        "ema_convergence_speed": 0,
        "momentum_acceleration": -0.4446919070270461,
        "volume_precursor": 0,
        "candles_since_bullish_cross": 99
      },
      "smart_criteria": {
        "signal": "HOLD",
        "score": 89,
        "eligible": false,
        "criteria": {
          "bb_squeeze": true,
          "ema9_under_ema21": true,
          "hausse_confirmee": true,
          "baisse_confirmee": false
        },
        "exclusions": {
          "ema_baisse_permanente": false,
          "peu_variations": false,
          "ema9_above_ema21": false
        }
      },
      "smart_signal": "HOLD",
      "smart_score": 89,
      "smart_eligible": false,
      "smart_status": "En attente",
      "pattern": "NEUTRAL",
      "is_blacklisted": false
    },
    {
      "symbol": "BNBUSDT",
      "score": 89.0,
      "predicted_gain": 0,
      "confidence": 50,
      "status": "watching",
      "reason": "",
      "countdown": 0,
      "last_update": "2026-03-21T10:53:11.732406",
      "features": {
        "price_current": 642.86,
        "ema_diff": -0.020776845757586655,
        "ema_slope": 0.0014458154501218719,
        "ema_slope_long": -0.09418257044493655,
        "ema21_slope": -0.05698726961473068,
        "ema_trend_bullish": 0,
        "ema_trend_bearish": 1,
        "bb_bandwidth": 0.2439599750449879,
        "rsi": 37.03703703703687,
        "momentum_3": -0.0015555244450652394,
        "momentum_5": 0.01711396343835296,
        "near_bb_lower": 0,
        "bb_position": 0.369328640999464,
        "price_change_recent": 0,
        "early_cycle_score": 12.5,
        "rsi_divergence_bullish": 0.5,
        "ema_convergence_speed": 0,
        "momentum_acceleration": -0.07937048047961508,
        "volume_precursor": 0,
        "candles_since_bullish_cross": 99
      },
      "smart_criteria": {
        "signal": "HOLD",
        "score": 89,
        "eligible": false,
        "criteria": {
          "bb_squeeze": true,
          "ema9_under_ema21": false,
          "hausse_confirmee": true,
          "baisse_confirmee": false
        },
        "exclusions": {
          "ema_baisse_permanente": false,
          "peu_variations": true,
          "ema9_above_ema21": true
        }
      },
      "smart_signal": "HOLD",
      "smart_score": 89,
      "smart_eligible": false,
      "smart_status": "En attente",
      "pattern": "NEUTRAL",
      "is_blacklisted": false
    },
    {
      "symbol": "BTCUSDT",
      "score": 88.3,
      "predicted_gain": 0,
      "confidence": 53.2,
      "status": "watching",
      "reason": "",
      "countdown": 0,
      "last_update": "2026-03-21T10:53:24.440127",
      "features": {
        "price_current": 70585.57,
        "ema_diff": -0.030322285847237816,
        "ema_slope": -0.023163175680164128,
        "ema_slope_long": -0.06737019028914845,
        "ema21_slope": -0.05527319821603284,
        "ema_trend_bullish": 0,
        "ema_trend_bearish": 1,
        "bb_bandwidth": 0.2167425626886854,
        "rsi": 40.18154202228067,
        "momentum_3": -0.0007225220609995077,
        "momentum_5": -0.021288770916959396,
        "near_bb_lower": 0,
        "bb_position": 0.24539672667271392,
        "price_change_recent": 0,
        "early_cycle_score": 13.175669003501667,
        "rsi_divergence_bullish": 0.5,
        "ema_convergence_speed": 0.004054014021010008,
        "momentum_acceleration": -0.06902176741103477,
        "volume_precursor": 0,
        "candles_since_bullish_cross": 9
      },
      "smart_criteria": {
        "signal": "HOLD",
        "score": 88,
        "eligible": false,
        "criteria": {
          "bb_squeeze": true,
          "ema9_under_ema21": false,
          "hausse_confirmee": true,
          "baisse_confirmee": false
        },
        "exclusions": {
          "ema_baisse_permanente": false,
          "peu_variations": true,
          "ema9_above_ema21": true
        }
      },
      "smart_signal": "HOLD",
      "smart_score": 88,
      "smart_eligible": false,
      "smart_status": "En attente",
      "pattern": "NEUTRAL",
      "is_blacklisted": false
    }
  ],
  "ready_signals": [],
  "rotation_opportunities": [],
  "rotation_status": {
    "enabled": false,
    "rotations_this_hour": 0,
    "max_per_hour": 4,
    "remaining_this_hour": 4,
    "hour_reset_in": 2854.422255,
    "total_rotations": 0,
    "last_rotation": null,
    "config": {
      "min_cycle_end_score": 10,
      "min_opportunity_score": 50,
      "min_score_advantage": 5,
      "min_profit_for_rotation": -0.5,
      "min_hold_time_minutes": 10,
      "rotation_cooldown_minutes": 30,
      "max_rotations_per_hour": 4,
      "enabled": false
    }
  },
  "blacklist": {
    "count": 21,
    "symbols": [
      "USDCUSDT",
      "BUSDUSDT",
      "DAIUSDT",
      "TUSDUSDT",
      "USDPUSDT",
      "FDUSDUSDT",
      "PYUSDUSDT",
      "FRAXUSDT",
      "LUSDUSDT",
      "USTCUSDT",
      "EURUSDT",
      "GBPUSDT",
      "PAXGUSDT",
      "XAUTUSDT",
      "WBTCUSDT",
      "WBETHUSDT",
      "STETHUSDT",
      "CBETHUSDT",
      "RETHUSDT",
      "BETHUSDT",
      "LUNCUSDT"
    ],
    "details": {
      "USDCUSDT": {
        "reason": "Stablecoin - USD Coin",
        "expires_in": 0
      },
      "BUSDUSDT": {
        "reason": "Stablecoin - Binance USD",
        "expires_in": 0
      },
      "DAIUSDT": {
        "reason": "Stablecoin - DAI",
        "expires_in": 0
      },
      "TUSDUSDT": {
        "reason": "Stablecoin - TrueUSD",
        "expires_in": 0
      },
      "USDPUSDT": {
        "reason": "Stablecoin - Pax Dollar",
        "expires_in": 0
      },
      "FDUSDUSDT": {
        "reason": "Stablecoin - First Digital USD",
        "expires_in": 0
      },
      "PYUSDUSDT": {
        "reason": "Stablecoin - PayPal USD",
        "expires_in": 0
      },
      "FRAXUSDT": {
        "reason": "Stablecoin - Frax",
        "expires_in": 0
      },
      "LUSDUSDT": {
        "reason": "Stablecoin - Liquity USD",
        "expires_in": 0
      },
      "USTCUSDT": {
        "reason": "Stablecoin - TerraClassicUSD",
        "expires_in": 0
      },
      "EURUSDT": {
        "reason": "Devise fiat - Euro",
        "expires_in": 0
      },
      "GBPUSDT": {
        "reason": "Devise fiat - Livre sterling",
        "expires_in": 0
      },
      "PAXGUSDT": {
        "reason": "Or tokenisé - volatilité trop faible",
        "expires_in": 0
      },
      "XAUTUSDT": {
        "reason": "Or tokenisé Tether Gold",
        "expires_in": 0
      },
      "WBTCUSDT": {
        "reason": "Wrapped Bitcoin - préférer BTCUSDT",
        "expires_in": 0
      },
      "WBETHUSDT": {
        "reason": "Wrapped Beacon ETH",
        "expires_in": 0
      },
      "STETHUSDT": {
        "reason": "Staked ETH - préférer ETHUSDT",
        "expires_in": 0
      },
      "CBETHUSDT": {
        "reason": "Coinbase Wrapped Staked ETH",
        "expires_in": 0
      },
      "RETHUSDT": {
        "reason": "Rocket Pool ETH - préférer ETHUSDT",
        "expires_in": 0
      },
      "BETHUSDT": {
        "reason": "Binance Staked ETH",
        "expires_in": 0
      },
      "LUNCUSDT": {
        "reason": "Luna Classic - balance insuffisante",
        "expires_in": 0
      }
    }
  },
  "blacklisted_symbols": [
    "LUSDUSDT",
    "LUNCUSDT",
    "USTCUSDT",
    "WBETHUSDT",
    "XAUTUSDT",
    "USDCUSDT",
    "EURUSDT",
    "CBETHUSDT",
    "USDPUSDT",
    "STETHUSDT",
    "TUSDUSDT",
    "BUSDUSDT",
    "DAIUSDT",
    "FDUSDUSDT",
    "FRAXUSDT",
    "RETHUSDT",
    "PYUSDUSDT",
    "BETHUSDT",
    "PAXGUSDT",
    "GBPUSDT",
    "WBTCUSDT"
  ],
  "ai_opportunities": [],
  "ai_selected_symbols": [],
  "ai_opportunity_count": 0,
  "dynamic_sltp_enabled": true,
  "smart_summary": {
    "achat": 0,
    "possible": 0,
    "vente": 0,
    "abandonnee": 0,
    "eligible": 0,
    "analyzed": 65
  },
  "by_status": {
    "achat": [],
    "en_surveillance": [],
    "vente": [],
    "abandonnee": []
  },
  "recent_logs": [],
  "cycle_duration_seconds": 20.4,
  "analyzed_symbols": 65
}