def convert_trades_to_ohlcv( pairs: List[str], timeframes: List[str], datadir: Path, timerange: TimeRange, erase: bool = False, data_format_ohlcv: str = 'json', data_format_trades: str = 'jsongz', candle_type: CandleType = CandleType.SPOT ) -> None: """ Convert stored trades data to ohlcv data """ data_handler_trades = get_datahandler(datadir, data_format=data_format_trades) data_handler_ohlcv = get_datahandler(datadir, data_format=data_format_ohlcv) for pair in pairs: trades = data_handler_trades.trades_load(pair) for timeframe in timeframes: if erase: if data_handler_ohlcv.ohlcv_purge(pair, timeframe, candle_type=candle_type): logger.info(f'Deleting existing data for pair {pair}, interval {timeframe}.') try: ohlcv = trades_to_ohlcv(trades, timeframe) # Store ohlcv data_handler_ohlcv.ohlcv_store(pair, timeframe, data=ohlcv, candle_type=candle_type) except ValueError: logger.exception(f'Could not convert {pair} to OHLCV.')
def convert_trades_to_ohlcv(pairs: List[str], timeframes: List[str], datadir: Path, timerange: TimeRange, erase: bool = False, data_format_ohlcv: str = 'json', data_format_trades: str = 'jsongz') -> None: """ Convert stored trades data to ohlcv data """ data_handler_trades = get_datahandler(datadir, data_format=data_format_trades) data_handler_ohlcv = get_datahandler(datadir, data_format=data_format_ohlcv) for pair in pairs: trades = data_handler_trades.trades_load(pair) for timeframe in timeframes: if erase: if data_handler_ohlcv.ohlcv_purge(pair, timeframe): logger.info( f'Deleting existing data for pair {pair}, interval {timeframe}.' ) ohlcv = trades_to_ohlcv(trades, timeframe) # Store ohlcv data_handler_ohlcv.ohlcv_store(pair, timeframe, data=ohlcv)
def test_trades_to_ohlcv(ohlcv_history_list, caplog): caplog.set_level(logging.DEBUG) with pytest.raises(ValueError, match="Trade-list empty."): trades_to_ohlcv([], '1m') trades = [ [1570752011620, "13519807", None, "sell", 0.00141342, 23.0, 0.03250866], [1570752011620, "13519808", None, "sell", 0.00141266, 54.0, 0.07628364], [1570752017964, "13519809", None, "sell", 0.00141266, 8.0, 0.01130128]] df = trades_to_ohlcv(trades, '1m') assert not df.empty assert len(df) == 1 assert 'open' in df.columns assert 'high' in df.columns assert 'low' in df.columns assert 'close' in df.columns assert df.loc[:, 'high'][0] == 0.00141342 assert df.loc[:, 'low'][0] == 0.00141266
def convert_trades_to_ohlcv(pairs: List[str], timeframes: List[str], datadir: Path, timerange: TimeRange, erase=False) -> None: """ Convert stored trades data to ohlcv data """ for pair in pairs: trades = load_trades_file(datadir, pair) for timeframe in timeframes: ohlcv_file = pair_data_filename(datadir, pair, timeframe) if erase and ohlcv_file.exists(): logger.info(f'Deleting existing data for pair {pair}, interval {timeframe}.') ohlcv_file.unlink() ohlcv = trades_to_ohlcv(trades, timeframe) # Store ohlcv store_tickerdata_file(datadir, pair, timeframe, data=ohlcv)