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

1# environment/points_reward_validator.py 

2 

3from .reward_validator_base import RewardValidatorBase, Order 

4 

5class PointsRewardValidator(RewardValidatorBase): 

6 """ 

7 Awards reward for successful or failure order basing on predefined constants. 

8 """ 

9 

10 def __init__(self, rewarded_points: tuple[int, int] = (1, -1)) -> None: 

11 """ 

12 Class constructor. 

13 

14 Parameters: 

15 rewarded_points (tuple[int, int]): Number of points to be awarded for 

16 successful and failure trade respectively. 

17 """ 

18 

19 self.__rewarded_points: tuple[int, int] = rewarded_points 

20 

21 def validate_orders(self, orders: list[Order]) -> float: 

22 """ 

23 Calculates number of points to be rewarded for list of closed trades. 

24 

25 Parameters: 

26 orders (list[Order]): Orders to be validated. 

27 

28 Returns: 

29 (float): Calcualted reward. 

30 """ 

31 

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