Use timeframe from within strategy
This commit is contained in:
		| @@ -100,14 +100,14 @@ class Edge: | ||||
|                 datadir=self.config['datadir'], | ||||
|                 pairs=pairs, | ||||
|                 exchange=self.exchange, | ||||
|                 timeframe=self.strategy.ticker_interval, | ||||
|                 timeframe=self.strategy.timeframe, | ||||
|                 timerange=self._timerange, | ||||
|             ) | ||||
|  | ||||
|         data = load_data( | ||||
|             datadir=self.config['datadir'], | ||||
|             pairs=pairs, | ||||
|             timeframe=self.strategy.ticker_interval, | ||||
|             timeframe=self.strategy.timeframe, | ||||
|             timerange=self._timerange, | ||||
|             startup_candles=self.strategy.startup_candle_count, | ||||
|             data_format=self.config.get('dataformat_ohlcv', 'json'), | ||||
|   | ||||
| @@ -421,8 +421,8 @@ class FreqtradeBot: | ||||
|  | ||||
|         # running get_signal on historical data fetched | ||||
|         (buy, sell) = self.strategy.get_signal( | ||||
|             pair, self.strategy.ticker_interval, | ||||
|             self.dataprovider.ohlcv(pair, self.strategy.ticker_interval)) | ||||
|             pair, self.strategy.timeframe, | ||||
|             self.dataprovider.ohlcv(pair, self.strategy.timeframe)) | ||||
|  | ||||
|         if buy and not sell: | ||||
|             stake_amount = self.get_trade_stake_amount(pair) | ||||
| @@ -696,8 +696,8 @@ class FreqtradeBot: | ||||
|         if (config_ask_strategy.get('use_sell_signal', True) or | ||||
|                 config_ask_strategy.get('ignore_roi_if_buy_signal', False)): | ||||
|             (buy, sell) = self.strategy.get_signal( | ||||
|                 trade.pair, self.strategy.ticker_interval, | ||||
|                 self.dataprovider.ohlcv(trade.pair, self.strategy.ticker_interval)) | ||||
|                 trade.pair, self.strategy.timeframe, | ||||
|                 self.dataprovider.ohlcv(trade.pair, self.strategy.timeframe)) | ||||
|  | ||||
|         if config_ask_strategy.get('use_order_book', False): | ||||
|             # logger.debug('Order book %s',orderBook) | ||||
|   | ||||
| @@ -27,7 +27,7 @@ from tests.optimize import (BTContainer, BTrade, _build_backtest_dataframe, | ||||
| #################################################################### | ||||
|  | ||||
| tests_start_time = arrow.get(2018, 10, 3) | ||||
| ticker_interval_in_minute = 60 | ||||
| timeframe_in_minute = 60 | ||||
| _ohlc = {'date': 0, 'buy': 1, 'open': 2, 'high': 3, 'low': 4, 'close': 5, 'sell': 6, 'volume': 7} | ||||
|  | ||||
| # Helpers for this test file | ||||
| @@ -49,7 +49,7 @@ def _build_dataframe(buy_ohlc_sell_matrice): | ||||
|             'date': tests_start_time.shift( | ||||
|                 minutes=( | ||||
|                     ohlc[0] * | ||||
|                     ticker_interval_in_minute)).timestamp * | ||||
|                     timeframe_in_minute)).timestamp * | ||||
|             1000, | ||||
|             'buy': ohlc[1], | ||||
|             'open': ohlc[2], | ||||
| @@ -70,7 +70,7 @@ def _build_dataframe(buy_ohlc_sell_matrice): | ||||
|  | ||||
| def _time_on_candle(number): | ||||
|     return np.datetime64(tests_start_time.shift( | ||||
|         minutes=(number * ticker_interval_in_minute)).timestamp * 1000, 'ms') | ||||
|         minutes=(number * timeframe_in_minute)).timestamp * 1000, 'ms') | ||||
|  | ||||
|  | ||||
| # End helper functions | ||||
| @@ -262,7 +262,7 @@ def mocked_load_data(datadir, pairs=[], timeframe='0m', | ||||
|  | ||||
|     NEOBTC = [ | ||||
|         [ | ||||
|             tests_start_time.shift(minutes=(x * ticker_interval_in_minute)).timestamp * 1000, | ||||
|             tests_start_time.shift(minutes=(x * timeframe_in_minute)).timestamp * 1000, | ||||
|             math.sin(x * hz) / 1000 + base, | ||||
|             math.sin(x * hz) / 1000 + base + 0.0001, | ||||
|             math.sin(x * hz) / 1000 + base - 0.0001, | ||||
| @@ -274,7 +274,7 @@ def mocked_load_data(datadir, pairs=[], timeframe='0m', | ||||
|     base = 0.002 | ||||
|     LTCBTC = [ | ||||
|         [ | ||||
|             tests_start_time.shift(minutes=(x * ticker_interval_in_minute)).timestamp * 1000, | ||||
|             tests_start_time.shift(minutes=(x * timeframe_in_minute)).timestamp * 1000, | ||||
|             math.sin(x * hz) / 1000 + base, | ||||
|             math.sin(x * hz) / 1000 + base + 0.0001, | ||||
|             math.sin(x * hz) / 1000 + base - 0.0001, | ||||
|   | ||||
| @@ -29,7 +29,7 @@ class DefaultStrategy(IStrategy): | ||||
|     stoploss = -0.10 | ||||
|  | ||||
|     # Optimal ticker interval for the strategy | ||||
|     ticker_interval = '5m' | ||||
|     timeframe = '5m' | ||||
|  | ||||
|     # Optional order type mapping | ||||
|     order_types = { | ||||
|   | ||||
| @@ -19,6 +19,7 @@ def test_default_strategy(result): | ||||
|     assert type(strategy.minimal_roi) is dict | ||||
|     assert type(strategy.stoploss) is float | ||||
|     assert type(strategy.ticker_interval) is str | ||||
|     assert type(strategy.timeframe) is str | ||||
|     indicators = strategy.populate_indicators(result, metadata) | ||||
|     assert type(indicators) is DataFrame | ||||
|     assert type(strategy.populate_buy_trend(indicators, metadata)) is DataFrame | ||||
|   | ||||
| @@ -105,6 +105,7 @@ def test_strategy(result, default_conf): | ||||
|     assert strategy.stoploss == -0.10 | ||||
|     assert default_conf['stoploss'] == -0.10 | ||||
|  | ||||
|     assert strategy.timeframe == '5m' | ||||
|     assert strategy.ticker_interval == '5m' | ||||
|     assert default_conf['timeframe'] == '5m' | ||||
|  | ||||
|   | ||||
| @@ -401,8 +401,8 @@ def test_setup_configuration_without_arguments(mocker, default_conf, caplog) -> | ||||
|     assert 'datadir' in config | ||||
|     assert 'user_data_dir' in config | ||||
|     assert log_has('Using data directory: {} ...'.format(config['datadir']), caplog) | ||||
|     assert 'ticker_interval' in config | ||||
|     assert not log_has('Parameter -i/--ticker-interval detected ...', caplog) | ||||
|     assert 'timeframe' in config | ||||
|     assert not log_has('Parameter -i/--timeframe detected ...', caplog) | ||||
|  | ||||
|     assert 'position_stacking' not in config | ||||
|     assert not log_has('Parameter --enable-position-stacking detected ...', caplog) | ||||
| @@ -448,8 +448,8 @@ def test_setup_configuration_with_arguments(mocker, default_conf, caplog) -> Non | ||||
|     assert log_has('Using user-data directory: {} ...'.format(Path("/tmp/freqtrade")), caplog) | ||||
|     assert 'user_data_dir' in config | ||||
|  | ||||
|     assert 'ticker_interval' in config | ||||
|     assert log_has('Parameter -i/--ticker-interval detected ... Using ticker_interval: 1m ...', | ||||
|     assert 'timeframe' in config | ||||
|     assert log_has('Parameter -i/--timeframe detected ... Using timeframe: 1m ...', | ||||
|                    caplog) | ||||
|  | ||||
|     assert 'position_stacking' in config | ||||
| @@ -494,8 +494,8 @@ def test_setup_configuration_with_stratlist(mocker, default_conf, caplog) -> Non | ||||
|     assert 'pair_whitelist' in config['exchange'] | ||||
|     assert 'datadir' in config | ||||
|     assert log_has('Using data directory: {} ...'.format(config['datadir']), caplog) | ||||
|     assert 'ticker_interval' in config | ||||
|     assert log_has('Parameter -i/--ticker-interval detected ... Using ticker_interval: 1m ...', | ||||
|     assert 'timeframe' in config | ||||
|     assert log_has('Parameter -i/--timeframe detected ... Using timeframe: 1m ...', | ||||
|                    caplog) | ||||
|  | ||||
|     assert 'strategy_list' in config | ||||
|   | ||||
		Reference in New Issue
	
	Block a user