|
28 | 28 | import numpy |
29 | 29 | import logging |
30 | 30 | import ctypes |
| 31 | +import random |
31 | 32 |
|
32 | 33 | import octobot_commons.optimization_campaign as optimization_campaign |
33 | 34 | import octobot_commons.constants as commons_constants |
@@ -84,12 +85,14 @@ class StrategyDesignOptimizer: |
84 | 85 | CONFIG_DELETE_EVERY_RUN = "delete_every_run" |
85 | 86 | CONFIG_ROLE = "role" |
86 | 87 |
|
87 | | - def __init__(self, trading_mode, config, tentacles_setup_config, optimizer_config, optimizer_id=None): |
| 88 | + def __init__(self, trading_mode, config, tentacles_setup_config, optimizer_config, |
| 89 | + optimizer_id=None, queue_size=None): |
88 | 90 | self.config = config |
89 | 91 | self.base_tentacles_setup_config = tentacles_setup_config |
90 | 92 | self.trading_mode = trading_mode |
91 | 93 | self.optimizer_config = optimizer_config |
92 | 94 | self.optimizer_id = optimizer_id |
| 95 | + self.queue_size = queue_size |
93 | 96 | self.current_backtesting_id = None |
94 | 97 | self.runs_schedule = None |
95 | 98 | self.logger = commons_logging.get_logger(self.__class__.__name__) |
@@ -702,6 +705,10 @@ def _generate_runs(self): |
702 | 705 | if self._is_run_allowed(run) |
703 | 706 | } |
704 | 707 | if runs: |
| 708 | + temp_runs = list(runs.values()) |
| 709 | + random.shuffle(temp_runs) |
| 710 | + temp_runs = temp_runs[:self.queue_size] |
| 711 | + runs = dict(zip(runs, temp_runs)) |
705 | 712 | for run in runs.values(): |
706 | 713 | for run_input in run: |
707 | 714 | # do not store self.CONFIG_KEY |
|
0 commit comments