Skip to content

Commit 97a06f2

Browse files
committed
fix strategy intervals bug for optimizer with incorrect intervals being returned
1 parent 3d5b05d commit 97a06f2

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

algobot/interface/configuration.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from algobot.interface.configuration_helpers import (
1919
add_start_end_step_to_layout, get_default_widget, set_value)
2020
# noinspection PyUnresolvedReferences
21+
from algobot.interface.utils import get_elements_from_combobox
2122
from algobot.strategies import * # noqa: F403, F401
2223
from algobot.strategies.strategy import Strategy
2324

@@ -184,14 +185,11 @@ def helper_get_optimizer(optimizer_tab, dictionary: dict, key: str, optimizerTyp
184185
del settings[key]
185186

186187
def get_strategy_intervals_for_optimizer(self, settings: dict):
187-
start = self.optimizerStrategyIntervalCombobox.currentText()
188-
end = self.optimizerStrategyIntervalEndCombobox.currentText()
188+
combobox = self.optimizerStrategyIntervalEndCombobox
189+
intervals = get_elements_from_combobox(combobox)
190+
end_index = intervals.index(combobox.currentText())
189191

190-
sorted_intervals = helpers.get_interval_strings()
191-
start_index = sorted_intervals.index(start)
192-
end_index = sorted_intervals.index(end)
193-
194-
settings['strategyIntervals'] = sorted_intervals[start_index: end_index + 1]
192+
settings['strategyIntervals'] = intervals[:end_index + 1]
195193

196194
def get_optimizer_settings(self) -> dict:
197195
"""

algobot/interface/utils.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
from PyQt5.QtWidgets import QMessageBox
1+
from typing import List
2+
3+
from PyQt5.QtWidgets import QComboBox, QMessageBox
24

35

46
def create_popup(parent, msg: str, title='Warning'):
@@ -24,3 +26,12 @@ def open_from_msg_box(text: str, title: str):
2426
msgBox.setWindowTitle(title)
2527
msgBox.setStandardButtons(QMessageBox.Open | QMessageBox.Close)
2628
return msgBox.exec_() == QMessageBox.Open
29+
30+
31+
def get_elements_from_combobox(combobox: QComboBox) -> List[str]:
32+
"""
33+
Returns all elements from combobox provided in a list.
34+
:param combobox: Combobox to get list of elements from.
35+
:return: List of elements from combobox.
36+
"""
37+
return [combobox.itemText(i) for i in range(combobox.count())]

0 commit comments

Comments
 (0)