Skip to content

Commit 2fee031

Browse files
committed
Fix metadata initialization
1 parent c5cc66b commit 2fee031

File tree

6 files changed

+35
-10
lines changed

6 files changed

+35
-10
lines changed

investing_algorithm_framework/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
pretty_print_orders, pretty_print_backtest, select_backtest_date_ranges, \
66
get_equity_curve_with_drawdown_chart, \
77
get_rolling_sharpe_ratio_chart, rank_results, \
8-
get_monthly_returns_heatmap_chart, defaults_ranking_weights, \
8+
get_monthly_returns_heatmap_chart, create_weights, \
99
get_yearly_returns_bar_chart, get_entry_and_exit_signals, \
1010
get_ohlcv_data_completeness_chart
1111
from .domain import ApiException, \
@@ -159,7 +159,7 @@
159159
"get_yearly_returns_bar_chart",
160160
"get_ohlcv_data_completeness_chart",
161161
"rank_results",
162-
"defaults_ranking_weights",
162+
"create_weights",
163163
"get_entry_and_exit_signals",
164164
"get_growth",
165165
"get_growth_percentage"

investing_algorithm_framework/app/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
get_yearly_returns_bar_chart, \
1515
get_ohlcv_data_completeness_chart, get_entry_and_exit_signals
1616
from .analysis import select_backtest_date_ranges, rank_results, \
17-
defaults_ranking_weights
17+
create_weights
1818

1919

2020
__all__ = [
@@ -39,6 +39,6 @@
3939
"get_yearly_returns_bar_chart",
4040
"get_ohlcv_data_completeness_chart",
4141
"rank_results",
42-
"defaults_ranking_weights",
42+
"create_weights",
4343
"get_entry_and_exit_signals"
4444
]

investing_algorithm_framework/app/algorithm/algorithm.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ def __init__(
3333
strategies=None,
3434
tasks: List = None,
3535
data_sources: List[DataSource] = None,
36-
on_strategy_run_hooks=None
36+
on_strategy_run_hooks=None,
37+
metadata=None
3738
):
3839
self._name = name
3940
self._context = {}
@@ -46,6 +47,7 @@ def __init__(
4647
self._tasks = []
4748
self._data_sources = []
4849
self._on_strategy_run_hooks = []
50+
self.metadata = metadata
4951

5052
if data_sources is not None:
5153
self._data_sources = data_sources
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
from .backtest_data_ranges import select_backtest_date_ranges
2-
from .ranking import rank_results, defaults_ranking_weights
2+
from .ranking import rank_results, create_weights
33

44
__all__ = [
55
"select_backtest_date_ranges",
66
"rank_results",
7-
"defaults_ranking_weights"
7+
"create_weights"
88
]

investing_algorithm_framework/app/app.py

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -898,7 +898,18 @@ def run_backtest(
898898
risk_free_rate=risk_free_rate,
899899
)
900900

901-
backtest.metadata = metadata if metadata is not None else {}
901+
# Add the metadata to the backtest
902+
if metadata is None:
903+
904+
if strategy.metadata is not None:
905+
backtest.metadata = strategy.metadata
906+
elif algorithm.metadata is not None:
907+
backtest.metadata = algorithm.metadata
908+
else:
909+
backtest.metadata = {}
910+
else:
911+
backtest.metadata = metadata
912+
902913
self.cleanup_backtest_resources()
903914

904915
if save and directory:
@@ -965,6 +976,18 @@ def run_vector_backtests(
965976
data_sources, backtest_date_range
966977
)
967978

979+
if risk_free_rate is None:
980+
logger.info("No risk free rate provided, retrieving it...")
981+
risk_free_rate = get_risk_free_rate_us()
982+
983+
if risk_free_rate is None:
984+
raise OperationalException(
985+
"Could not retrieve risk free rate for backtest metrics."
986+
"Please provide a risk free as an argument when running "
987+
"your backtest or make sure you have an internet "
988+
"connection"
989+
)
990+
968991
for strategy in tqdm(strategies):
969992
backtests.append(
970993
self.run_vector_backtest(
@@ -1063,7 +1086,7 @@ def run_vector_backtest(
10631086
# Add the metadata to the backtest
10641087
if metadata is None:
10651088

1066-
if strategy.metadata is not None:
1089+
if strategy.metadata is None:
10671090
backtest.metadata = {}
10681091
else:
10691092
backtest.metadata = strategy.metadata

investing_algorithm_framework/app/strategy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def __init__(
7171
if data_sources is not None:
7272
self.data_sources = data_sources
7373

74-
self.metadata = metadata if metadata is not None else {}
74+
self.metadata = metadata
7575

7676
if decorated is not None:
7777
self.decorated = decorated

0 commit comments

Comments
 (0)