| Overall Statistics |
|
Total Orders 548 Average Win 0.56% Average Loss -0.14% Compounding Annual Return 11.698% Drawdown 38.400% Expectancy 3.673 Start Equity 100000 End Equity 841199.64 Net Profit 741.200% Sharpe Ratio 0.548 Sortino Ratio 0.589 Probabilistic Sharpe Ratio 5.338% Loss Rate 4% Win Rate 96% Profit-Loss Ratio 3.89 Alpha 0.025 Beta 0.687 Annual Standard Deviation 0.121 Annual Variance 0.015 Information Ratio 0.083 Tracking Error 0.073 Treynor Ratio 0.096 Total Fees $556.12 Estimated Strategy Capacity $8600000.00 Lowest Capacity Asset GLD T3SKPOF94JFP Portfolio Turnover 0.09% |
# region imports
from AlgorithmImports import *
# endregion
class EqualWeightedPortfolio(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2005, 1, 1)
self.SetCash(100000)
self.symbols = [self.AddEquity(ticker).Symbol for ticker in ["SPY", "QQQ", "GLD"]]
self.SetBenchmark("SPY")
self.SetPortfolioConstruction(EqualWeightingPortfolioConstructionModel())
self.Schedule.On(self.DateRules.MonthStart("SPY"),
self.TimeRules.AfterMarketOpen("SPY", 0),
self.Rebalance)
self.spyInitialPrice = None
self.initialBenchmarkValue = None
self.initialPortfolioValue = self.Portfolio.TotalPortfolioValue
def Rebalance(self):
# Perform rebalancing logic here
for symbol in self.symbols:
self.SetHoldings(symbol, 1/len(self.symbols))
def OnData(self, data):
pass