Overall Statistics |
Total Trades 22 Average Win 1.34% Average Loss -1.82% Compounding Annual Return -79.108% Drawdown 12.100% Expectancy -0.369 Net Profit -7.365% Sharpe Ratio -2.784 Probabilistic Sharpe Ratio 17.906% Loss Rate 64% Win Rate 36% Profit-Loss Ratio 0.74 Alpha -1.183 Beta 1.105 Annual Standard Deviation 0.404 Annual Variance 0.163 Information Ratio -2.95 Tracking Error 0.399 Treynor Ratio -1.018 Total Fees $0.00 |
class ParticleVerticalAtmosphericScrubbers(QCAlgorithm): def Initialize(self): self.tickerOne = "AMD" self.tickerTwo = "SPY" self.SetStartDate(2017, 1, 16) # Set Start Date self.SetEndDate(2017, 2, 2) # Set End Date self.SetCash(1000) # Set Strategy Cash self.AddEquity("AMD", Resolution.Minute, Market.USA, True, 1, True) self.Securities[self.tickerOne].FeeModel = ConstantFeeModel(0) #self.SetDataNormalizationMode(DataNormalizationMode.Raw) self.ticket = None self.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.At(15, 59), self.purchase) def OnData(self, data): if self.Portfolio.Invested and self.Securities[self.tickerOne].Price <= self.sellPrice and self.ticket is None: self.ticket = self.LimitOrder(self.tickerOne, -self.Portfolio[self.tickerOne].Quantity, self.Securities[self.tickerOne].Price*.5) def purchase(self): self.sellPrice = self.Securities[self.tickerOne].Price * 0.991 self.dailyClose = self.Securities[self.tickerOne].Price self.Debug("Portfolio Quantity: " + str(self.Portfolio[self.tickerOne].Quantity)) if not self.Portfolio.Invested: self.SetHoldings(self.tickerOne, 1) def OnOrderEvent(self, fill): if fill.Status == 3: if fill.Direction == 0: direction = "Buy" self.Debug(str(direction) + " " + str(fill.FillQuantity) + " @ " + str(fill.FillPrice)) else: direction = "Sell" self.Debug(str(direction) + " " + str(fill.FillQuantity) + " @ " +str(fill.FillPrice) + " Loss: " + str( (fill.FillPrice-self.dailyClose)/self.dailyClose )) self.ticket = None