From 14d6cdf9b2197518a123c09c38a07a4b76e9cd27 Mon Sep 17 00:00:00 2001 From: hroff-1902 <47309513+hroff-1902@users.noreply.github.com> Date: Sun, 10 Feb 2019 21:52:33 +0300 Subject: [PATCH] OHLCV should be float for TA-LIB indicators in the strategy Some exchanges (BitMEX) return integer values for Volume field. And sometimes even for OHLC -- same, on BitMEX, since price decrease is 0.5. TA-LIB functions assume floats and fail with exception. Of course, this can be fixed (converted) in ccxt for particular exchange, but TA-LIB will still fail for exchanges for that such a conversion is not implemented in ccxt code. So let's make perform this conversion here in order to be sure our strategy will not crash on a new exchange. --- freqtrade/data/converter.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/freqtrade/data/converter.py b/freqtrade/data/converter.py index 62e9a68f6..6abb87925 100644 --- a/freqtrade/data/converter.py +++ b/freqtrade/data/converter.py @@ -29,6 +29,10 @@ def parse_ticker_dataframe(ticker: list, ticker_interval: str, utc=True, infer_datetime_format=True) + # Some exchanges return int values for volume and even for ohlc. + # Convert them since TA-LIB indicators used in the strategy assume floats and fail with exception... + frame = frame.astype(dtype={'open': 'float', 'high': 'float', 'low': 'float', 'close': 'float', 'volume': 'float'}) + # group by index and aggregate results to eliminate duplicate ticks frame = frame.groupby(by='date', as_index=False, sort=True).agg({ 'open': 'first',