Skip to content

Add names to framework components (#3839) - #9851

Open
jrile018 wants to merge 1 commit into
QuantConnect:masterfrom
jrile018:feature-3839-framework-component-names
Open

jrile018 wants to merge 1 commit into
QuantConnect:masterfrom
jrile018:feature-3839-framework-component-names

Conversation

@jrile018

Copy link
Copy Markdown

Description

Adds Name support to Framework execution, portfolio construction, risk management, universe selection, and optimizer components, including Python wrappers.

Related Issue

Closes #3839

Motivation and Context

Provides consistent, human-readable component names for logging and diagnostics.

Requires Documentation Change

No.

How Has This Been Tested?

Added 9 naming tests. The test project builds with 0 errors.

Types of changes

  • New feature

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adds INamedModel and a default name because this model does not inherit from PortfolioConstructionModel.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adds a stable name containing its weight bounds and risk-free rate so configured instances are identifiable.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adds a name containing its bounds and target return.

Comment thread Algorithm.Framework/Portfolio/MinimumVariancePortfolioOptimizer.cs

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Uses a custom Python Name when provided, otherwise falls back to the Python class name.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adds a name containing its resolved lower and upper bounds.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adds a simple class-based name because it has no configuration parameters.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adds INamedModel and defaults Name to the concrete execution-model type.

Comment thread Algorithm/Execution/ExecutionModel.cs

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exposes the Python model’s custom name or Python class name.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Preserves custom names from Python portfolio-construction models, with a class-name fallback.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Preserves custom names from Python portfolio-construction models, with a class-name fallback.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adds INamedModel and defaults Name to the concrete risk-model type.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Preserves custom Python risk-model names, with a class-name fallback.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adds INamedModel and defaults Name to the concrete universe-selection type.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Preserves custom Python universe-model names, with a class-name fallback.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verifies that each updated component implements INamedModel and returns the expected name.

@jrile018
jrile018 marked this pull request as ready for review September 30, 2026 22:17
Copilot AI balanced review requested due to automatic review settings September 30, 2026 22:18

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Provide Name property for all framework components

2 participants