cob signas

This commit is contained in:
Dobromir Popov
2025-07-02 03:31:37 +03:00
parent 11718bf92f
commit b47805dafc
3 changed files with 92 additions and 5 deletions

View File

@ -476,16 +476,36 @@ class COBIntegration:
async def _analyze_cob_patterns(self, symbol: str, cob_snapshot: COBSnapshot):
"""Analyze COB data for trading patterns and signals"""
try:
# Large liquidity imbalance detection
if abs(cob_snapshot.liquidity_imbalance) > 0.4:
# Enhanced liquidity imbalance detection with dynamic thresholds
imbalance = abs(cob_snapshot.liquidity_imbalance)
# Dynamic threshold based on imbalance strength
if imbalance > 0.8: # Very strong imbalance (>80%)
threshold = 0.05 # 5% threshold for very strong signals
confidence_multiplier = 3.0
elif imbalance > 0.5: # Strong imbalance (>50%)
threshold = 0.1 # 10% threshold for strong signals
confidence_multiplier = 2.5
elif imbalance > 0.3: # Moderate imbalance (>30%)
threshold = 0.15 # 15% threshold for moderate signals
confidence_multiplier = 2.0
else: # Weak imbalance
threshold = 0.2 # 20% threshold for weak signals
confidence_multiplier = 1.5
# Generate signal if imbalance exceeds threshold
if abs(cob_snapshot.liquidity_imbalance) > threshold:
signal = {
'timestamp': cob_snapshot.timestamp.isoformat(),
'type': 'liquidity_imbalance',
'side': 'buy' if cob_snapshot.liquidity_imbalance > 0 else 'sell',
'strength': abs(cob_snapshot.liquidity_imbalance),
'confidence': min(1.0, abs(cob_snapshot.liquidity_imbalance) * 2)
'confidence': min(1.0, abs(cob_snapshot.liquidity_imbalance) * confidence_multiplier),
'threshold_used': threshold,
'signal_strength': 'very_strong' if imbalance > 0.8 else 'strong' if imbalance > 0.5 else 'moderate' if imbalance > 0.3 else 'weak'
}
self.cob_signals[symbol].append(signal)
logger.info(f"COB SIGNAL: {symbol} {signal['side'].upper()} signal generated - imbalance: {cob_snapshot.liquidity_imbalance:.3f}, confidence: {signal['confidence']:.3f}")
# Cleanup old signals
self.cob_signals[symbol] = self.cob_signals[symbol][-100:]