Rename to converter
This commit is contained in:
		
							
								
								
									
										59
									
								
								freqtrade/data/converter.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								freqtrade/data/converter.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| """ | ||||
| Functions to convert data from one format to another | ||||
| """ | ||||
| import logging | ||||
| import pandas as pd | ||||
| from pandas import DataFrame, to_datetime | ||||
|  | ||||
| logger = logging.getLogger(__name__) | ||||
|  | ||||
|  | ||||
| def parse_ticker_dataframe(ticker: list) -> DataFrame: | ||||
|     """ | ||||
|     Converts a ticker-list (format ccxt.fetch_ohlcv) to a Dataframe | ||||
|     :param ticker: ticker list, as returned by exchange.async_get_candle_history | ||||
|     :return: DataFrame | ||||
|     """ | ||||
|     logger.debug("Parsing tickerlist to dataframe") | ||||
|     cols = ['date', 'open', 'high', 'low', 'close', 'volume'] | ||||
|     frame = DataFrame(ticker, columns=cols) | ||||
|  | ||||
|     frame['date'] = to_datetime(frame['date'], | ||||
|                                 unit='ms', | ||||
|                                 utc=True, | ||||
|                                 infer_datetime_format=True) | ||||
|  | ||||
|     # group by index and aggregate results to eliminate duplicate ticks | ||||
|     frame = frame.groupby(by='date', as_index=False, sort=True).agg({ | ||||
|         'open': 'first', | ||||
|         'high': 'max', | ||||
|         'low': 'min', | ||||
|         'close': 'last', | ||||
|         'volume': 'max', | ||||
|     }) | ||||
|     frame.drop(frame.tail(1).index, inplace=True)     # eliminate partial candle | ||||
|     return frame | ||||
|  | ||||
|  | ||||
| def order_book_to_dataframe(bids: list, asks: list) -> DataFrame: | ||||
|     """ | ||||
|     Gets order book list, returns dataframe with below format per suggested by creslin | ||||
|     ------------------------------------------------------------------- | ||||
|      b_sum       b_size       bids       asks       a_size       a_sum | ||||
|     ------------------------------------------------------------------- | ||||
|     """ | ||||
|     cols = ['bids', 'b_size'] | ||||
|  | ||||
|     bids_frame = DataFrame(bids, columns=cols) | ||||
|     # add cumulative sum column | ||||
|     bids_frame['b_sum'] = bids_frame['b_size'].cumsum() | ||||
|     cols2 = ['asks', 'a_size'] | ||||
|     asks_frame = DataFrame(asks, columns=cols2) | ||||
|     # add cumulative sum column | ||||
|     asks_frame['a_sum'] = asks_frame['a_size'].cumsum() | ||||
|  | ||||
|     frame = pd.concat([bids_frame['b_sum'], bids_frame['b_size'], bids_frame['bids'], | ||||
|                        asks_frame['asks'], asks_frame['a_size'], asks_frame['a_sum']], axis=1, | ||||
|                       keys=['b_sum', 'b_size', 'bids', 'asks', 'a_size', 'a_sum']) | ||||
|     # logger.info('order book %s', frame ) | ||||
|     return frame | ||||
		Reference in New Issue
	
	Block a user