mirror of
https://github.com/freqtrade/freqtrade.git
synced 2025-12-16 04:41:15 +00:00
refresh_latest_trades: use max_candles to determine trades download count
This commit is contained in:
@@ -2623,6 +2623,20 @@ class Exchange:
|
|||||||
now = timeframe_to_next_date(timeframe)
|
now = timeframe_to_next_date(timeframe)
|
||||||
return int((now - timedelta(seconds=move_to // 1000)).timestamp() * 1000)
|
return int((now - timedelta(seconds=move_to // 1000)).timestamp() * 1000)
|
||||||
|
|
||||||
|
def needed_candle_for_trades_ms(self, timeframe: str, candle_type: CandleType):
|
||||||
|
one_call = timeframe_to_msecs(timeframe) * self.ohlcv_candle_limit(timeframe, candle_type)
|
||||||
|
config_orderflow = self._config["orderflow"]
|
||||||
|
required_candles = config_orderflow["max_candles"]
|
||||||
|
required_candles = (
|
||||||
|
required_candles
|
||||||
|
if required_candles < self.required_candle_call_count
|
||||||
|
else self.required_candle_call_count
|
||||||
|
)
|
||||||
|
|
||||||
|
move_to = one_call * required_candles
|
||||||
|
now = timeframe_to_next_date(timeframe)
|
||||||
|
return int((now - timedelta(seconds=move_to // 1000)).timestamp() * 1000)
|
||||||
|
|
||||||
def _process_trades_df(
|
def _process_trades_df(
|
||||||
self,
|
self,
|
||||||
pair: str,
|
pair: str,
|
||||||
@@ -2675,7 +2689,7 @@ class Exchange:
|
|||||||
for pair, timeframe, candle_type in set(pair_list):
|
for pair, timeframe, candle_type in set(pair_list):
|
||||||
new_ticks: List = []
|
new_ticks: List = []
|
||||||
all_stored_ticks_df = DataFrame(columns=DEFAULT_TRADES_COLUMNS + ["date"])
|
all_stored_ticks_df = DataFrame(columns=DEFAULT_TRADES_COLUMNS + ["date"])
|
||||||
first_candle_ms = self.needed_candle_ms(timeframe, candle_type)
|
first_candle_ms = self.needed_candle_for_trades_ms(timeframe, candle_type)
|
||||||
# refresh, if
|
# refresh, if
|
||||||
# a. not in _trades
|
# a. not in _trades
|
||||||
# b. no cache used
|
# b. no cache used
|
||||||
|
|||||||
@@ -2408,6 +2408,7 @@ def test_refresh_latest_trades(mocker, default_conf, caplog, candle_type, tmp_pa
|
|||||||
use_trades_conf = default_conf
|
use_trades_conf = default_conf
|
||||||
use_trades_conf["exchange"]["use_public_trades"] = True
|
use_trades_conf["exchange"]["use_public_trades"] = True
|
||||||
use_trades_conf["datadir"] = tmp_path
|
use_trades_conf["datadir"] = tmp_path
|
||||||
|
use_trades_conf["orderflow"] = {"max_candles": 1500}
|
||||||
exchange = get_patched_exchange(mocker, use_trades_conf)
|
exchange = get_patched_exchange(mocker, use_trades_conf)
|
||||||
exchange._api_async.fetch_trades = get_mock_coro(trades)
|
exchange._api_async.fetch_trades = get_mock_coro(trades)
|
||||||
exchange._ft_has["exchange_has_overrides"]["fetchTrades"] = True
|
exchange._ft_has["exchange_has_overrides"]["fetchTrades"] = True
|
||||||
|
|||||||
Reference in New Issue
Block a user