Overall Statistics
Total Orders
9
Average Win
0%
Average Loss
0%
Compounding Annual Return
8.973%
Drawdown
24.400%
Expectancy
0
Start Equity
100000
End Equity
198749.37
Net Profit
98.749%
Sharpe Ratio
0.398
Sortino Ratio
0.407
Probabilistic Sharpe Ratio
10.134%
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
-0.016
Beta
0.65
Annual Standard Deviation
0.105
Annual Variance
0.011
Information Ratio
-0.738
Tracking Error
0.063
Treynor Ratio
0.064
Total Fees
$10.02
Estimated Strategy Capacity
$50000000.00
Lowest Capacity Asset
AAXJ U55LDE3TN4O5
Portfolio Turnover
0.03%
from AlgorithmImports import *

class MyStrategicPortfolio(QCAlgorithm):
    def Initialize(self):
        self.SetStartDate(2017, 1, 1)
        self.SetEndDate(2025, 2, 28)
        self.SetCash(100000)

        tickers = ["QQQ", "SPY", "VGK", "TIP", "TLT", "XLV", "VYM", "EEM", "AAXJ"]
        weights = {
            "QQQ": 0.10, "SPY": 0.10, "VGK": 0.10, "TIP": 0.15, "TLT": 0.15,
            "XLV": 0.10, "VYM": 0.12, "EEM": 0.10, "AAXJ": 0.08
        }

        self.etfs = {}
        for ticker in tickers:
            self.etfs[ticker] = self.AddEquity(ticker, Resolution.Daily).Symbol

        self.weights = weights
        self.invested = False

    def OnData(self, data: Slice):
        if self.invested:
            return

        for ticker, weight in self.weights.items():
            if self.Securities.ContainsKey(self.etfs[ticker]) and self.Securities[self.etfs[ticker]].IsTradable:
                self.SetHoldings(self.etfs[ticker], weight)

        self.invested = True