Merge pull request #35 from xmatthias/pair_to_strat_fix
fix mypy and tests
This commit is contained in:
commit
06f50eb4b5
@ -65,7 +65,7 @@ class Analyze(object):
|
||||
frame.drop(frame.tail(1).index, inplace=True) # eliminate partial candle
|
||||
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
|
||||
|
||||
@ -75,7 +75,7 @@ class Analyze(object):
|
||||
"""
|
||||
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
|
||||
:param dataframe: DataFrame
|
||||
@ -83,7 +83,7 @@ class Analyze(object):
|
||||
"""
|
||||
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
|
||||
:param dataframe: DataFrame
|
||||
@ -215,5 +215,5 @@ class Analyze(object):
|
||||
"""
|
||||
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()}
|
||||
|
@ -162,7 +162,7 @@ class Backtesting(object):
|
||||
pair_data['buy'], pair_data['sell'] = 0, 0 # cleanup from previous run
|
||||
|
||||
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
|
||||
ticker_data.loc[:, 'buy'] = ticker_data['buy'].shift(1)
|
||||
|
@ -142,7 +142,7 @@ def _trend(signals, buy_value, sell_value):
|
||||
return signals
|
||||
|
||||
|
||||
def _trend_alternate(dataframe=None):
|
||||
def _trend_alternate(dataframe=None, pair=None):
|
||||
signals = dataframe
|
||||
low = signals['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):
|
||||
# Override the default buy trend function in our default_strategy
|
||||
def fun(dataframe=None):
|
||||
def fun(dataframe=None, pair=None):
|
||||
buy_value = 1
|
||||
sell_value = 1
|
||||
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):
|
||||
# Override the default buy trend function in our default_strategy
|
||||
def fun(dataframe=None):
|
||||
def fun(dataframe=None, pair=None):
|
||||
buy_value = 0
|
||||
sell_value = 1
|
||||
return _trend(dataframe, buy_value, sell_value)
|
||||
|
@ -56,13 +56,15 @@ def test_dataframe_correct_columns(result):
|
||||
|
||||
def test_populates_buy_trend(result):
|
||||
# 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
|
||||
|
||||
|
||||
def test_populates_sell_trend(result):
|
||||
# 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
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user