fix mypy and tests
This commit is contained in:
parent
1c8b29b848
commit
407d340b9c
@ -65,7 +65,7 @@ class Analyze(object):
|
|||||||
frame.drop(frame.tail(1).index, inplace=True) # eliminate partial candle
|
frame.drop(frame.tail(1).index, inplace=True) # eliminate partial candle
|
||||||
return frame
|
return frame
|
||||||
|
|
||||||
def populate_indicators(self, dataframe: DataFrame, pair: str = None) -> DataFrame:
|
def populate_indicators(self, dataframe: DataFrame, pair: str) -> DataFrame:
|
||||||
"""
|
"""
|
||||||
Adds several different TA indicators to the given DataFrame
|
Adds several different TA indicators to the given DataFrame
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ class Analyze(object):
|
|||||||
"""
|
"""
|
||||||
return self.strategy.advise_indicators(dataframe=dataframe, pair=pair)
|
return self.strategy.advise_indicators(dataframe=dataframe, pair=pair)
|
||||||
|
|
||||||
def populate_buy_trend(self, dataframe: DataFrame, pair: str = None) -> DataFrame:
|
def populate_buy_trend(self, dataframe: DataFrame, pair: str) -> DataFrame:
|
||||||
"""
|
"""
|
||||||
Based on TA indicators, populates the buy signal for the given dataframe
|
Based on TA indicators, populates the buy signal for the given dataframe
|
||||||
:param dataframe: DataFrame
|
:param dataframe: DataFrame
|
||||||
@ -83,7 +83,7 @@ class Analyze(object):
|
|||||||
"""
|
"""
|
||||||
return self.strategy.advise_buy(dataframe=dataframe, pair=pair)
|
return self.strategy.advise_buy(dataframe=dataframe, pair=pair)
|
||||||
|
|
||||||
def populate_sell_trend(self, dataframe: DataFrame, pair: str = None) -> DataFrame:
|
def populate_sell_trend(self, dataframe: DataFrame, pair: str) -> DataFrame:
|
||||||
"""
|
"""
|
||||||
Based on TA indicators, populates the sell signal for the given dataframe
|
Based on TA indicators, populates the sell signal for the given dataframe
|
||||||
:param dataframe: DataFrame
|
:param dataframe: DataFrame
|
||||||
@ -215,5 +215,5 @@ class Analyze(object):
|
|||||||
"""
|
"""
|
||||||
Creates a dataframe and populates indicators for given ticker data
|
Creates a dataframe and populates indicators for given ticker data
|
||||||
"""
|
"""
|
||||||
return {pair: self.populate_indicators(self.parse_ticker_dataframe(pair_data))
|
return {pair: self.populate_indicators(self.parse_ticker_dataframe(pair_data), pair)
|
||||||
for pair, pair_data in tickerdata.items()}
|
for pair, pair_data in tickerdata.items()}
|
||||||
|
@ -162,7 +162,7 @@ class Backtesting(object):
|
|||||||
pair_data['buy'], pair_data['sell'] = 0, 0 # cleanup from previous run
|
pair_data['buy'], pair_data['sell'] = 0, 0 # cleanup from previous run
|
||||||
|
|
||||||
ticker_data = self.populate_sell_trend(
|
ticker_data = self.populate_sell_trend(
|
||||||
self.populate_buy_trend(pair_data))[headers].copy()
|
self.populate_buy_trend(pair_data, pair), pair)[headers].copy()
|
||||||
|
|
||||||
# to avoid using data from future, we buy/sell with signal from previous candle
|
# to avoid using data from future, we buy/sell with signal from previous candle
|
||||||
ticker_data.loc[:, 'buy'] = ticker_data['buy'].shift(1)
|
ticker_data.loc[:, 'buy'] = ticker_data['buy'].shift(1)
|
||||||
|
@ -142,7 +142,7 @@ def _trend(signals, buy_value, sell_value):
|
|||||||
return signals
|
return signals
|
||||||
|
|
||||||
|
|
||||||
def _trend_alternate(dataframe=None):
|
def _trend_alternate(dataframe=None, pair=None):
|
||||||
signals = dataframe
|
signals = dataframe
|
||||||
low = signals['low']
|
low = signals['low']
|
||||||
n = len(low)
|
n = len(low)
|
||||||
@ -534,7 +534,7 @@ def test_backtest_ticks(default_conf, fee, mocker):
|
|||||||
|
|
||||||
def test_backtest_clash_buy_sell(mocker, default_conf):
|
def test_backtest_clash_buy_sell(mocker, default_conf):
|
||||||
# Override the default buy trend function in our default_strategy
|
# Override the default buy trend function in our default_strategy
|
||||||
def fun(dataframe=None):
|
def fun(dataframe=None, pair=None):
|
||||||
buy_value = 1
|
buy_value = 1
|
||||||
sell_value = 1
|
sell_value = 1
|
||||||
return _trend(dataframe, buy_value, sell_value)
|
return _trend(dataframe, buy_value, sell_value)
|
||||||
@ -550,7 +550,7 @@ def test_backtest_clash_buy_sell(mocker, default_conf):
|
|||||||
|
|
||||||
def test_backtest_only_sell(mocker, default_conf):
|
def test_backtest_only_sell(mocker, default_conf):
|
||||||
# Override the default buy trend function in our default_strategy
|
# Override the default buy trend function in our default_strategy
|
||||||
def fun(dataframe=None):
|
def fun(dataframe=None, pair=None):
|
||||||
buy_value = 0
|
buy_value = 0
|
||||||
sell_value = 1
|
sell_value = 1
|
||||||
return _trend(dataframe, buy_value, sell_value)
|
return _trend(dataframe, buy_value, sell_value)
|
||||||
|
@ -56,13 +56,15 @@ def test_dataframe_correct_columns(result):
|
|||||||
|
|
||||||
def test_populates_buy_trend(result):
|
def test_populates_buy_trend(result):
|
||||||
# Load the default strategy for the unit test, because this logic is done in main.py
|
# Load the default strategy for the unit test, because this logic is done in main.py
|
||||||
dataframe = _ANALYZE.populate_buy_trend(_ANALYZE.populate_indicators(result))
|
dataframe = _ANALYZE.populate_buy_trend(
|
||||||
|
_ANALYZE.populate_indicators(result, 'UNITTEST/BTC'), 'UNITTEST/BTC')
|
||||||
assert 'buy' in dataframe.columns
|
assert 'buy' in dataframe.columns
|
||||||
|
|
||||||
|
|
||||||
def test_populates_sell_trend(result):
|
def test_populates_sell_trend(result):
|
||||||
# Load the default strategy for the unit test, because this logic is done in main.py
|
# Load the default strategy for the unit test, because this logic is done in main.py
|
||||||
dataframe = _ANALYZE.populate_sell_trend(_ANALYZE.populate_indicators(result))
|
dataframe = _ANALYZE.populate_sell_trend(
|
||||||
|
_ANALYZE.populate_indicators(result, 'UNITTEST/BTC'), 'UNITTEST/BTC')
|
||||||
assert 'sell' in dataframe.columns
|
assert 'sell' in dataframe.columns
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user