Skip to content

Commit

Permalink
Validate BacktestDataConfig start before end (#1311)
Browse files Browse the repository at this point in the history
  • Loading branch information
davidsblom authored Oct 28, 2023
1 parent c7350ea commit 179728d
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions nautilus_trader/backtest/node.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
from nautilus_trader.config import BacktestRunConfig
from nautilus_trader.config import BacktestVenueConfig
from nautilus_trader.core.correctness import PyCondition
from nautilus_trader.core.datetime import dt_to_unix_nanos
from nautilus_trader.core.inspect import is_nautilus_class
from nautilus_trader.core.nautilus_pyo3 import DataBackendSession
from nautilus_trader.model.currency import Currency
Expand Down Expand Up @@ -151,6 +152,16 @@ def _validate_configs(self, configs: list[BacktestRunConfig]) -> None:
for data_config in config.data:
if data_config.instrument_id is None:
continue # No instrument associated with data

if data_config.start_time is not None and data_config.end_time is not None:
start = dt_to_unix_nanos(data_config.start_time)
end = dt_to_unix_nanos(data_config.end_time)

if end < start:
raise ValueError(
f"Invalid data config: end_time ({data_config.end_time}) is before start_time ({data_config.start_time}).",
)

instrument_id: InstrumentId = InstrumentId.from_str(data_config.instrument_id)
if instrument_id.venue not in venue_ids:
raise ValueError(
Expand Down

0 comments on commit 179728d

Please sign in to comment.