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