Coverage for source/environment/points_reward_validator.py: 100%
11 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-06-06 12:00 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-06-06 12:00 +0000
1# environment/points_reward_validator.py
3from .reward_validator_base import RewardValidatorBase, Order
5class PointsRewardValidator(RewardValidatorBase):
6 """
7 Awards reward for successful or failure order basing on predefined constants.
8 """
10 def __init__(self, rewarded_points: tuple[int, int] = (1, -1)) -> None:
11 """
12 Class constructor.
14 Parameters:
15 rewarded_points (tuple[int, int]): Number of points to be awarded for
16 successful and failure trade respectively.
17 """
19 self.__rewarded_points: tuple[int, int] = rewarded_points
21 def validate_orders(self, orders: list[Order]) -> float:
22 """
23 Calculates number of points to be rewarded for list of closed trades.
25 Parameters:
26 orders (list[Order]): Orders to be validated.
28 Returns:
29 (float): Calcualted reward.
30 """
32 reward = 0
33 for order in orders:
34 if order.current_value > order.initial_value:
35 reward = reward + self.__rewarded_points[0]
36 else:
37 reward = reward + self.__rewarded_points[1]
38 return reward