Simplify advise calls by extracting that part into a method.
This commit is contained in:
@@ -172,13 +172,7 @@ class Edge:
|
|||||||
pair_data = pair_data.sort_values(by=['date'])
|
pair_data = pair_data.sort_values(by=['date'])
|
||||||
pair_data = pair_data.reset_index(drop=True)
|
pair_data = pair_data.reset_index(drop=True)
|
||||||
|
|
||||||
df_analyzed = self.strategy.advise_exit(
|
df_analyzed = self.strategy.ft_advise_signals(pair_data, {'pair': pair})[headers].copy()
|
||||||
dataframe=self.strategy.advise_entry(
|
|
||||||
dataframe=pair_data,
|
|
||||||
metadata={'pair': pair}
|
|
||||||
),
|
|
||||||
metadata={'pair': pair}
|
|
||||||
)[headers].copy()
|
|
||||||
|
|
||||||
trades += self._find_trades_for_stoploss_range(df_analyzed, pair, self._stoploss_range)
|
trades += self._find_trades_for_stoploss_range(df_analyzed, pair, self._stoploss_range)
|
||||||
|
|
||||||
|
|||||||
@@ -367,11 +367,7 @@ class Backtesting:
|
|||||||
if not pair_data.empty:
|
if not pair_data.empty:
|
||||||
# Cleanup from prior runs
|
# Cleanup from prior runs
|
||||||
pair_data.drop(HEADERS[5:] + ['buy', 'sell'], axis=1, errors='ignore')
|
pair_data.drop(HEADERS[5:] + ['buy', 'sell'], axis=1, errors='ignore')
|
||||||
|
df_analyzed = self.strategy.ft_advise_signals(pair_data, {'pair': pair})
|
||||||
df_analyzed = self.strategy.advise_exit(
|
|
||||||
self.strategy.advise_entry(pair_data, {'pair': pair}),
|
|
||||||
{'pair': pair}
|
|
||||||
).copy()
|
|
||||||
# Trim startup period from analyzed dataframe
|
# Trim startup period from analyzed dataframe
|
||||||
df_analyzed = processed[pair] = pair_data = trim_dataframe(
|
df_analyzed = processed[pair] = pair_data = trim_dataframe(
|
||||||
df_analyzed, self.timerange, startup_candles=self.required_startup)
|
df_analyzed, self.timerange, startup_candles=self.required_startup)
|
||||||
|
|||||||
@@ -825,6 +825,7 @@ class IStrategy(ABC, HyperStrategyMixin):
|
|||||||
"""
|
"""
|
||||||
Parses the given candle (OHLCV) data and returns a populated DataFrame
|
Parses the given candle (OHLCV) data and returns a populated DataFrame
|
||||||
add several TA indicators and entry order signal to it
|
add several TA indicators and entry order signal to it
|
||||||
|
Should only be used in live.
|
||||||
:param dataframe: Dataframe containing data from exchange
|
:param dataframe: Dataframe containing data from exchange
|
||||||
:param metadata: Metadata dictionary with additional data (e.g. 'pair')
|
:param metadata: Metadata dictionary with additional data (e.g. 'pair')
|
||||||
:return: DataFrame of candle (OHLCV) data with indicator data and signals added
|
:return: DataFrame of candle (OHLCV) data with indicator data and signals added
|
||||||
@@ -1321,6 +1322,20 @@ class IStrategy(ABC, HyperStrategyMixin):
|
|||||||
return {pair: self.advise_indicators(pair_data.copy(), {'pair': pair}).copy()
|
return {pair: self.advise_indicators(pair_data.copy(), {'pair': pair}).copy()
|
||||||
for pair, pair_data in data.items()}
|
for pair, pair_data in data.items()}
|
||||||
|
|
||||||
|
def ft_advise_signals(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
||||||
|
"""
|
||||||
|
Call advise_entry and advise_exit and return the resulting dataframe.
|
||||||
|
:param dataframe: Dataframe containing data from exchange, as well as pre-calculated
|
||||||
|
indicators
|
||||||
|
:param metadata: Metadata dictionary with additional data (e.g. 'pair')
|
||||||
|
:return: DataFrame of candle (OHLCV) data with indicator data and signals added
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
dataframe = self.advise_entry(dataframe, metadata)
|
||||||
|
dataframe = self.advise_exit(dataframe, metadata)
|
||||||
|
return dataframe
|
||||||
|
|
||||||
def advise_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
def advise_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
||||||
"""
|
"""
|
||||||
Populate indicators that will be used in the Buy, Sell, short, exit_short strategy
|
Populate indicators that will be used in the Buy, Sell, short, exit_short strategy
|
||||||
|
|||||||
Reference in New Issue
Block a user