Skip to content

Commit

Permalink
fix strategy intervals bug for optimizer with incorrect intervals bei…
Browse files Browse the repository at this point in the history
…ng returned
  • Loading branch information
ZENALC committed Jun 4, 2021
1 parent 3d5b05d commit 97a06f2
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 8 deletions.
12 changes: 5 additions & 7 deletions algobot/interface/configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
from algobot.interface.configuration_helpers import (
add_start_end_step_to_layout, get_default_widget, set_value)
# noinspection PyUnresolvedReferences
from algobot.interface.utils import get_elements_from_combobox
from algobot.strategies import * # noqa: F403, F401
from algobot.strategies.strategy import Strategy

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

def get_strategy_intervals_for_optimizer(self, settings: dict):
start = self.optimizerStrategyIntervalCombobox.currentText()
end = self.optimizerStrategyIntervalEndCombobox.currentText()
combobox = self.optimizerStrategyIntervalEndCombobox
intervals = get_elements_from_combobox(combobox)
end_index = intervals.index(combobox.currentText())

sorted_intervals = helpers.get_interval_strings()
start_index = sorted_intervals.index(start)
end_index = sorted_intervals.index(end)

settings['strategyIntervals'] = sorted_intervals[start_index: end_index + 1]
settings['strategyIntervals'] = intervals[:end_index + 1]

def get_optimizer_settings(self) -> dict:
"""
Expand Down
13 changes: 12 additions & 1 deletion algobot/interface/utils.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
from PyQt5.QtWidgets import QMessageBox
from typing import List

from PyQt5.QtWidgets import QComboBox, QMessageBox


def create_popup(parent, msg: str, title='Warning'):
Expand All @@ -24,3 +26,12 @@ def open_from_msg_box(text: str, title: str):
msgBox.setWindowTitle(title)
msgBox.setStandardButtons(QMessageBox.Open | QMessageBox.Close)
return msgBox.exec_() == QMessageBox.Open


def get_elements_from_combobox(combobox: QComboBox) -> List[str]:
"""
Returns all elements from combobox provided in a list.
:param combobox: Combobox to get list of elements from.
:return: List of elements from combobox.
"""
return [combobox.itemText(i) for i in range(combobox.count())]

0 comments on commit 97a06f2

Please sign in to comment.