Use changed pair-handling for providers

This commit is contained in:
Matthias 2019-12-25 11:09:59 +01:00
parent d923bab828
commit 1b90ec58b9
2 changed files with 17 additions and 18 deletions

View File

@ -4,15 +4,16 @@ It's subclasses handle and storing data from disk.
""" """
import logging import logging
from abc import ABC, abstractmethod, abstractclassmethod from abc import ABC, abstractclassmethod, abstractmethod
from copy import deepcopy
from pathlib import Path from pathlib import Path
from typing import Dict, List, Optional from typing import Dict, List, Optional
from copy import deepcopy
import arrow
from pandas import DataFrame from pandas import DataFrame
from freqtrade.configuration import TimeRange from freqtrade.configuration import TimeRange
from freqtrade.exchange import timeframe_to_seconds from freqtrade.exchange import timeframe_to_seconds
from freqtrade.data.converter import parse_ticker_dataframe
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -26,7 +27,7 @@ class IDataHandler(ABC):
def ohlcv_load(self, pair, timeframe: str, def ohlcv_load(self, pair, timeframe: str,
timerange: Optional[TimeRange] = None, timerange: Optional[TimeRange] = None,
fill_up_missing: bool = True, fill_missing: bool = True,
drop_incomplete: bool = True, drop_incomplete: bool = True,
startup_candles: int = 0, startup_candles: int = 0,
) -> DataFrame: ) -> DataFrame:
@ -48,9 +49,9 @@ class IDataHandler(ABC):
pairdf = self._ohlcv_load(pair, timeframe, pairdf = self._ohlcv_load(pair, timeframe,
timerange=timerange_startup, timerange=timerange_startup,
fill_missing=fill_up_missing, fill_missing=fill_missing,
drop_incomplete=drop_incomplete) drop_incomplete=drop_incomplete)
if pairdf.empty(): if pairdf.empty:
logger.warning( logger.warning(
f'No history data for pair: "{pair}", timeframe: {timeframe}. ' f'No history data for pair: "{pair}", timeframe: {timeframe}. '
'Use `freqtrade download-data` to download the data' 'Use `freqtrade download-data` to download the data'
@ -61,7 +62,7 @@ class IDataHandler(ABC):
self._validate_pairdata(pair, pairdf, timerange_startup) self._validate_pairdata(pair, pairdf, timerange_startup)
return pairdf return pairdf
def _validate_pairdata(pair, pairdata: DataFrame, timerange: TimeRange): def _validate_pairdata(self, pair, pairdata: DataFrame, timerange: TimeRange):
""" """
Validates pairdata for missing data at start end end and logs warnings. Validates pairdata for missing data at start end end and logs warnings.
:param pairdata: Dataframe to validate :param pairdata: Dataframe to validate

View File

@ -253,14 +253,12 @@ def convert_trades_format(config: Dict[str, Any], convert_from: str, convert_to:
if 'pairs' not in config: if 'pairs' not in config:
config['pairs'] = SrcClass.trades_get_pairs(Path(config['datadir'])) config['pairs'] = SrcClass.trades_get_pairs(Path(config['datadir']))
logger.info(f"Converting trades for {config['pairs']}") logger.info(f"Converting trades for {config['pairs']}")
src = SrcClass(Path(config['datadir']))
trg = TrgClass(Path(config['datadir']))
for pair in config['pairs']: for pair in config['pairs']:
print(pair) data = src.trades_load(pair=pair)
src = SrcClass(Path(config['datadir']), pair)
trg = TrgClass(Path(config['datadir']), pair)
data = src.trades_load()
logger.info(f"Converting {len(data)} trades for {pair}") logger.info(f"Converting {len(data)} trades for {pair}")
trg.trades_store(data) trg.trades_store(pair, data)
def convert_ohlcv_format(config: Dict[str, Any], convert_from: str, convert_to: str): def convert_ohlcv_format(config: Dict[str, Any], convert_from: str, convert_to: str):
@ -281,14 +279,14 @@ def convert_ohlcv_format(config: Dict[str, Any], convert_from: str, convert_to:
timeframe)) timeframe))
logger.info(f"Converting OHLCV for {config['pairs']}") logger.info(f"Converting OHLCV for {config['pairs']}")
for timeframe in timeframes: src = SrcClass(Path(config['datadir']))
trg = TrgClass(Path(config['datadir']))
for timeframe in timeframes:
for pair in config['pairs']: for pair in config['pairs']:
src = SrcClass(Path(config['datadir']), pair) data = src.ohlcv_load(pair=pair, timeframe=timeframe)
trg = TrgClass(Path(config['datadir']), pair)
data = src.ohlcv_load(timeframe=timeframe)
logger.info(f"Converting {len(data)} candles for {pair}") logger.info(f"Converting {len(data)} candles for {pair}")
trg.ohlcv_store(timeframe=timeframe, data=data) trg.ohlcv_store(pair=pair, timeframe=timeframe, data=data)
def start_convert_data(args: Dict[str, Any], ohlcv: bool = True) -> None: def start_convert_data(args: Dict[str, Any], ohlcv: bool = True) -> None: