cob signas
This commit is contained in:
@ -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:]
|
||||
|
Reference in New Issue
Block a user