| Overall Statistics |
|
Total Trades 36 Average Win 16.89% Average Loss -5.35% Compounding Annual Return 11.573% Drawdown 33.900% Expectancy 2.670 Net Profit 851.010% Sharpe Ratio 0.771 Probabilistic Sharpe Ratio 9.429% Loss Rate 12% Win Rate 88% Profit-Loss Ratio 3.16 Alpha 0.107 Beta -0.033 Annual Standard Deviation 0.135 Annual Variance 0.018 Information Ratio 0.137 Tracking Error 0.227 Treynor Ratio -3.16 Total Fees $36.00 |
class MomentumBasedTacticalAllocation(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2000, 8, 1)
#self.SetEndDate(2021, 8, 1)
self.SetCash(3000)
self.spy = self.AddEquity("SPY", Resolution.Daily)
self.bnd = self.AddEquity("TLT", Resolution.Daily)
self.spyMomentum = self.MOMP("SPY", 100, Resolution.Daily)
self.bondMomentum = self.MOMP("TLT", 100, Resolution.Daily)
self.SetBenchmark(self.spy.Symbol)
self.SetWarmUp(50)
def OnData(self, data):
if self.IsWarmingUp:
return
#1. Limit trading to happen once per week
if not self.Time.weekday() == 0:
return
if self.spyMomentum.Current.Value > 0:#self.bondMomentum.Current.Value:
self.Liquidate("TLT")
self.SetHoldings("SPY", 1)
else:
self.Liquidate("SPY")
self.SetHoldings("TLT", 1)