Skip to content

PortfolioMarginUsageAnalysis

QuantConnect.Lean.Engine.Results.Analysis.Analyses.PortfolioMarginUsageAnalysis

Bases: BaseResultsAnalysis

Detects periods where the portfolio under-utilises available margin (3-day SMA of margin usage drops below 50 %).

is_state_based

is_state_based: bool

This analysis reads the current margin chart instead of scanning the order event and log streams, so its in-run findings are replaced on every run.

issue

issue: str

Gets the description of the detected margin under-utilisation issue.

weight

weight: int

Gets the severity weight for this margin usage analysis.

runs_in_run

runs_in_run: bool

Whether this analysis can also run while the backtest is still in progress, against a snapshot of the intermediate results. Most analyses read only the result snapshot, so this defaults to true. Analyses that need the completed run (runtime errors, equity curves, final statistics, completion logs) or that read algorithm state that is not safe to access while it runs override this to leave them to the final analysis only.

run

run(
    parameters: ResultsAnalysisRunParameters,
) -> Sequence[Analysis]
run(backtest_result: Result) -> Sequence[Analysis]

Signature descriptions:

  • Runs the portfolio margin usage analysis against the provided backtest parameters.

  • Reads the "Portfolio Margin" chart from the backtest result and counts trading days where the 3-day SMA of total margin usage drops below 50%.

Parameters:

Name Type Description Default
backtest_result Optional[Result]

The backtest result whose charts are inspected.

None

Returns:

Type Description
Sequence[Analysis]

Analysis results when any such days are detected.

single_response

single_response(
    sample: Any, solutions: Sequence[str] = None
) -> Sequence[Analysis]
single_response(
    sample: Any,
    count: Optional[int],
    solutions: Sequence[str] = None,
) -> Sequence[Analysis]

Wraps a single QuantConnect.Analysis in a one-element read-only list.

create_aggregated_response

create_aggregated_response(
    responses: List[Analysis],
) -> Sequence[Analysis]

Filters responses to those with solutions, prefixes the class name, and returns a flat list.

This Class is protected.

format_code

format_code(code: str, language: Language) -> str

Formats the specified code string according to the conventions of the given programming language.

This Class is protected.