Overall Statistics |
Total Trades 199 Average Win 1.00% Average Loss -0.61% Compounding Annual Return 12.567% Drawdown 22.700% Expectancy 1.533 Net Profit 394.255% Sharpe Ratio 1.27 Probabilistic Sharpe Ratio 75.879% Loss Rate 4% Win Rate 96% Profit-Loss Ratio 1.64 Alpha 0.097 Beta 0.316 Annual Standard Deviation 0.104 Annual Variance 0.011 Information Ratio 0.131 Tracking Error 0.163 Treynor Ratio 0.418 Total Fees $208.24 |
class Stock_Bond_Portfolio(QCAlgorithm): def Initialize(self): self.SetStartDate(2007, 6, 1) self.SetEndDate(2020, 11, 25) self.cap = 100000 self.SetCash(self.cap) res = Resolution.Daily self.AddEquity('SPY') self.AddEquity('TLT') self.AddEquity('QQQ') self.spy = [] self.Schedule.On(self.DateRules.MonthStart(), self.TimeRules.AfterMarketOpen('SPY', 75), self.rebalance) self.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.BeforeMarketClose('SPY', 0), self.record_vars) def rebalance(self): self.SetHoldings("TLT", 0.5) self.SetHoldings("QQQ", 0.5) def record_vars(self): hist = self.History(['SPY'], 2, Resolution.Daily)['close'].unstack(level= 0).dropna() self.spy.append(hist['SPY'].iloc[-1]) spy_perf = self.spy[-1] / self.spy[0] * self.cap self.Plot('Strategy Equity', 'SPY', spy_perf)