]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
fix(qav3): position adjusment enablement/disablement
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 21 Jul 2025 18:39:17 +0000 (20:39 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 21 Jul 2025 18:39:17 +0000 (20:39 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
quickadapter/user_data/strategies/QuickAdapterV3.py

index e66ed85fc6c0d6db3f893bbfa0f3f4d6b3b74399..672b25375d66903077ffbb7af6f022b877298be3 100644 (file)
@@ -904,22 +904,20 @@ class QuickAdapterV3(IStrategy):
         ):
             return "maxima_detected_long"
 
-        end_partial_exit_stage = list(self.partial_exit_stages.keys())[-1]
-        final_exit_stage = end_partial_exit_stage + 1
         exit_stage: int = trade.get_custom_data("exit_stage", 0)
         if self.position_adjustment_enable:
             if exit_stage in self.partial_exit_stages:
                 return None
             natr_ratio_percent = 1.0
         else:
-            if exit_stage in self.partial_exit_stages:
-                trade.set_custom_data(key="exit_stage", value=final_exit_stage)
             natr_ratio_percent = 0.7
 
         take_profit_price = self.get_take_profit_price(df, trade, natr_ratio_percent)
         if isna(take_profit_price):
             return None
 
+        end_partial_exit_stage = list(self.partial_exit_stages.keys())[-1]
+        final_exit_stage = end_partial_exit_stage + 1
         trade_exit = QuickAdapterV3.can_take_profit(
             trade, current_rate, take_profit_price
         )
@@ -932,6 +930,8 @@ class QuickAdapterV3(IStrategy):
                 ),
             )
         if trade_exit:
+            if exit_stage in self.partial_exit_stages:
+                trade.set_custom_data(key="exit_stage", value=final_exit_stage)
             return f"take_profit_{trade.trade_direction}_{final_exit_stage}"
 
         return None