Skip to content
All library documents

Monthly QC500 Equity Universe Selection from Company Fundamentals

Article Strategy library · Author: QuantConnect

Summary

This QuantConnect example demonstrates estimating the QC500 index constituents through the platform’s built-in universe selection. It configures daily data resolution, sets a historical test interval covering 2018, assigns starting cash, and adds the QC500 universe. The accompanying description says the universe contains 500 tradable and liquid US equities chosen on the first trading day of each month, with company fundamentals informing the constituent estimate.

The document is a universe-construction example, not a complete trading strategy: it does not specify buy or sell rules, portfolio weights, or execution logic. Nor does it report returns, turnover, or other validation results. Researchers using a reconstructed index universe should consider selection methodology and the timing and availability of fundamentals, since constituent estimation and periodic selection can affect historical comparisons. The short sample configuration illustrates setup only and does not demonstrate investment performance.

Key ideas

  • The example adds a built-in QC500 universe to a daily-resolution algorithm.
  • The described universe selects 500 liquid, tradable US equities monthly using fundamentals.
  • The sample configures a 2018 historical interval and starting cash but gives no return results.
  • Universe selection alone does not define portfolio weights, trade signals, or execution.

Tags

Full text
# ConstituentsQC500GeneratorAlgorithm


# ConstituentsQC500GeneratorAlgorithm









Demonstration of how to estimate constituents of QC500 index based on the company fundamentals The algorithm creates a default tradable and liquid universe containing 500 US equities which are chosen at the first trading day of each month.

## Source (Apache-2.0)

```python
# QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
# Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from AlgorithmImports import *

### <summary>
### Demonstration of how to estimate constituents of QC500 index based on the company fundamentals
### The algorithm creates a default tradable and liquid universe containing 500 US equities
### which are chosen at the first trading day of each month.
### </summary>
### <meta name="tag" content="using data" />
### <meta name="tag" content="universes" />
### <meta name="tag" content="coarse universes" />
### <meta name="tag" content="fine universes" />
class ConstituentsQC500GeneratorAlgorithm(QCAlgorithm):

    def initialize(self):
        '''Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.'''
        self.universe_settings.resolution = Resolution.DAILY

        self.set_start_date(2018, 1, 1)   # Set Start Date
        self.set_end_date(2019, 1, 1)     # Set End Date
        self.set_cash(100000)            # Set Strategy Cash

        # Add QC500 Universe
        self.add_universe(self.universe.qc_500)

```

Shown in full with attribution under the source's licence. Licence: Apache-2.0

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.