]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
refactor(qav3): refine get_trade_interpolation_natr() interpolation
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sat, 7 Jun 2025 18:56:17 +0000 (20:56 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Sat, 7 Jun 2025 18:56:17 +0000 (20:56 +0200)
range

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
quickadapter/user_data/strategies/QuickAdapterV3.py

index 15d402c69e663e8f8c414e1ac87788b8443154d5..0fa4f93f8b655d6db8d029741e31ab9b7de9cbef 100644 (file)
@@ -529,16 +529,22 @@ class QuickAdapterV3(IStrategy):
         entry_natr = trade_label_natr.iloc[0]
         if isna(entry_natr) or entry_natr < 0:
             return None
+        if len(trade_label_natr) == 1:
+            return entry_natr
         current_natr = trade_label_natr.iloc[-1]
         if isna(current_natr) or current_natr < 0:
             return None
+        median_natr = trade_label_natr.median()
+        interpolation_values = [current_natr, median_natr, entry_natr]
         trade_volatility_quantile = calculate_quantile(
             trade_label_natr.to_numpy(), entry_natr
         )
         if isna(trade_volatility_quantile):
             return None
         return np.interp(
-            trade_volatility_quantile, [0.0, 1.0], [current_natr, entry_natr]
+            trade_volatility_quantile,
+            np.linspace(0.0, 1.0, len(interpolation_values)),
+            interpolation_values,
         )
 
     def get_trade_moving_average_natr(