Overall Statistics |
Total Trades 9 Average Win 0.51% Average Loss -1.18% Compounding Annual Return -99.836% Drawdown 32.600% Expectancy -0.642 Net Profit -26.907% Sharpe Ratio -7.666 Probabilistic Sharpe Ratio 0.000% Loss Rate 75% Win Rate 25% Profit-Loss Ratio 0.43 Alpha -4.635 Beta -1.179 Annual Standard Deviation 0.613 Annual Variance 0.375 Information Ratio -7.644 Tracking Error 0.621 Treynor Ratio 3.983 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.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.At(15, 59), Action(self.purchase)) def OnData(self, data): if self.Portfolio.Invested and self.Securities[self.tickerOne].Price <= self.sellPrice: 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 ))