I want you to write code for  a sophisticated Python-based trading signal generation system using Django, NumPy, Pandas, and TA-Lib for advanced financial market analysis. It demonstrates a complex, multi-layered approach to generating trading signals with comprehensive risk assessment and market condition evaluation. Features as below
Two sets of Advanced Technical Analysis
1. First set of analysis to identify consolidation phases and breakouts and provide signals. Consolidation and Breakout Trading Strategy a) Identify Consolidation Use Bollinger Bands: Look for narrowing bands ("squeeze"), indicating reduced volatility. Confirm with ATR: Check that ATR is decreasing, signifying a low-volatility environment. Draw Support and Resistance Levels: Mark horizontal support and resistance based on recent price action. b) Prepare for a Breakout Volume Analysis: Monitor trading volume. Low volume during consolidation signals a buildup of energy. Send a Possible Breakout signal for sudden spikes in volume, as this often coincides with a breakout. MACD Convergence: Ensure the MACD lines are converging, indicating reduced momentum and a potential directional shift. Bollinger Band Break: Anticipate a breakout when price moves outside the narrowed bands. c) Entry Trigger Confirm the Breakout: Wait for a full candle (body, not just wicks) to close above resistance (bullish breakout) or below support (bearish breakout). Check that the breakout is accompanied by: Rising ATR (volatility is increasing). A surge in volume (confirming strength). MACD crossover in the direction of the breakout. Signals are either bullish breakout or bearish breakout. 
2. Second set of analysis that uses technical indicators to generate signals for 1m and 5m timeframes concurrently using  asynchronous processing for signal generation. The first indicator is EMA with a length of 2 and a smoothing SMA line with a smoothing length of 7. The second indicator is True Strength Index with a long of 15, short 7 and siglen 3 Note that this indicator is not in talib so you will calculate manually using the specified parameters. The third indicator is RSI with a length of 14. If for EMA the EMA crossess above smoothing SMA line or is above smoothing SMA line with less than three closed candles, For True Strength Index the True Strength Index crossess or is above the signal and For RSI the RSI is below 40, you generate a buy signal. But if for EMA the EMA crossess below smoothing SMA line or is below smoothing SMA line with less than three closed candles, For True Strength Index the True Strength Index crossess or is below the signal and For RSI the RSI is above 50 then generate a sell signal. The reason I say less than three closed candles is because I only want signals that I can enter early. I don't want signals that are almost coming to an end of the trend. Also, the RSI values I gave are the minimum but the lower it is from 40 the better for buy signal and the higher it is from 50 the better for sell signal. So always record the RSI so I may know how far it is. Ensure robust error handling and logging to console and file using Loguru. Use complex functionalities to make the bot robust. Fetch both historical and real time data via websockets from binance using public APIs. Fetch only USDT pair symbols in futures.  Do not use ccxt library if possible. Fetch data concurrently and connect up to 10 symbols to a single API call and 10 symbols to a single websocket connection to fetch all USDT pairs in futures. Let them run concurrently. I repeat use public APIs so dont ask for API key or secret key, public api doesnt need that. Once historical data has been fetched, start updating it with real time data from websockets for the data to be continous. After each candle closes in websockets, that candle should be added to historical data. Also remember to fetc volume data for volume analysis. Ensure you save price data and signals to  django ORM model. Also write models.py code. 
Implements sophisticated signal generation logic with multiple confirmation criteria
Calculates complex market metrics like overal market trend using  1h timeframe, the trend strength and market regime classification.
Robust Error Handling Comprehensive exception handling across all methods. Detailed error logging using Loguru. Graceful error management with fallback mechanisms. Modular Architecture. Clear separation of concerns between different classes. Independent modules for: Advanced Technical Indicators. Signal Analysis. Signal Generation. Flexible design allowing easy extension and modification. Risk Management. Advanced risk metric calculations. Dynamic stop-loss and take-profit determination. Win probability and success rate estimations. Risk-reward ratio computation. Database Integration. Leverages Django ORM for efficient data retrieval. Supports multiple trading pairs and timeframes using asyncio. Atomic database transactions for signal creation. You should be using both historical and real time data from websockets to generate signals for the latest time upto the last closed candle. Implement caching mechanisms where necessary but ensure real time data is updated as required. Generate signals for all the symbols for both 1 minute and 5 minute timeframes concurrently. Each signal should be saved together with the trend, which is determined using 1h timeframe. 1m and 5m signals to be saved seperately. I also want you to categorize the signals as either strong or weak. Example, if a 1m timeframe shows buy, you need to categorize it as either a strong buy or weak buy based on other factors that support the signal e.g trend is bullish, 5m timeframe also show buy, rsi is way below 40(minimum) this makes it strong buy. Also add confirmations to bullish and bearish breakouts and categorize as either strong or weak based on factors that support it like volume, volatility, etc. Assign signal strength based on these factors. The more factors support a signal, the higher the strength, the stronger the signal. Also when saving the signals please specify what set of analysis produced that signal if it is first set for breakout or second set for scalping. Write the code in one file except for models.py wic should be separate.