| 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 ))