Skip to content

Commit d2a70bd

Browse files
committed
Add metrics tests
1 parent 6fa0eb0 commit d2a70bd

File tree

25 files changed

+265165
-1
lines changed

25 files changed

+265165
-1
lines changed

tests/domain/models/backtesting/test_combine.py

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,25 @@
1+
import os
12
from unittest import TestCase
23
from investing_algorithm_framework.domain import BacktestMetrics, \
3-
BacktestSummaryMetrics, Trade, generate_backtest_summary_metrics
4+
BacktestSummaryMetrics, Trade, generate_backtest_summary_metrics, \
5+
combine_backtests, Backtest
46
from datetime import datetime, date
57

68
class TestCombine(TestCase):
79

10+
def setUp(self):
11+
self.resource_directory = os.path.abspath(
12+
os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources')
13+
)
14+
self.test_data_directory = os.path.join(
15+
self.resource_directory,
16+
"test_data"
17+
)
18+
self.test_backtests_directory = os.path.join(
19+
self.test_data_directory,
20+
"backtests"
21+
)
22+
823
def test_add(self):
924
# Metrics one: a winning backtest
1025
metrics_one = BacktestMetrics(
@@ -148,3 +163,20 @@ def test_add(self):
148163
# Extreme metrics
149164
self.assertEqual(summary.max_drawdown, 0.2) # worst of the two
150165
self.assertEqual(summary.max_drawdown_duration, 30) # longest
166+
167+
def test_add_from_storage(self):
168+
backtest_one_path = os.path.join(
169+
self.test_backtests_directory,
170+
"backtest_one"
171+
)
172+
backtest_two_path = os.path.join(
173+
self.test_backtests_directory,
174+
"backtest_two"
175+
)
176+
backtest_one = Backtest.open(backtest_one_path)
177+
backtest_two = Backtest.open(backtest_two_path)
178+
179+
self.assertEqual(3, len(backtest_one.get_all_backtest_runs()))
180+
self.assertEqual(3, len(backtest_two.get_all_backtest_runs()))
181+
backtest = combine_backtests([backtest_one, backtest_two])
182+
self.assertEqual(6, len(backtest.get_all_backtest_runs()))
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"id": "c1becef7-85a6-4a73-aa9b-dbdfcfc1cbe3"
3+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"params": {
3+
"macd_short_period": 12,
4+
"macd_long_period": 26,
5+
"macd_signal_period": 9,
6+
"close_timeframe": "2h",
7+
"macd_timeframe": "1D",
8+
"stochastic_timeframe": "1D",
9+
"stochastic_k_period": 14,
10+
"stochastic_d_period": 3,
11+
"stochastic_k_slowing": 3,
12+
"stochastic_lookback_window_size": 12,
13+
"number_of_neighbors_to_compare": 3,
14+
"min_consecutive": 2,
15+
"stochastic_oversold_threshold": 15,
16+
"stochastic_overbought_threshold": 80,
17+
"divergence_lookback_window_size": 6
18+
},
19+
"id": "e19c509c"
20+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"risk_free_rate": 0.027
3+
}

0 commit comments

Comments
 (0)