Overall Statistics
Total Trades
1008
Average Win
1.78%
Average Loss
-1.94%
Compounding Annual Return
-47.207%
Drawdown
76.400%
Expectancy
-0.113
Net Profit
-72.162%
Sharpe Ratio
-1.352
Loss Rate
54%
Win Rate
46%
Profit-Loss Ratio
0.92
Alpha
-0.462
Beta
-4.563
Annual Standard Deviation
0.409
Annual Variance
0.168
Information Ratio
-1.401
Tracking Error
0.409
Treynor Ratio
0.121
Total Fees
$2078.91
import numpy as np


class Algo(QCAlgorithm):
    
    
    def Initialize(self):
        self.rise = .3
        self.fall = .2
        self.curr_price = 0
        self.SetStartDate(2007, 1, 1)  #Set Start Date
        self.SetEndDate(2009, 1, 1)    #Set End Date
        self.SetCash(10000)           #Set Strategy Cash
        
        self.AddEquity("AAPL", Resolution.Tick)
        self.Schedule.On(self.DateRules.EveryDay("AAPL"),
        self.TimeRules.AfterMarketOpen("AAPL", 0),
        Action(self.buy_all_morning))
        self.Schedule.On(self.DateRules.EveryDay(),
        self.TimeRules.BeforeMarketClose("AAPL", 5),
        Action(self.sell_all_close))
        

    def OnTick(self, data):
     
        if(self.Securities["AAPL"].Price == (self.curr_price + self.rise)):
            if not self.Portfolio.Invested:
                self.curr_price = self.Securities["AAPL"].Price
                self.SetHoldings("AAPL", 0)
                
        elif(self.Securities["AAPL"].Price == (self.curr_price - self.fall)):
            if not self.Portfolio.Invested:
                self.curr_price = self.Securities["AAPL"].Price
                self.SetHoldings('AAPL',1)
    
    def buy_all_morning(self):
        self.curr_price = self.Securities["AAPL"].Price
        self.SetHoldings("AAPL", 1)
        
    def sell_all_close(self):
        self.SetHoldings("AAPL",0)