Add ohlcv data interpolator
This commit is contained in:
parent
e215373ad0
commit
a021cd3ae2
@ -5,6 +5,8 @@ import logging
|
|||||||
import pandas as pd
|
import pandas as pd
|
||||||
from pandas import DataFrame, to_datetime
|
from pandas import DataFrame, to_datetime
|
||||||
|
|
||||||
|
from freqtrade.constants import TICKER_INTERVAL_MINUTES
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@ -36,6 +38,35 @@ def parse_ticker_dataframe(ticker: list) -> DataFrame:
|
|||||||
return frame
|
return frame
|
||||||
|
|
||||||
|
|
||||||
|
def ohlcv_fill_up_missing_data(dataframe: DataFrame, ticker_interval: str) -> DataFrame:
|
||||||
|
"""
|
||||||
|
Fills up missing data with 0 volume rows,
|
||||||
|
using the previous close as price for "open", "high" "low" and "close", volume is set to 0
|
||||||
|
|
||||||
|
"""
|
||||||
|
ohlc_dict = {
|
||||||
|
'open': 'first',
|
||||||
|
'high': 'max',
|
||||||
|
'low': 'min',
|
||||||
|
'close': 'last',
|
||||||
|
'volume': 'sum'
|
||||||
|
}
|
||||||
|
tick_mins = TICKER_INTERVAL_MINUTES[ticker_interval]
|
||||||
|
# Resample to create "NAN" values
|
||||||
|
df = dataframe.resample(f'{tick_mins}min', on='date').agg(ohlc_dict)
|
||||||
|
|
||||||
|
# Forwardfill close for missing columns
|
||||||
|
df['close'] = df['close'].fillna(method='ffill')
|
||||||
|
# Use close for "open, high, low"
|
||||||
|
df.loc[:, ['open', 'high', 'low']] = df[['open', 'high', 'low']].fillna(
|
||||||
|
value={'open': df['close'],
|
||||||
|
'high': df['close'],
|
||||||
|
'low': df['close'],
|
||||||
|
})
|
||||||
|
df.reset_index(inplace=True)
|
||||||
|
return df
|
||||||
|
|
||||||
|
|
||||||
def order_book_to_dataframe(bids: list, asks: list) -> DataFrame:
|
def order_book_to_dataframe(bids: list, asks: list) -> DataFrame:
|
||||||
"""
|
"""
|
||||||
Gets order book list, returns dataframe with below format per suggested by creslin
|
Gets order book list, returns dataframe with below format per suggested by creslin
|
||||||
|
Loading…
Reference in New Issue
Block a user