Overall Statistics
Total Trades
53
Average Win
1.31%
Average Loss
-0.45%
Compounding Annual Return
585.527%
Drawdown
5.700%
Expectancy
0.622
Net Profit
16.937%
Sharpe Ratio
8.536
Probabilistic Sharpe Ratio
88.030%
Loss Rate
59%
Win Rate
41%
Profit-Loss Ratio
2.93
Alpha
3.012
Beta
-0.625
Annual Standard Deviation
0.369
Annual Variance
0.136
Information Ratio
7.949
Tracking Error
0.424
Treynor Ratio
-5.04
Total Fees
$1387.37
Estimated Strategy Capacity
$14000000.00
Lowest Capacity Asset
AAPL R735QTJ8XC9X
# Deviations QC Indicators

from AlgorithmImports import *

# ---------------------------------------------------
STOCK = "AAPL"; PERIOD = 100; NUM_DEVIATIONS = 0.025; 
# ---------------------------------------------------

class DeviationsAlgorithm(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2015,1,1)  
        self.SetEndDate(2015,2,1)
        self.SetCash(100000) 
        res = Resolution.Minute
        self.stock = self.AddEquity(STOCK, res).Symbol
        open = self.Identity(self.stock, res, Field.Open)
        close = self.Identity(self.stock, res, Field.Close)
        prev_close = IndicatorExtensions.Of(Delay(1), close)
        volatility = self.STD(self.stock, PERIOD, res)
        delta = IndicatorExtensions.Minus(open, prev_close) 
        self.deviations = IndicatorExtensions.Over(delta, volatility) 
        self.SetWarmUp(PERIOD, res)       
			   
			   
    def OnData(self, data):
        if self.IsWarmingUp: return
        if not self.deviations.IsReady: return 
        if not self.Time.minute == 31: return  

        dev = self.deviations.Current.Value

        self.Plot(self.stock, "deviations", dev)
        self.Plot(self.stock, "LB", -NUM_DEVIATIONS)
        self.Plot(self.stock, "UB", NUM_DEVIATIONS) 

        if dev < -NUM_DEVIATIONS:
            self.SetHoldings(self.stock, 1)

        elif dev > NUM_DEVIATIONS:
            self.SetHoldings(self.stock, -1)