]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
refactor(qav3): cleanup numerical stability checks
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 21 Dec 2025 14:13:05 +0000 (15:13 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 21 Dec 2025 14:13:05 +0000 (15:13 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
quickadapter/user_data/strategies/Utils.py

index 4b947e5d39ada8cd6877f5dd2a305a35737ec73c..cb4ab58565a934b46cda4b09d90c463a8c30ac54 100644 (file)
@@ -2185,11 +2185,11 @@ def soft_extremum(series: pd.Series, alpha: float) -> float:
         return np.nanmean(values)
     scaled_values = alpha * values
     max_scaled_values = np.nanmax(scaled_values)
-    if np.isinf(max_scaled_values) or np.isnan(max_scaled_values):
+    if not np.isfinite(max_scaled_values):
         return values[np.nanargmax(scaled_values)]
     shifted_exponentials = np.exp(scaled_values - max_scaled_values)
     sum_exponentials = np.nansum(shifted_exponentials)
-    if sum_exponentials <= 0 or not np.isfinite(sum_exponentials):
+    if not np.isfinite(sum_exponentials) or sum_exponentials <= 0.0:
         return values[np.nanargmax(scaled_values)]
     return nan_average(values, weights=shifted_exponentials)