| Overall Statistics |
|
Total Trades 2202 Average Win 0.17% Average Loss -0.07% Compounding Annual Return 15.084% Drawdown 15.300% Expectancy 1.639 Net Profit 320.260% Sharpe Ratio 1.366 Probabilistic Sharpe Ratio 80.343% Loss Rate 19% Win Rate 81% Profit-Loss Ratio 2.27 Alpha 0.116 Beta 0.272 Annual Standard Deviation 0.116 Annual Variance 0.014 Information Ratio 0.003 Tracking Error 0.164 Treynor Ratio 0.585 Total Fees $3661942.09 Estimated Strategy Capacity $1900000.00 |
from QuantConnect.Data.Custom.CBOE import *
class AIMPortfoliosFireandForget(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2011, 1, 1) #TQQQ Latest Inception Date --> February 9, 2010
self.SetEndDate(2021, 3, 18)
self.SetCash(1000000000)
self.SetWarmUp(180)
self.SetBenchmark('SPY')
self.dayCounter = 0
self.AddEquity('QQQ', Resolution.Minute)
self.AddEquity('SPY', Resolution.Minute)
self.AddEquity('IWM', Resolution.Minute)
#self.AddEquity('UVXY', Resolution.Minute)
#self.AddEquity('URTY', Resolution.Minute)
self.AddEquity('SCO', Resolution.Minute)
self.AddEquity('GLD', Resolution.Minute)
self.AddEquity('TLT', Resolution.Minute)
#self.AddEquity('TQQQ', Resolution.Minute)
#self.AddEquity('UPRO', Resolution.Minute)
self.AddEquity('TMF', Resolution.Minute)
self.Schedule.On (self.DateRules.EveryDay("QQQ"), self.TimeRules.AfterMarketOpen("QQQ", 30), self.Rebalance)
self.leverageA = 1
def OnData(self, data):
if self.IsWarmingUp:
return
def Rebalance(self):
if not self.Securities['QQQ'].Invested:
self.SetHoldings('QQQ', 0.24)
self.SetHoldings('SPY', 0.24)
self.SetHoldings('IWM', 0.14)
self.SetHoldings('SCO', 0.11)
self.SetHoldings('GLD', 0.11)
self.SetHoldings('TMF', 0.16)
#self.SetHoldings('UVXY', 0.04)
self.dayCounter = 0
elif self.dayCounter is 6:
self.SetHoldings('QQQ', 0.24)
self.SetHoldings('SPY', 0.24)
self.SetHoldings('IWM', 0.14)
self.SetHoldings('SCO', 0.11)
self.SetHoldings('GLD', 0.11)
self.SetHoldings('TMF', 0.16)
#self.SetHoldings('UVXY', 0.025)
self.dayCounter = 0
else:
self.dayCounter = self.dayCounter+1