Fix bounded S/R training portfolio calendars
This commit is contained in:
@@ -604,6 +604,34 @@ class TestSimulatePortfolio:
|
||||
def test_nothing_qualified_returns_none(self):
|
||||
assert bt._simulate_portfolio([], {}, None, "hold", 30) is None
|
||||
|
||||
def test_configured_entry_end_truncates_flat_calendar_tail(self, monkeypatch):
|
||||
closes = [100.0 + i for i in range(100)]
|
||||
prices = {"AAA": _sim_prices(self.ORD, closes)}
|
||||
cand = _sim_cand("AAA", self.ORD, entry=100.0, stop=95.0, target=130.0)
|
||||
monkeypatch.setenv(
|
||||
"BACKTEST_ENTRY_END", date.fromordinal(self.ORD).isoformat()
|
||||
)
|
||||
|
||||
sim = bt._simulate_portfolio([cand], prices, None, "hold", 3)
|
||||
|
||||
assert sim is not None
|
||||
assert sim["end_date"] == date.fromordinal(self.ORD + 3).isoformat()
|
||||
|
||||
def test_configured_entry_start_aligns_book_calendar(self, monkeypatch):
|
||||
closes = [100.0 + i for i in range(10)]
|
||||
prices = {"AAA": _sim_prices(self.ORD, closes)}
|
||||
cand = _sim_cand(
|
||||
"AAA", self.ORD + 1, entry=101.0, stop=96.0, target=130.0
|
||||
)
|
||||
monkeypatch.setenv(
|
||||
"BACKTEST_ENTRY_START", date.fromordinal(self.ORD).isoformat()
|
||||
)
|
||||
|
||||
sim = bt._simulate_portfolio([cand], prices, None, "hold", 3)
|
||||
|
||||
assert sim is not None
|
||||
assert sim["start_date"] == date.fromordinal(self.ORD).isoformat()
|
||||
|
||||
|
||||
def test_bucket_stats_counts_and_expectancy():
|
||||
cands = [
|
||||
|
||||
Reference in New Issue
Block a user