Small simplifications

This commit is contained in:
Matthias 2021-09-12 09:59:10 +02:00 committed by Rokas Kupstys
parent 5dc78a0c66
commit bb6ae682fc
2 changed files with 3 additions and 5 deletions

View File

@ -783,7 +783,7 @@ for more information.
Do not use `@informative` decorator if you need to use data of one informative pair when generating another informative pair. Instead, define informative pairs Do not use `@informative` decorator if you need to use data of one informative pair when generating another informative pair. Instead, define informative pairs
manually as described [in the DataProvider section](#complete-data-provider-sample). manually as described [in the DataProvider section](#complete-data-provider-sample).
!!! Warning !!! Warning "Duplicate method names"
Methods tagged with `@informative()` decorator must always have unique names! Re-using same name (for example when copy-pasting already defined informative method) Methods tagged with `@informative()` decorator must always have unique names! Re-using same name (for example when copy-pasting already defined informative method)
will overwrite previously defined method and not produce any errors due to limitations of Python programming language. In such cases you will find that indicators will overwrite previously defined method and not produce any errors due to limitations of Python programming language. In such cases you will find that indicators
created in earlier-defined methods are not available in the dataframe. Carefully review method names and make sure they are unique! created in earlier-defined methods are not available in the dataframe. Carefully review method names and make sure they are unique!

View File

@ -177,9 +177,7 @@ def _create_and_merge_informative_pair(strategy, dataframe: DataFrame, metadata:
asset = inf_data.asset or '' asset = inf_data.asset or ''
timeframe = inf_data.timeframe timeframe = inf_data.timeframe
fmt = inf_data.fmt fmt = inf_data.fmt
ffill = inf_data.ffill
config = strategy.config config = strategy.config
dp = strategy.dp
if asset: if asset:
# Insert stake currency if needed. # Insert stake currency if needed.
@ -208,7 +206,7 @@ def _create_and_merge_informative_pair(strategy, dataframe: DataFrame, metadata:
fmt = '{base}_' + fmt # Informatives of other pair fmt = '{base}_' + fmt # Informatives of other pair
inf_metadata = {'pair': asset, 'timeframe': timeframe} inf_metadata = {'pair': asset, 'timeframe': timeframe}
inf_dataframe = dp.get_pair_dataframe(asset, timeframe) inf_dataframe = strategy.dp.get_pair_dataframe(asset, timeframe)
inf_dataframe = populate_indicators(strategy, inf_dataframe, inf_metadata) inf_dataframe = populate_indicators(strategy, inf_dataframe, inf_metadata)
formatter: Any = None formatter: Any = None
@ -233,6 +231,6 @@ def _create_and_merge_informative_pair(strategy, dataframe: DataFrame, metadata:
raise OperationalException(f'Duplicate column name {date_column} exists in ' raise OperationalException(f'Duplicate column name {date_column} exists in '
f'dataframe! Ensure column names are unique!') f'dataframe! Ensure column names are unique!')
dataframe = merge_informative_pair(dataframe, inf_dataframe, strategy.timeframe, timeframe, dataframe = merge_informative_pair(dataframe, inf_dataframe, strategy.timeframe, timeframe,
ffill=ffill, append_timeframe=False, ffill=inf_data.ffill, append_timeframe=False,
date_column=date_column) date_column=date_column)
return dataframe return dataframe