make env keep current position when low profit

This commit is contained in:
sonnhfit 2022-08-18 17:37:26 +07:00 committed by robcaulk
parent 45218faeb0
commit 81b5aa66e8

View File

@ -127,17 +127,25 @@ class Base3ActionRLEnv(gym.Env):
Action: Short, position: Long -> Close Long and Open Short
"""
if action == Actions.Neutral.value:
self._position = Positions.Neutral
trade_type = "neutral"
elif action == Actions.Long.value:
self._position = Positions.Long
trade_type = "long"
elif action == Actions.Short.value:
self._position = Positions.Short
trade_type = "short"
u_pnl = self.get_unrealized_profit()
# keep current position if upnl from -0.4% to 0.4%
if u_pnl <= 0.004 and u_pnl >= -0.004 and self._position != Positions.Neutral:
if action == Actions.Long.value and self._position == Positions.Short:
self._position = Positions.Short
elif action == Actions.Short.value and self._position == Positions.Long:
self._position = Positions.Long
else:
print("case not defined")
if action == Actions.Neutral.value:
self._position = Positions.Neutral
trade_type = "neutral"
elif action == Actions.Long.value:
self._position = Positions.Long
trade_type = "long"
elif action == Actions.Short.value:
self._position = Positions.Short
trade_type = "short"
else:
print("case not defined")
# Update last trade tick
self._last_trade_tick = self._current_tick