From 3b0a304508429f95ab601a8c7a16658c9a361709 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste LE STANG Date: Sat, 20 Jan 2018 15:03:12 +0100 Subject: [PATCH 1/3] Fixing the 'BV' key being missing for USDT --- freqtrade/analyze.py | 3 ++- freqtrade/tests/conftest.py | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/freqtrade/analyze.py b/freqtrade/analyze.py index 039002ab2..6a02079fa 100644 --- a/freqtrade/analyze.py +++ b/freqtrade/analyze.py @@ -30,8 +30,9 @@ def parse_ticker_dataframe(ticker: list) -> DataFrame: """ columns = {'C': 'close', 'V': 'volume', 'O': 'open', 'H': 'high', 'L': 'low', 'T': 'date'} frame = DataFrame(ticker) \ - .drop('BV', 1) \ .rename(columns=columns) + if 'BV' in frame : + frame.drop('BV', 1, inplace=True) frame['date'] = to_datetime(frame['date'], utc=True, infer_datetime_format=True) frame.sort_values('date', inplace=True) return frame diff --git a/freqtrade/tests/conftest.py b/freqtrade/tests/conftest.py index c779aa726..860f68bdc 100644 --- a/freqtrade/tests/conftest.py +++ b/freqtrade/tests/conftest.py @@ -195,7 +195,6 @@ def ticker_history(): "C": 8.88e-05, "V": 991.09056638, "T": "2017-11-26T08:50:00", - "BV": 0.0877869 }, { "O": 8.88e-05, @@ -204,7 +203,6 @@ def ticker_history(): "C": 8.893e-05, "V": 658.77935965, "T": "2017-11-26T08:55:00", - "BV": 0.05874751 }, { "O": 8.891e-05, @@ -213,6 +211,5 @@ def ticker_history(): "C": 8.877e-05, "V": 7920.73570705, "T": "2017-11-26T09:00:00", - "BV": 0.7039405 } ] From 97ec41d1b7528d31ff67be97137cc83384e1c4ee Mon Sep 17 00:00:00 2001 From: Jean-Baptiste LE STANG Date: Sat, 20 Jan 2018 15:22:07 +0100 Subject: [PATCH 2/3] fXXXX8 --- freqtrade/analyze.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/freqtrade/analyze.py b/freqtrade/analyze.py index 6a02079fa..42c6c4879 100644 --- a/freqtrade/analyze.py +++ b/freqtrade/analyze.py @@ -31,7 +31,7 @@ def parse_ticker_dataframe(ticker: list) -> DataFrame: columns = {'C': 'close', 'V': 'volume', 'O': 'open', 'H': 'high', 'L': 'low', 'T': 'date'} frame = DataFrame(ticker) \ .rename(columns=columns) - if 'BV' in frame : + if 'BV' in frame: frame.drop('BV', 1, inplace=True) frame['date'] = to_datetime(frame['date'], utc=True, infer_datetime_format=True) frame.sort_values('date', inplace=True) From 6f7e1fd1c21593583d4c995221b9b232b9b558e1 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste LE STANG Date: Sun, 21 Jan 2018 14:25:15 +0100 Subject: [PATCH 3/3] With a better unit test thanks @glonlas --- freqtrade/tests/conftest.py | 33 +++++++++++++++++++++++++++++++++ freqtrade/tests/test_analyze.py | 13 +++++++++++++ 2 files changed, 46 insertions(+) diff --git a/freqtrade/tests/conftest.py b/freqtrade/tests/conftest.py index 860f68bdc..e564ed6eb 100644 --- a/freqtrade/tests/conftest.py +++ b/freqtrade/tests/conftest.py @@ -195,6 +195,7 @@ def ticker_history(): "C": 8.88e-05, "V": 991.09056638, "T": "2017-11-26T08:50:00", + "BV": 0.0877869 }, { "O": 8.88e-05, @@ -203,6 +204,7 @@ def ticker_history(): "C": 8.893e-05, "V": 658.77935965, "T": "2017-11-26T08:55:00", + "BV": 0.05874751 }, { "O": 8.891e-05, @@ -211,5 +213,36 @@ def ticker_history(): "C": 8.877e-05, "V": 7920.73570705, "T": "2017-11-26T09:00:00", + "BV": 0.7039405 + } + ] + + +@pytest.fixture +def ticker_history_without_bv(): + return [ + { + "O": 8.794e-05, + "H": 8.948e-05, + "L": 8.794e-05, + "C": 8.88e-05, + "V": 991.09056638, + "T": "2017-11-26T08:50:00" + }, + { + "O": 8.88e-05, + "H": 8.942e-05, + "L": 8.88e-05, + "C": 8.893e-05, + "V": 658.77935965, + "T": "2017-11-26T08:55:00" + }, + { + "O": 8.891e-05, + "H": 8.893e-05, + "L": 8.875e-05, + "C": 8.877e-05, + "V": 7920.73570705, + "T": "2017-11-26T09:00:00" } ] diff --git a/freqtrade/tests/test_analyze.py b/freqtrade/tests/test_analyze.py index b8cd2f6e3..5653b0d5a 100644 --- a/freqtrade/tests/test_analyze.py +++ b/freqtrade/tests/test_analyze.py @@ -72,3 +72,16 @@ def test_get_signal_handles_exceptions(mocker): side_effect=Exception('invalid ticker history ')) assert get_signal('BTC-ETH') == (False, False) + + +def test_parse_ticker_dataframe(ticker_history, ticker_history_without_bv): + + columns = ['close', 'high', 'low', 'open', 'date', 'volume'] + + # Test file with BV data + dataframe = parse_ticker_dataframe(ticker_history) + assert dataframe.columns.tolist() == columns + + # Test file without BV data + dataframe = parse_ticker_dataframe(ticker_history_without_bv) + assert dataframe.columns.tolist() == columns