Skip to content

Commit bf41762

Browse files
Guillaume De Saint MartinGuillaumeDSM
authored andcommitted
[StrategyOptimizer] create _shuffle_and_select_runs
1 parent 8f177d6 commit bf41762

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

octobot/strategy_optimizer/strategy_design_optimizer.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -697,6 +697,12 @@ async def _generate_and_store_backtesting_runs_schedule(self):
697697
await self._save_run_schedule(runs)
698698
return runs
699699

700+
def _shuffle_and_select_runs(self, runs, select_size=None) -> dict:
701+
shuffled_runs = list(runs.values())
702+
random.shuffle(shuffled_runs)
703+
selected_runs = shuffled_runs if select_size is None else shuffled_runs[:select_size]
704+
return {i: run for i, run in enumerate(selected_runs)}
705+
700706
def _generate_runs(self):
701707
iterations = [i for i in self._get_config_possible_iterations() if i]
702708
runs = {
@@ -705,11 +711,7 @@ def _generate_runs(self):
705711
if self._is_run_allowed(run)
706712
}
707713
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))
712-
for run in runs.values():
714+
for run in self._shuffle_and_select_runs(runs, select_size=self.queue_size).values():
713715
for run_input in run:
714716
# do not store self.CONFIG_KEY
715717
run_input.pop(self.CONFIG_KEY, None)

0 commit comments

Comments
 (0)