From a03042300c3a41855375ef3eb1958bce8b103c97 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Sat, 1 Mar 2025 12:54:16 +0100 Subject: [PATCH] refactor(reforcexy): revert incorrect change MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- ReforceXY/user_data/freqaimodels/ReforceXY.py | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) 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: -- 2.43.0