]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
refactor(qav3): cleanup zigzag()
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sat, 26 Apr 2025 21:48:55 +0000 (23:48 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Sat, 26 Apr 2025 21:48:55 +0000 (23:48 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py
quickadapter/user_data/strategies/Utils.py

index d13441cf6ea8633be91051224f938d161d6d18ee..f3b1c2ea269ca9270155f36f49e76846fcfdcceb 100644 (file)
@@ -898,20 +898,21 @@ def zigzag(
         return [], [], []
 
     for i in range(i + 1, len(df)):
+        last_pivot_val = pivots_values[-1]
         if state == 1:
-            if highs[i] > pivots_values[-1]:
+            if highs[i] > last_pivot_val:
                 update_last_pivot(i, highs[i], 1)
-            elif (pivots_values[-1] - lows[i]) / pivots_values[-1] >= thresholds[
-                i
-            ] and (i - last_pivot_pos) >= depth:
+            elif (last_pivot_val - lows[i]) / last_pivot_val >= thresholds[i] and (
+                i - last_pivot_pos
+            ) >= depth:
                 add_pivot(i, lows[i], -1)
                 state = -1
         elif state == -1:
-            if lows[i] < pivots_values[-1]:
+            if lows[i] < last_pivot_val:
                 update_last_pivot(i, lows[i], -1)
-            elif (highs[i] - pivots_values[-1]) / pivots_values[-1] >= thresholds[
-                i
-            ] and (i - last_pivot_pos) >= depth:
+            elif (highs[i] - last_pivot_val) / last_pivot_val >= thresholds[i] and (
+                i - last_pivot_pos
+            ) >= depth:
                 add_pivot(i, highs[i], 1)
                 state = 1
 
index 3d44ae9aee5402428c9a51343bd4a8518b0bda9b..7d136076853d52757f83c01fae48a3d0d2245ae3 100644 (file)
@@ -353,20 +353,21 @@ def zigzag(
         return [], [], []
 
     for i in range(i + 1, len(df)):
+        last_pivot_val = pivots_values[-1]
         if state == 1:
-            if highs[i] > pivots_values[-1]:
+            if highs[i] > last_pivot_val:
                 update_last_pivot(i, highs[i], 1)
-            elif (pivots_values[-1] - lows[i]) / pivots_values[-1] >= thresholds[
-                i
-            ] and (i - last_pivot_pos) >= depth:
+            elif (last_pivot_val - lows[i]) / last_pivot_val >= thresholds[i] and (
+                i - last_pivot_pos
+            ) >= depth:
                 add_pivot(i, lows[i], -1)
                 state = -1
         elif state == -1:
-            if lows[i] < pivots_values[-1]:
+            if lows[i] < last_pivot_val:
                 update_last_pivot(i, lows[i], -1)
-            elif (highs[i] - pivots_values[-1]) / pivots_values[-1] >= thresholds[
-                i
-            ] and (i - last_pivot_pos) >= depth:
+            elif (highs[i] - last_pivot_val) / last_pivot_val >= thresholds[i] and (
+                i - last_pivot_pos
+            ) >= depth:
                 add_pivot(i, highs[i], 1)
                 state = 1