Skip to content

Commit 55fd6a9

Browse files
committed
Fix check data completeness duplicates
1 parent fc85e51 commit 55fd6a9

File tree

1 file changed

+47
-47
lines changed
  • investing_algorithm_framework/app

1 file changed

+47
-47
lines changed

investing_algorithm_framework/app/app.py

Lines changed: 47 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -826,60 +826,59 @@ def check_data_completeness(
826826
show_progress=show_progress
827827
)
828828
data_provider_service = self.container.data_provider_service()
829+
unique_data_sources = set(data_sources)
829830

830-
for strategy in strategies:
831+
for data_source in unique_data_sources:
831832

832-
for data_source in strategy.data_sources:
833+
if DataType.OHLCV.equals(data_source.data_type):
834+
required_start_date = backtest_date_range.start_date - \
835+
timedelta(
836+
minutes=TimeFrame.from_value(
837+
data_source.time_frame
838+
).amount_of_minutes * data_source.window_size
839+
)
840+
number_of_required_data_points = \
841+
data_source.get_number_of_required_data_points(
842+
backtest_date_range.start_date,
843+
backtest_date_range.end_date
844+
)
833845

834-
if DataType.OHLCV.equals(data_source.data_type):
835-
required_start_date = backtest_date_range.start_date - \
836-
timedelta(
837-
minutes=TimeFrame.from_value(
838-
data_source.time_frame
839-
).amount_of_minutes * data_source.window_size
840-
)
841-
number_of_required_data_points = \
842-
data_source.get_number_of_required_data_points(
846+
try:
847+
data_provider = data_provider_service.get(data_source)
848+
number_of_available_data_points = \
849+
data_provider.get_number_of_data_points(
843850
backtest_date_range.start_date,
844851
backtest_date_range.end_date
845852
)
846853

847-
try:
848-
data_provider = data_provider_service.get(data_source)
849-
number_of_available_data_points = \
850-
data_provider.get_number_of_data_points(
851-
backtest_date_range.start_date,
852-
backtest_date_range.end_date
853-
)
854-
855-
missing_dates = \
856-
data_provider.get_missing_data_dates(
857-
required_start_date,
858-
backtest_date_range.end_date
859-
)
860-
if len(missing_dates) > 0:
861-
missing_data_info[data_source.identifier] = {
862-
"data_source_id": data_source.identifier,
863-
"completeness_percentage": (
864-
(
865-
number_of_available_data_points /
866-
number_of_required_data_points
867-
) * 100
868-
),
869-
"missing_data_points": len(
870-
missing_dates
871-
),
872-
"missing_dates": missing_dates,
873-
"data_source_file_path":
874-
data_provider.get_data_source_file_path()
875-
}
876-
877-
except Exception as e:
878-
raise DataError(
879-
f"Error getting data provider for data source "
880-
f"{data_source.identifier} "
881-
f"({data_source.symbol}): {str(e)}"
854+
missing_dates = \
855+
data_provider.get_missing_data_dates(
856+
required_start_date,
857+
backtest_date_range.end_date
882858
)
859+
if len(missing_dates) > 0:
860+
missing_data_info[data_source.identifier] = {
861+
"data_source_id": data_source.identifier,
862+
"completeness_percentage": (
863+
(
864+
number_of_available_data_points /
865+
number_of_required_data_points
866+
) * 100
867+
),
868+
"missing_data_points": len(
869+
missing_dates
870+
),
871+
"missing_dates": missing_dates,
872+
"data_source_file_path":
873+
data_provider.get_data_source_file_path()
874+
}
875+
876+
except Exception as e:
877+
raise DataError(
878+
f"Error getting data provider for data source "
879+
f"{data_source.identifier} "
880+
f"({data_source.symbol}): {str(e)}"
881+
)
883882

884883
if len(missing_data_info.keys()) > 0:
885884
return False, missing_data_info
@@ -999,7 +998,8 @@ def run_vector_backtests(
999998
risk_free_rate=risk_free_rate,
1000999
skip_data_sources_initialization=True,
10011000
market=market,
1002-
trading_symbol=trading_symbol
1001+
trading_symbol=trading_symbol,
1002+
continue_on_error=continue_on_error
10031003
)
10041004
backtests.append(backtest)
10051005
else:

0 commit comments

Comments
 (0)