Merge pull request #35 from xmatthias/pair_to_strat_fix

fix mypy and tests
This commit is contained in:
Gert Wohlgemuth 2018-06-25 22:32:30 -07:00 committed by GitHub
commit 06f50eb4b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 10 deletions

View File

@ -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()}

View File

@ -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)

View File

@ -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)

View File

@ -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