]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
refactor: qualify static method calls main
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 13 Jul 2026 00:08:53 +0000 (02:08 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Mon, 13 Jul 2026 00:08:53 +0000 (02:08 +0200)
ReforceXY/reward_space_analysis/tests/test_base.py
ReforceXY/user_data/freqaimodels/ReforceXY.py
quickadapter/user_data/strategies/LabelTransformer.py
quickadapter/user_data/strategies/QuickAdapterV3.py

index 4bb26984fed3d83501320e009281fa381fcf3825..d3d6e74217e2ca37ed32626a2255cc88d69ea304 100644 (file)
@@ -77,7 +77,7 @@ class RewardSpaceTestBase(unittest.TestCase):
 
     def setUp(self):
         """Set up test fixtures with reproducible random seed."""
-        self.seed_all(SEEDS.BASE)
+        RewardSpaceTestBase.seed_all(SEEDS.BASE)
         self.temp_dir = tempfile.mkdtemp()
         self.output_path = Path(self.temp_dir)
 
@@ -203,7 +203,7 @@ class RewardSpaceTestBase(unittest.TestCase):
         pnl, trade_duration, idle_duration, position. Guarantees: no NaN; reward_idle==0 where idle_duration==0.
         """
         if seed is not None:
-            self.seed_all(seed)
+            RewardSpaceTestBase.seed_all(seed)
         pnl_std_eff = PARAMS.PNL_STD if pnl_std is None else pnl_std
         reward = np.random.normal(reward_mean, reward_std, n)
         pnl = np.random.normal(pnl_mean, pnl_std_eff, n)
@@ -422,7 +422,7 @@ class RewardSpaceTestBase(unittest.TestCase):
 
     def _make_idle_variance_df(self, n: int = 100) -> pd.DataFrame:
         """Synthetic dataframe focusing on idle_duration ↔ reward_idle correlation."""
-        self.seed_all(SEEDS.BASE)
+        RewardSpaceTestBase.seed_all(SEEDS.BASE)
         idle_duration = np.random.exponential(10, n)
         reward_idle = -0.01 * idle_duration + np.random.normal(0, 0.001, n)
         return pd.DataFrame(
index a40e108a8db7b019dc5ac3a3b198c556ae97a21d..c5ed1bf2d926446402b4692eb785acb2a508fc4b 100644 (file)
@@ -1464,7 +1464,7 @@ class ReforceXY(BaseReinforcementLearningModel):
             )
         # "file"
         elif storage_backend == ReforceXY._STORAGE_BACKENDS[1]:
-            storage = self._create_recovered_journal_storage(
+            storage = ReforceXY._create_recovered_journal_storage(
                 storage_dir / f"{storage_filename}.log"
             )
         else:
@@ -2390,7 +2390,7 @@ class MyRLEnv(Base5ActionRLEnv):
 
         duration_multiplier = 1.0
         if risk_reward_ratio is not None:
-            duration_multiplier = self._loss_duration_multiplier(
+            duration_multiplier = MyRLEnv._loss_duration_multiplier(
                 pnl_ratio,
                 risk_reward_ratio,
             )
index 58129f03d1c407b28bb4e0da144c4ccb2611aa69..aec380f069a07960854a615aebf57f3d3ac70a00 100644 (file)
@@ -403,7 +403,7 @@ class LabelTransformer(BaseTransform):
         if method == STANDARDIZATION_TYPES[0]:  # none
             return values
         if method == STANDARDIZATION_TYPES[3]:  # mmad
-            return self._apply_mmad(
+            return LabelTransformer._apply_mmad(
                 values,
                 mask,
                 state.median,
@@ -421,7 +421,7 @@ class LabelTransformer(BaseTransform):
         scaler = getattr(state, scaler_attr, None)
         if scaler is None:
             raise RuntimeError(f"{scaler_attr} not fitted")
-        return self._apply_scaler(values, mask, scaler, inverse=inverse)
+        return LabelTransformer._apply_scaler(values, mask, scaler, inverse=inverse)
 
     def _normalize(
         self,
@@ -432,7 +432,7 @@ class LabelTransformer(BaseTransform):
     ) -> NDArray[np.floating]:
         method = state.config["normalization"]
         if method == NORMALIZATION_TYPES[2]:  # sigmoid
-            return self._apply_sigmoid(
+            return LabelTransformer._apply_sigmoid(
                 values, mask, state.config["sigmoid_scale"], inverse=inverse
             )
         if method == NORMALIZATION_TYPES[3]:  # none
@@ -447,7 +447,7 @@ class LabelTransformer(BaseTransform):
         scaler = getattr(state, scaler_attr, None)
         if scaler is None:
             raise RuntimeError(f"{scaler_attr} not fitted")
-        return self._apply_scaler(values, mask, scaler, inverse=inverse)
+        return LabelTransformer._apply_scaler(values, mask, scaler, inverse=inverse)
 
     def _fit_standardization(
         self, values: NDArray[np.floating], state: _ColumnState
@@ -538,7 +538,7 @@ class LabelTransformer(BaseTransform):
         mask = np.isfinite(values)
 
         if inverse:
-            degamma = self._apply_gamma(
+            degamma = LabelTransformer._apply_gamma(
                 values, mask, state.config["gamma"], inverse=True
             )
             denorm = self._normalize(degamma, mask, state, inverse=True)
@@ -546,7 +546,7 @@ class LabelTransformer(BaseTransform):
         else:
             standardized = self._standardize(values, mask, state, inverse=False)
             normalized = self._normalize(standardized, mask, state, inverse=False)
-            return self._apply_gamma(
+            return LabelTransformer._apply_gamma(
                 normalized, mask, state.config["gamma"], inverse=False
             )
 
index dccbddd6ab2cab09619336cdbd99bbca24db293f..33fd950d3eeedd8adc8294a99fc3f8a2870bde7a 100644 (file)
@@ -2293,7 +2293,7 @@ class QuickAdapterV3(IStrategy):
                 self.get_trade_annotation_line_start_date(dataframe, trade)
             )
 
-            trade_exit_stage = self.get_trade_exit_stage(trade)
+            trade_exit_stage = QuickAdapterV3.get_trade_exit_stage(trade)
 
             for take_profit_stage, (_, _, color) in self.partial_exit_stages.items():
                 if take_profit_stage < trade_exit_stage: