]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
refactor(quickadapter): rename trade NATR method
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sat, 29 Aug 2026 21:22:57 +0000 (23:22 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Sat, 29 Aug 2026 21:32:47 +0000 (23:32 +0200)
README.md
quickadapter/user_data/strategies/QuickAdapterV3.py
quickadapter/user_data/strategies/Utils.py

index 54ecffa3387e41a47d25aaea7bbf8882c4cf27ee..3392a943dff4db7ef240475d4a0b3e004e652d67 100644 (file)
--- a/README.md
+++ b/README.md
@@ -61,7 +61,7 @@ below.
 | _Leverage_                                                     |                          |                                                                                                                                                                                                              |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
 | leverage                                                       | `proposed_leverage`      | float [1.0, max_leverage]                                                                                                                                                                                    | Leverage. Fallback to `proposed_leverage` for the pair.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
 | _Exit pricing_                                                 |                          |                                                                                                                                                                                                              |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
-| exit_pricing.trade_price_target_method                         | `moving_average`         | enum {`moving_average`,`quantile_interpolation`,`weighted_average`}                                                                                                                                          | Trade NATR (Normalized Average True Range) computation method.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
+| exit_pricing.trade_natr_method                                 | `moving_average`         | enum {`moving_average`,`quantile_interpolation`,`weighted_average`}                                                                                                                                          | Trade NATR (Normalized Average True Range) aggregation method used to derive stoploss and take-profit distances.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
 | exit_pricing.final_take_profit_retracement_fraction            | 0.25                     | float (0,1]                                                                                                                                                                                                  | Fraction of the final take-profit target distance used as the frozen trailing retracement distance after the final target arms the exit. The final exit tracks the best subsequent per-candle rate and exits only after this material adverse move; elapsed stagnation alone does not exit. Plot annotations show only the current trail boundary from the candle that established it; earlier boundaries are not retained.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
 | _Reversal confirmation_                                        |                          |                                                                                                                                                                                                              |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
 | reversal_confirmation.lookback_period_candles                  | 0                        | int >= 0                                                                                                                                                                                                     | Prior confirming candles; 0 = none. With confirmation enabled, unmeasurable history rejects entries, while a valid current exit may still reduce exposure.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
index eb4b45fdc4a1a7f7ba35799ee577fe1109753bde..13670ab055ac8755814f7adfee57a3ac18af570b 100644 (file)
@@ -45,7 +45,7 @@ from Utils import (
     EXTREMA_WEIGHT_COLUMN,
     EXTREMA_WEIGHT_SMOOTHED_COLUMN,
     LABEL_COLUMNS,
-    TRADE_PRICE_TARGETS,
+    TRADE_NATR_METHODS,
     OptunaNamespace,
     alligator,
     bottom_log_return,
@@ -386,8 +386,8 @@ class QuickAdapterV3(IStrategy):
         return get_exit_pricing_config(self.config.get("exit_pricing"), logger)
 
     @property
-    def trade_price_target_method(self) -> str:
-        return str(self.exit_pricing["trade_price_target_method"])
+    def trade_natr_method(self) -> str:
+        return str(self.exit_pricing["trade_natr_method"])
 
     @property
     def final_take_profit_retracement_fraction(self) -> float:
@@ -584,7 +584,7 @@ class QuickAdapterV3(IStrategy):
         )
 
         logger.info("Exit Pricing:")
-        logger.info(f"  trade_price_target_method: {self.trade_price_target_method}")
+        logger.info(f"  trade_natr_method: {self.trade_natr_method}")
         logger.info(
             "  final_take_profit_retracement_fraction: "
             f"{format_number(self.final_take_profit_retracement_fraction)}"
@@ -1332,32 +1332,30 @@ class QuickAdapterV3(IStrategy):
     def get_trade_natr(
         self, df: DataFrame, trade: Trade, trade_duration_candles: int
     ) -> Optional[float]:
-        trade_price_target_methods: dict[str, Callable[[], Optional[float]]] = {
+        trade_natr_methods: dict[str, Callable[[], Optional[float]]] = {
             # 0 - "moving_average"
-            TRADE_PRICE_TARGETS[0]: lambda: self.get_trade_moving_average_natr(
+            TRADE_NATR_METHODS[0]: lambda: self.get_trade_moving_average_natr(
                 df, trade.pair, trade_duration_candles
             ),
             # 1 - "quantile_interpolation"
-            TRADE_PRICE_TARGETS[1]: lambda: self.get_trade_quantile_interpolation_natr(
+            TRADE_NATR_METHODS[1]: lambda: self.get_trade_quantile_interpolation_natr(
                 df, trade
             ),
             # 2 - "weighted_average"
-            TRADE_PRICE_TARGETS[2]: lambda: self.get_trade_weighted_average_natr(
+            TRADE_NATR_METHODS[2]: lambda: self.get_trade_weighted_average_natr(
                 df, trade
             ),
         }
-        trade_price_target_method_fn = trade_price_target_methods.get(
-            self.trade_price_target_method
-        )
-        if trade_price_target_method_fn is None:
+        trade_natr_method_fn = trade_natr_methods.get(self.trade_natr_method)
+        if trade_natr_method_fn is None:
             raise ValueError(
                 enum_error_message(
-                    "trade_price_target_method",
-                    self.trade_price_target_method,
-                    TRADE_PRICE_TARGETS,
+                    "trade_natr_method",
+                    self.trade_natr_method,
+                    TRADE_NATR_METHODS,
                 )
             )
-        return trade_price_target_method_fn()
+        return trade_natr_method_fn()
 
     @staticmethod
     def get_trade_exit_stage(trade: Trade) -> int:
index b3ae9a8722652cccbcb86ada44da140b4546e6da..f5398afacc24bb02f220938ad07c9c99c32f458e 100644 (file)
@@ -1073,10 +1073,10 @@ def compose_label_lookahead(
     )
 
 
-TradePriceTarget = Literal[
+TradeNatrMethod = Literal[
     "moving_average", "quantile_interpolation", "weighted_average"
 ]
-TRADE_PRICE_TARGETS: Final[tuple[TradePriceTarget, ...]] = (
+TRADE_NATR_METHODS: Final[tuple[TradeNatrMethod, ...]] = (
     "moving_average",
     "quantile_interpolation",
     "weighted_average",
@@ -1198,6 +1198,10 @@ CONFIG_DEPRECATIONS: Final[tuple[ConfigDeprecation, ...]] = (
         "exit_pricing.trade_price_target",
         "exit_pricing.trade_price_target_method",
     ),
+    _renamed_config_key(
+        "exit_pricing.trade_price_target_method",
+        "exit_pricing.trade_natr_method",
+    ),
     _renamed_config_key(
         "reversal_confirmation.lookback_period",
         "reversal_confirmation.lookback_period_candles",
@@ -1485,13 +1489,13 @@ def get_label_prediction_config(
 
 
 DEFAULTS_EXIT_PRICING: Final[dict[str, Any]] = {
-    "trade_price_target_method": TRADE_PRICE_TARGETS[0],  # "moving_average"
+    "trade_natr_method": TRADE_NATR_METHODS[0],  # "moving_average"
     "final_take_profit_retracement_fraction": 0.25,
 }
 
 _EXIT_PRICING_SPECS: Final[dict[str, _ParamSpec]] = {
-    "trade_price_target_method": _ParamSpec(
-        _EnumValidator(TRADE_PRICE_TARGETS), output_type=str
+    "trade_natr_method": _ParamSpec(
+        _EnumValidator(TRADE_NATR_METHODS), output_type=str
     ),
     "final_take_profit_retracement_fraction": _ParamSpec(
         _NumericValidator(min_value=0, max_value=1, min_exclusive=True),