Riy777 commited on
Commit
6b00681
·
1 Parent(s): 307847c

Update data_manager.py

Browse files
Files changed (1) hide show
  1. data_manager.py +23 -5
data_manager.py CHANGED
@@ -1,4 +1,4 @@
1
- # data_manager.py (Updated to V7.3 - Increased L1 Threshold to 0.50)
2
  import os
3
  import asyncio
4
  import httpx
@@ -19,15 +19,18 @@ except ImportError:
19
 
20
  from ml_engine.indicators import AdvancedTechnicalAnalyzer
21
  from ml_engine.monte_carlo import MonteCarloAnalyzer
 
22
  from ml_engine.patterns import ChartPatternAnalyzer
23
 
24
  logging.getLogger("httpx").setLevel(logging.WARNING)
25
  logging.getLogger("httpcore").setLevel(logging.WARNING)
26
 
27
  class DataManager:
28
- def __init__(self, contracts_db, whale_monitor):
 
29
  self.contracts_db = contracts_db or {}
30
  self.whale_monitor = whale_monitor
 
31
 
32
  try:
33
  self.exchange = ccxt.kucoin({
@@ -47,11 +50,23 @@ class DataManager:
47
 
48
  self.technical_analyzer = AdvancedTechnicalAnalyzer()
49
  self.monte_carlo_analyzer = MonteCarloAnalyzer()
50
- self.pattern_analyzer = ChartPatternAnalyzer()
51
 
52
  async def initialize(self):
53
  self.http_client = httpx.AsyncClient(timeout=30.0)
54
  await self._load_markets()
 
 
 
 
 
 
 
 
 
 
 
 
55
  print("✅ DataManager initialized - V7.3 (L1 Threshold @ 0.50)")
56
 
57
  async def _load_markets(self):
@@ -384,6 +399,7 @@ class DataManager:
384
 
385
  task_indicators = self.technical_analyzer.calculate_all_indicators(df, '1h')
386
  task_mc = self.monte_carlo_analyzer.generate_1h_price_distribution(ohlcv_1h)
 
387
  task_pattern = self.pattern_analyzer.detect_chart_patterns(ohlcv_1h)
388
 
389
  results = await asyncio.gather(task_mc, task_pattern, return_exceptions=True)
@@ -566,11 +582,13 @@ class DataManager:
566
  for i, (timeframe, limit) in enumerate(timeframes):
567
  result = timeframe_results[i]
568
  if isinstance(result, Exception): continue
569
- if result and len(result) >= 10:
 
570
  ohlcv_data[timeframe] = result
571
  successful_timeframes += 1
572
 
573
- if successful_timeframes >= min_required_timeframes and ohlcv_data:
 
574
  try:
575
  current_price = await self.get_latest_price_async(symbol)
576
  if current_price is None:
 
1
+ # data_manager.py (Updated to V7.3 - V8 Pattern Engine Init)
2
  import os
3
  import asyncio
4
  import httpx
 
19
 
20
  from ml_engine.indicators import AdvancedTechnicalAnalyzer
21
  from ml_engine.monte_carlo import MonteCarloAnalyzer
22
+ # (V8-MODIFICATION) استيراد المحرك الصحيح (V8)
23
  from ml_engine.patterns import ChartPatternAnalyzer
24
 
25
  logging.getLogger("httpx").setLevel(logging.WARNING)
26
  logging.getLogger("httpcore").setLevel(logging.WARNING)
27
 
28
  class DataManager:
29
+ # (V8-MODIFICATION) قبول r2_service
30
+ def __init__(self, contracts_db, whale_monitor, r2_service=None):
31
  self.contracts_db = contracts_db or {}
32
  self.whale_monitor = whale_monitor
33
+ self.r2_service = r2_service # (V8-MODIFICATION) الإضافة الجديدة
34
 
35
  try:
36
  self.exchange = ccxt.kucoin({
 
50
 
51
  self.technical_analyzer = AdvancedTechnicalAnalyzer()
52
  self.monte_carlo_analyzer = MonteCarloAnalyzer()
53
+ self.pattern_analyzer = None # (V8-MODIFICATION) سيتم تهيئته في initialize
54
 
55
  async def initialize(self):
56
  self.http_client = httpx.AsyncClient(timeout=30.0)
57
  await self._load_markets()
58
+
59
+ # (V8-MODIFICATION) تهيئة محرك الأنماط V8 (ML-Based)
60
+ print(" > [DataManager] تهيئة محرك الأنماط V8 (ML-Based)...")
61
+ try:
62
+ self.pattern_analyzer = ChartPatternAnalyzer(r2_service=self.r2_service)
63
+ await self.pattern_analyzer.initialize() # (تحميل النموذج والمقياس من R2)
64
+ except Exception as e:
65
+ print(f"❌ [DataManager] فشل تهيئة محرك الأنماط V8: {e}")
66
+ # (العودة للوضع الآمن إذا فشل التحميل)
67
+ self.pattern_analyzer = ChartPatternAnalyzer(r2_service=None)
68
+ # --- (نهاية الإضافة) ---
69
+
70
  print("✅ DataManager initialized - V7.3 (L1 Threshold @ 0.50)")
71
 
72
  async def _load_markets(self):
 
399
 
400
  task_indicators = self.technical_analyzer.calculate_all_indicators(df, '1h')
401
  task_mc = self.monte_carlo_analyzer.generate_1h_price_distribution(ohlcv_1h)
402
+ # (V8-MODIFICATION) استخدام الدالة الجديدة
403
  task_pattern = self.pattern_analyzer.detect_chart_patterns(ohlcv_1h)
404
 
405
  results = await asyncio.gather(task_mc, task_pattern, return_exceptions=True)
 
582
  for i, (timeframe, limit) in enumerate(timeframes):
583
  result = timeframe_results[i]
584
  if isinstance(result, Exception): continue
585
+ # (V8-MODIFICATION) زيادة الحد الأدنى من الشموع لاستيعاب المؤشرات
586
+ if result and len(result) >= 200: # (كان 10)
587
  ohlcv_data[timeframe] = result
588
  successful_timeframes += 1
589
 
590
+ # (V8-MODIFICATION) زيادة الحد الأدنى للأطر الزمنية
591
+ if successful_timeframes >= 3 and ohlcv_data: # (كان 2)
592
  try:
593
  current_price = await self.get_latest_price_async(symbol)
594
  if current_price is None: