File size: 718 Bytes
7f632a8 453b8b2 7f632a8 453b8b2 7f632a8 453b8b2 7f632a8 453b8b2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | class VolumeSurgeAgent:
"""
Detects volume surges compared to recent average volume.
Returns a structured object with surge status and ratio.
"""
def run(self, df, threshold=1.8):
if len(df) < 21:
return {
"volume_surge": False,
"ratio": 0,
"status": "β οΈ Insufficient data"
}
recent_avg = df['Volume'].iloc[-20:-1].mean()
latest_volume = df['Volume'].iloc[-1]
ratio = latest_volume / recent_avg
surge = ratio > threshold
return {
"volume_surge": surge,
"ratio": round(ratio, 2),
"status": "β
Spike" if surge else "Normal"
}
|