Merge pull request #3719 from freqtrade/fix/crossed_numpy_types
Allow numpy numbers as comparisons, too
This commit is contained in:
commit
d1fe3c1a3d
2
freqtrade/vendor/qtpylib/indicators.py
vendored
2
freqtrade/vendor/qtpylib/indicators.py
vendored
@ -222,7 +222,7 @@ def crossed(series1, series2, direction=None):
|
||||
if isinstance(series1, np.ndarray):
|
||||
series1 = pd.Series(series1)
|
||||
|
||||
if isinstance(series2, (float, int, np.ndarray)):
|
||||
if isinstance(series2, (float, int, np.ndarray, np.integer, np.floating)):
|
||||
series2 = pd.Series(index=series1.index, data=series2)
|
||||
|
||||
if direction is None or direction == "above":
|
||||
|
18
tests/test_indicators.py
Normal file
18
tests/test_indicators.py
Normal file
@ -0,0 +1,18 @@
|
||||
import freqtrade.vendor.qtpylib.indicators as qtpylib
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
|
||||
|
||||
def test_crossed_numpy_types():
|
||||
"""
|
||||
This test is only present since this method currently diverges from the qtpylib implementation.
|
||||
And we must ensure to not break this again once we update from the original source.
|
||||
"""
|
||||
series = pd.Series([56, 97, 19, 76, 65, 25, 87, 91, 79, 79])
|
||||
expected_result = pd.Series([False, True, False, True, False, False, True, False, False, False])
|
||||
|
||||
assert qtpylib.crossed_above(series, 60).equals(expected_result)
|
||||
assert qtpylib.crossed_above(series, 60.0).equals(expected_result)
|
||||
assert qtpylib.crossed_above(series, np.int32(60)).equals(expected_result)
|
||||
assert qtpylib.crossed_above(series, np.int64(60)).equals(expected_result)
|
||||
assert qtpylib.crossed_above(series, np.float64(60.0)).equals(expected_result)
|
@ -1,5 +1,3 @@
|
||||
|
||||
|
||||
import talib.abstract as ta
|
||||
import pandas as pd
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user