Overall Statistics |
Total Trades 251 Average Win 2.54% Average Loss -1.29% Compounding Annual Return 14.990% Drawdown 18.000% Expectancy 0.546 Net Profit 149.176% Sharpe Ratio 0.951 Probabilistic Sharpe Ratio 38.332% Loss Rate 48% Win Rate 52% Profit-Loss Ratio 1.97 Alpha 0.133 Beta -0.027 Annual Standard Deviation 0.136 Annual Variance 0.019 Information Ratio 0.007 Tracking Error 0.214 Treynor Ratio -4.747 Total Fees $251.00 Estimated Strategy Capacity $30000000.00 Lowest Capacity Asset QQQ RIWIV7K5Z9LX |
class BootCampTask(QCAlgorithm): def Initialize(self): self.SetStartDate(2015, 1, 1) # self.SetEndDate(2014, 2, 20) self.SetCash(10000) self.vix = self.AddFuture(Futures.Indices.VIX) self.qqq = self.AddEquity('QQQ') self.tlt = self.AddEquity('TLT') self.vix.SetFilter(0, 65) self.Schedule.On(self.DateRules.EveryDay("QQQ"), \ self.TimeRules.BeforeMarketClose("QQQ", 10), \ self.EveryDayBeforeMarketClose) def OnData(self, slice): # Loop over each available futures chain from slice.FutureChains data for chain in slice.FutureChains: self.nearestContracts = [contract for contract in chain.Value] # If the length of contracts in this chain is zero, continue to the next chain if len(self.nearestContracts) == 0: continue # Sort our contracts by Expiry sortedByExpContracts = sorted(self.nearestContracts, key=lambda k : k.Expiry) #4. Save the contract self.front = sortedByExpContracts[0] self.second = sortedByExpContracts[1] r=self.second.LastPrice def EveryDayBeforeMarketClose(self): if (((self.second.LastPrice / self.front.LastPrice - 1) * 100) > 6): if self.ActiveSecurities["TLT"].Invested: self.Liquidate("TLT") self.SetHoldings("QQQ", 1) if ((self.second.LastPrice / self.front.LastPrice - 1) * 100) < 5: if self.ActiveSecurities["QQQ"].Invested: self.Liquidate("QQQ") self.SetHoldings("TLT", 1) self.check = (self.second.LastPrice/ self.second.LastPrice - 1) * 100