Replace more occurances of ticker_interval
This commit is contained in:
parent
1c57a4ac35
commit
c449e39280
@ -39,12 +39,12 @@ class TimeRange:
|
|||||||
if self.startts:
|
if self.startts:
|
||||||
self.startts = self.startts - seconds
|
self.startts = self.startts - seconds
|
||||||
|
|
||||||
def adjust_start_if_necessary(self, ticker_interval_secs: int, startup_candles: int,
|
def adjust_start_if_necessary(self, timeframe_secs: int, startup_candles: int,
|
||||||
min_date: arrow.Arrow) -> None:
|
min_date: arrow.Arrow) -> None:
|
||||||
"""
|
"""
|
||||||
Adjust startts by <startup_candles> candles.
|
Adjust startts by <startup_candles> candles.
|
||||||
Applies only if no startup-candles have been available.
|
Applies only if no startup-candles have been available.
|
||||||
:param ticker_interval_secs: Ticker interval in seconds e.g. `timeframe_to_seconds('5m')`
|
:param timeframe_secs: Ticker timeframe in seconds e.g. `timeframe_to_seconds('5m')`
|
||||||
:param startup_candles: Number of candles to move start-date forward
|
:param startup_candles: Number of candles to move start-date forward
|
||||||
:param min_date: Minimum data date loaded. Key kriterium to decide if start-time
|
:param min_date: Minimum data date loaded. Key kriterium to decide if start-time
|
||||||
has to be moved
|
has to be moved
|
||||||
@ -55,7 +55,7 @@ class TimeRange:
|
|||||||
# If no startts was defined, or backtest-data starts at the defined backtest-date
|
# If no startts was defined, or backtest-data starts at the defined backtest-date
|
||||||
logger.warning("Moving start-date by %s candles to account for startup time.",
|
logger.warning("Moving start-date by %s candles to account for startup time.",
|
||||||
startup_candles)
|
startup_candles)
|
||||||
self.startts = (min_date.timestamp + ticker_interval_secs * startup_candles)
|
self.startts = (min_date.timestamp + timeframe_secs * startup_candles)
|
||||||
self.starttype = 'date'
|
self.starttype = 'date'
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -106,10 +106,10 @@ class IHyperOpt(ABC):
|
|||||||
roi_t_alpha = 1.0
|
roi_t_alpha = 1.0
|
||||||
roi_p_alpha = 1.0
|
roi_p_alpha = 1.0
|
||||||
|
|
||||||
ticker_interval_mins = timeframe_to_minutes(IHyperOpt.ticker_interval)
|
timeframe_mins = timeframe_to_minutes(IHyperOpt.ticker_interval)
|
||||||
|
|
||||||
# We define here limits for the ROI space parameters automagically adapted to the
|
# We define here limits for the ROI space parameters automagically adapted to the
|
||||||
# ticker_interval used by the bot:
|
# timeframe used by the bot:
|
||||||
#
|
#
|
||||||
# * 'roi_t' (limits for the time intervals in the ROI tables) components
|
# * 'roi_t' (limits for the time intervals in the ROI tables) components
|
||||||
# are scaled linearly.
|
# are scaled linearly.
|
||||||
@ -117,8 +117,8 @@ class IHyperOpt(ABC):
|
|||||||
#
|
#
|
||||||
# The scaling is designed so that it maps exactly to the legacy Freqtrade roi_space()
|
# The scaling is designed so that it maps exactly to the legacy Freqtrade roi_space()
|
||||||
# method for the 5m ticker interval.
|
# method for the 5m ticker interval.
|
||||||
roi_t_scale = ticker_interval_mins / 5
|
roi_t_scale = timeframe_mins / 5
|
||||||
roi_p_scale = math.log1p(ticker_interval_mins) / math.log1p(5)
|
roi_p_scale = math.log1p(timeframe_mins) / math.log1p(5)
|
||||||
roi_limits = {
|
roi_limits = {
|
||||||
'roi_t1_min': int(10 * roi_t_scale * roi_t_alpha),
|
'roi_t1_min': int(10 * roi_t_scale * roi_t_alpha),
|
||||||
'roi_t1_max': int(120 * roi_t_scale * roi_t_alpha),
|
'roi_t1_max': int(120 * roi_t_scale * roi_t_alpha),
|
||||||
|
@ -7,7 +7,7 @@ from freqtrade.exchange import timeframe_to_minutes
|
|||||||
from freqtrade.strategy.interface import SellType
|
from freqtrade.strategy.interface import SellType
|
||||||
|
|
||||||
ticker_start_time = arrow.get(2018, 10, 3)
|
ticker_start_time = arrow.get(2018, 10, 3)
|
||||||
tests_ticker_interval = '1h'
|
tests_timeframe = '1h'
|
||||||
|
|
||||||
|
|
||||||
class BTrade(NamedTuple):
|
class BTrade(NamedTuple):
|
||||||
@ -36,7 +36,7 @@ class BTContainer(NamedTuple):
|
|||||||
|
|
||||||
|
|
||||||
def _get_frame_time_from_offset(offset):
|
def _get_frame_time_from_offset(offset):
|
||||||
return ticker_start_time.shift(minutes=(offset * timeframe_to_minutes(tests_ticker_interval))
|
return ticker_start_time.shift(minutes=(offset * timeframe_to_minutes(tests_timeframe))
|
||||||
).datetime
|
).datetime
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ from freqtrade.optimize.backtesting import Backtesting
|
|||||||
from freqtrade.strategy.interface import SellType
|
from freqtrade.strategy.interface import SellType
|
||||||
from tests.conftest import patch_exchange
|
from tests.conftest import patch_exchange
|
||||||
from tests.optimize import (BTContainer, BTrade, _build_backtest_dataframe,
|
from tests.optimize import (BTContainer, BTrade, _build_backtest_dataframe,
|
||||||
_get_frame_time_from_offset, tests_ticker_interval)
|
_get_frame_time_from_offset, tests_timeframe)
|
||||||
|
|
||||||
# Test 0: Sell with signal sell in candle 3
|
# Test 0: Sell with signal sell in candle 3
|
||||||
# Test with Stop-loss at 1%
|
# Test with Stop-loss at 1%
|
||||||
@ -293,7 +293,7 @@ def test_backtest_results(default_conf, fee, mocker, caplog, data) -> None:
|
|||||||
"""
|
"""
|
||||||
default_conf["stoploss"] = data.stop_loss
|
default_conf["stoploss"] = data.stop_loss
|
||||||
default_conf["minimal_roi"] = data.roi
|
default_conf["minimal_roi"] = data.roi
|
||||||
default_conf["ticker_interval"] = tests_ticker_interval
|
default_conf["ticker_interval"] = tests_timeframe
|
||||||
default_conf["trailing_stop"] = data.trailing_stop
|
default_conf["trailing_stop"] = data.trailing_stop
|
||||||
default_conf["trailing_only_offset_is_reached"] = data.trailing_only_offset_is_reached
|
default_conf["trailing_only_offset_is_reached"] = data.trailing_only_offset_is_reached
|
||||||
# Only add this to configuration If it's necessary
|
# Only add this to configuration If it's necessary
|
||||||
|
@ -307,7 +307,7 @@ def test_backtesting_init(mocker, default_conf, order_types) -> None:
|
|||||||
get_fee = mocker.patch('freqtrade.exchange.Exchange.get_fee', MagicMock(return_value=0.5))
|
get_fee = mocker.patch('freqtrade.exchange.Exchange.get_fee', MagicMock(return_value=0.5))
|
||||||
backtesting = Backtesting(default_conf)
|
backtesting = Backtesting(default_conf)
|
||||||
assert backtesting.config == default_conf
|
assert backtesting.config == default_conf
|
||||||
assert backtesting.ticker_interval == '5m'
|
assert backtesting.timeframe == '5m'
|
||||||
assert callable(backtesting.strategy.tickerdata_to_dataframe)
|
assert callable(backtesting.strategy.tickerdata_to_dataframe)
|
||||||
assert callable(backtesting.strategy.advise_buy)
|
assert callable(backtesting.strategy.advise_buy)
|
||||||
assert callable(backtesting.strategy.advise_sell)
|
assert callable(backtesting.strategy.advise_sell)
|
||||||
|
Loading…
Reference in New Issue
Block a user