From: Jérôme Benoit Date: Sat, 1 Mar 2025 11:54:16 +0000 (+0100) Subject: refactor(reforcexy): revert incorrect change X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=a03042300c3a41855375ef3eb1958bce8b103c97;p=freqai-strategies.git refactor(reforcexy): revert incorrect change Signed-off-by: Jérôme Benoit --- diff --git a/ReforceXY/user_data/freqaimodels/ReforceXY.py b/ReforceXY/user_data/freqaimodels/ReforceXY.py index 2deb6c9..6b68b12 100644 --- a/ReforceXY/user_data/freqaimodels/ReforceXY.py +++ b/ReforceXY/user_data/freqaimodels/ReforceXY.py @@ -813,14 +813,14 @@ class ReforceXY(BaseReinforcementLearningModel): self._position in (Positions.Short, Positions.Long) and action == Actions.Neutral.value ): + max_pnl = max(self.get_most_recent_max_pnl(), pnl) + if max_pnl > 0: + drawdown_penalty = 0.01 * factor * (max_pnl - pnl) + else: + drawdown_penalty = 0.0 lambda1 = 0.05 lambda2 = 0.1 if pnl >= 0: - max_pnl = max(self.get_most_recent_max_pnl(), pnl) - if max_pnl > 0: - drawdown_penalty = 0.01 * factor * (max_pnl - pnl) - else: - drawdown_penalty = 0.0 return ( factor * pnl @@ -829,9 +829,13 @@ class ReforceXY(BaseReinforcementLearningModel): - drawdown_penalty ) else: - return factor * pnl * ( - 1 + lambda1 * (trade_duration / max_trade_duration) - ) - 2 * lambda2 * (trade_duration / max_trade_duration) + return ( + factor + * pnl + * (1 + lambda1 * (trade_duration / max_trade_duration)) + - 2 * lambda2 * (trade_duration / max_trade_duration) + - drawdown_penalty + ) # close long if action == Actions.Long_exit.value and self._position == Positions.Long: