2021-03-21 14:56:36 +00:00
|
|
|
from freqtrade.enums import BacktestState
|
|
|
|
|
|
|
|
|
|
|
|
class BTProgress:
|
|
|
|
_action: BacktestState = BacktestState.STARTUP
|
|
|
|
_progress: float = 0
|
|
|
|
_max_steps: float = 0
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
pass
|
|
|
|
|
|
|
|
def init_step(self, action: BacktestState, max_steps: float):
|
|
|
|
self._action = action
|
|
|
|
self._max_steps = max_steps
|
2021-12-17 20:25:02 +00:00
|
|
|
self._progress = 0
|
2021-03-21 14:56:36 +00:00
|
|
|
|
|
|
|
def set_new_value(self, new_value: float):
|
|
|
|
self._progress = new_value
|
|
|
|
|
|
|
|
def increment(self):
|
|
|
|
self._progress += 1
|
|
|
|
|
|
|
|
@property
|
|
|
|
def progress(self):
|
|
|
|
"""
|
|
|
|
Get progress as ratio, capped to be between 0 and 1 (to avoid small calculation errors).
|
|
|
|
"""
|
|
|
|
return max(min(round(self._progress / self._max_steps, 5)
|
|
|
|
if self._max_steps > 0 else 0, 1), 0)
|
|
|
|
|
|
|
|
@property
|
|
|
|
def action(self):
|
|
|
|
return str(self._action)
|