Overall Statistics
Total Orders
0
Average Win
0%
Average Loss
0%
Compounding Annual Return
0%
Drawdown
0%
Expectancy
0
Start Equity
100000
End Equity
100000
Net Profit
0%
Sharpe Ratio
0
Sortino Ratio
0
Probabilistic Sharpe Ratio
0%
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0
Beta
0
Annual Standard Deviation
0
Annual Variance
0
Information Ratio
-0.807
Tracking Error
0.14
Treynor Ratio
0
Total Fees
$0.00
Estimated Strategy Capacity
$0
Lowest Capacity Asset
Portfolio Turnover
0%
Drawdown Recovery
0
# region imports
from AlgorithmImports import *
# endregion

class SpyConstituentPointInTimeTicker(QCAlgorithm):
    def initialize(self):
        self.set_start_date(2013, 1, 1)
        self.set_end_date(2026, 8, 19)

        self.add_universe(self.universe.etf("SPY", self.universe_settings, self._select))

    def _select(self, constituents):
        for c in constituents:
            point_in_time = SecurityIdentifier.ticker(c.symbol, self.time)
            if point_in_time == "KBSF" and point_in_time != c.symbol.value:
                msg = f"Mismatch: {point_in_time} vs {c.symbol.value}"
            c.symbol = Symbol(c.symbol.id, point_in_time)

        return Universe.UNCHANGED