Prompt
Build an algorithm that selects the 500 most liquid US Equities priced above $10 per share with daily dollar volume above $10 million. Schedule the universe to refresh at the start of each month, since the top 500 changes infrequently. No trading logic is required � the focus is defining a fundamental universe with liquidity and price filters. Backtest from September 1, 2024 to December 31, 2024.
Error
The backtest ended with a runtime error.
During the algorithm initialization, the following exception has occurred: returned a result with an exception set
at initialize
self._universe = self.add_universe(
^^^^^^^^^^^^^^^^^^
in main.py: line 16
returned a result with an exception set QuantConnect.Data.UniverseSelection.UniverseSettings value cannot be converted to System.Func`2[System.Collections.Generic.IEnumerable`1[QuantConnect.Data.Fundamental.FineFundamental],System.Object]
<slot wrapper 'repr' of 'object' objects> returned a result with an exception set
at initialize
self._universe = self.add_universe(
^^^^^^^^^^^^^^^^^^
in main.py: line 16
<slot wrapper 'repr' of 'object' objects> returned a result with an exception set QuantConnect.Data.UniverseSelection.UniverseSettings value cannot be converted to System.Func2[System.Collections.Generic.IEnumerable1[QuantConnect.Data.Fundamental.FineFundamental],System.Object]
Code
main.py
from AlgorithmImports import *
from typing import List
class LiquidUSEquitiesUniverse(QCAlgorithm):
def initialize(self):
self.set_start_date(2024, 9, 1)
self.set_end_date(2024, 12, 31)
self.set_cash(100_000)
self.settings.seed_initial_prices = True
# Schedule universe selection at the start of each month.
# Using a scheduled universe refreshes the selection on the given schedule.
self._universe = self.add_universe(
self._select_assets,
UniverseSettings(
Resolution.Daily,
-1, # leverage
True, # fill_forward
False, # extended_market_hours
timedelta(0) # minimum_time_in_universe
)
)
# Refresh the universe at the start of each month instead of daily.
self._universe.universe_settings.schedule.on(
self.date_rules.month_start(),
self.time_rules.at(0, 0)
)
def _select_assets(self, fundamentals: List[Fundamental]) -> List[Symbol]:
# Filter: price above $10 and daily dollar volume above $10 million.
filtered = [
f for f in fundamentals
if f.price > 10
and f.dollar_volume > 10_000_000
]
# Sort by dollar volume descending and take the top 500.
top_500 = sorted(filtered, key=lambda f: f.dollar_volume, reverse=True)[:500]
return [f.symbol for f in top_500]
Prompt
Build an algorithm that selects the 500 most liquid US Equities priced above $10 per share with daily dollar volume above $10 million. Schedule the universe to refresh at the start of each month, since the top 500 changes infrequently. No trading logic is required � the focus is defining a fundamental universe with liquidity and price filters. Backtest from September 1, 2024 to December 31, 2024.
Error
The backtest ended with a runtime error.
During the algorithm initialization, the following exception has occurred: returned a result with an exception set
at initialize
self._universe = self.add_universe(
^^^^^^^^^^^^^^^^^^
in main.py: line 16
returned a result with an exception set QuantConnect.Data.UniverseSelection.UniverseSettings value cannot be converted to System.Func`2[System.Collections.Generic.IEnumerable`1[QuantConnect.Data.Fundamental.FineFundamental],System.Object]
<slot wrapper 'repr' of 'object' objects> returned a result with an exception set
at initialize
self._universe = self.add_universe(
^^^^^^^^^^^^^^^^^^
in main.py: line 16
<slot wrapper 'repr' of 'object' objects> returned a result with an exception set QuantConnect.Data.UniverseSelection.UniverseSettings value cannot be converted to System.Func
2[System.Collections.Generic.IEnumerable1[QuantConnect.Data.Fundamental.FineFundamental],System.Object]Code
main.py