Skip to content

Commit 670c8c7

Browse files
techfreaqueGuillaumeDSM
authored andcommitted
[StrategyOptimzer] allow adding limited random runs
1 parent 7ae0ddf commit 670c8c7

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

octobot/api/strategy_optimizer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ async def update_strategy_optimizer_total_runs(optimizer, runs):
3737

3838

3939
async def generate_and_save_strategy_optimizer_runs(trading_mode, tentacles_setup_config,
40-
optimizer_config, optimizer_id) -> list:
40+
optimizer_config, optimizer_id, queue_size) -> list:
4141
optimizer = StrategyDesignOptimizer(trading_mode, None, tentacles_setup_config,
42-
optimizer_config, optimizer_id)
42+
optimizer_config, optimizer_id, queue_size)
4343
return await optimizer.generate_and_save_run()
4444

4545

octobot/strategy_optimizer/strategy_design_optimizer.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import numpy
2929
import logging
3030
import ctypes
31+
import random
3132

3233
import octobot_commons.optimization_campaign as optimization_campaign
3334
import octobot_commons.constants as commons_constants
@@ -84,12 +85,14 @@ class StrategyDesignOptimizer:
8485
CONFIG_DELETE_EVERY_RUN = "delete_every_run"
8586
CONFIG_ROLE = "role"
8687

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):
8890
self.config = config
8991
self.base_tentacles_setup_config = tentacles_setup_config
9092
self.trading_mode = trading_mode
9193
self.optimizer_config = optimizer_config
9294
self.optimizer_id = optimizer_id
95+
self.queue_size = queue_size
9396
self.current_backtesting_id = None
9497
self.runs_schedule = None
9598
self.logger = commons_logging.get_logger(self.__class__.__name__)
@@ -702,6 +705,10 @@ def _generate_runs(self):
702705
if self._is_run_allowed(run)
703706
}
704707
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))
705712
for run in runs.values():
706713
for run_input in run:
707714
# do not store self.CONFIG_KEY

0 commit comments

Comments
 (0)