Update data_manager.py
Browse files- data_manager.py +38 -5
data_manager.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
# data_manager.py (Updated to V10.
|
| 2 |
import os
|
| 3 |
import asyncio
|
| 4 |
import httpx
|
|
@@ -81,7 +81,7 @@ class DataManager:
|
|
| 81 |
print(f"❌ [DataManager V9.8] فشل تهيئة الرانكر V9.8: {e}")
|
| 82 |
self.layer1_ranker = None
|
| 83 |
|
| 84 |
-
print("✅ DataManager initialized - V10.
|
| 85 |
|
| 86 |
async def _load_markets(self):
|
| 87 |
try:
|
|
@@ -508,11 +508,44 @@ class DataManager:
|
|
| 508 |
except Exception:
|
| 509 |
return None
|
| 510 |
|
| 511 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 512 |
try:
|
| 513 |
-
|
|
|
|
|
|
|
|
|
|
| 514 |
except Exception:
|
| 515 |
return None
|
|
|
|
| 516 |
|
| 517 |
async def get_whale_trading_signal(self, symbol, whale_data, market_context):
|
| 518 |
try:
|
|
@@ -520,4 +553,4 @@ class DataManager:
|
|
| 520 |
except Exception as e:
|
| 521 |
return {'action': 'HOLD', 'confidence': 0.3, 'reason': f'Error: {str(e)}', 'source': 'whale_analysis'}
|
| 522 |
|
| 523 |
-
print("✅ DataManager loaded - V10.
|
|
|
|
| 1 |
+
# data_manager.py (Updated to V10.2 - Whale Learning Data Link)
|
| 2 |
import os
|
| 3 |
import asyncio
|
| 4 |
import httpx
|
|
|
|
| 81 |
print(f"❌ [DataManager V9.8] فشل تهيئة الرانكر V9.8: {e}")
|
| 82 |
self.layer1_ranker = None
|
| 83 |
|
| 84 |
+
print("✅ DataManager initialized - V10.2 (Whale Learning Data Link)")
|
| 85 |
|
| 86 |
async def _load_markets(self):
|
| 87 |
try:
|
|
|
|
| 508 |
except Exception:
|
| 509 |
return None
|
| 510 |
|
| 511 |
+
# 🔴 --- START OF CHANGE (V10.2) --- 🔴
|
| 512 |
+
async def get_symbol_daily_volume(self, symbol: str) -> float:
|
| 513 |
+
"""
|
| 514 |
+
(جديد) دالة مساعدة لجلب حجم التداول اليومي (بالدولار) لعملة واحدة.
|
| 515 |
+
(تستخدم في إعادة التحليل).
|
| 516 |
+
"""
|
| 517 |
+
try:
|
| 518 |
+
if not self.exchange: return 0.0
|
| 519 |
+
ticker = self.exchange.fetch_ticker(symbol)
|
| 520 |
+
if not ticker: return 0.0
|
| 521 |
+
|
| 522 |
+
current_price = ticker.get('last', 0)
|
| 523 |
+
quote_volume = ticker.get('quoteVolume', 0)
|
| 524 |
+
|
| 525 |
+
if quote_volume is not None and quote_volume > 0:
|
| 526 |
+
return float(quote_volume)
|
| 527 |
+
elif current_price is not None and current_price > 0:
|
| 528 |
+
base_volume = ticker.get('baseVolume', 0)
|
| 529 |
+
if base_volume is not None:
|
| 530 |
+
return float(base_volume) * float(current_price)
|
| 531 |
+
|
| 532 |
+
return 0.0
|
| 533 |
+
except Exception:
|
| 534 |
+
return 0.0
|
| 535 |
+
|
| 536 |
+
async def get_whale_data_for_symbol(self, symbol: str, daily_volume_usd: float = 0.0):
|
| 537 |
+
"""
|
| 538 |
+
(محدث V10.2)
|
| 539 |
+
تمرير حجم التداول اليومي إلى مراقب الحيتان لتفعيل المقاييس النسبية.
|
| 540 |
+
"""
|
| 541 |
try:
|
| 542 |
+
if self.whale_monitor:
|
| 543 |
+
return await self.whale_monitor.get_symbol_whale_activity(symbol, daily_volume_usd=daily_volume_usd)
|
| 544 |
+
else:
|
| 545 |
+
return None
|
| 546 |
except Exception:
|
| 547 |
return None
|
| 548 |
+
# 🔴 --- END OF CHANGE --- 🔴
|
| 549 |
|
| 550 |
async def get_whale_trading_signal(self, symbol, whale_data, market_context):
|
| 551 |
try:
|
|
|
|
| 553 |
except Exception as e:
|
| 554 |
return {'action': 'HOLD', 'confidence': 0.3, 'reason': f'Error: {str(e)}', 'source': 'whale_analysis'}
|
| 555 |
|
| 556 |
+
print("✅ DataManager loaded - V10.2 (Whale Learning Data Link)")
|