Overall Statistics
Total Trades
0
Average Win
0%
Average Loss
0%
Compounding Annual Return
0%
Drawdown
0%
Expectancy
0
Net Profit
0%
Sharpe Ratio
0
Probabilistic Sharpe Ratio
0%
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0
Beta
0
Annual Standard Deviation
0
Annual Variance
0
Information Ratio
0.93
Tracking Error
0.183
Treynor Ratio
0
Total Fees
$0.00
Estimated Strategy Capacity
$0
Lowest Capacity Asset
# yest_low

STOCKS = ["AAPL", "NVDA"]; 

class NormalizedStandardDeviationHighLowDifference(QCAlgorithm):
    
    def Initialize(self):
        self.SetStartDate(2022, 3, 1) 
        self.SetEndDate(2022, 4, 27)   
        self.stocks = [self.AddEquity(ticker, Resolution.Daily).Symbol for ticker in STOCKS]
        self.yest_low_min = {}; self.yest_low_sma = {}; self.yest_low_id = {};
        for sec in self.stocks:
            self.yest_low_min[sec] = self.MIN(sec, 1, Resolution.Daily, Field.Low)
            self.yest_low_sma[sec] = self.SMA(sec, 1, Resolution.Daily, Field.Low)
            self.yest_low_id[sec] = self.Identity(sec, Resolution.Daily,Field.Low)
        self.SetWarmUp(2, Resolution.Daily)
        

    def OnData(self, data):
        if self.IsWarmingUp: return

        for sec in self.stocks:
            if not self.yest_low_min[sec].IsReady: continue
        
            yest_low = self.Securities[sec].Low
            yest_low_min = self.yest_low_min[sec].Current.Value
            yest_low_sma = self.yest_low_sma[sec].Current.Value
            yest_low_id = self.yest_low_id[sec].Current.Value
            
            self.Plot(sec, "yest_low", yest_low)
            self.Plot(sec, "yest_low_min", yest_low_min)
            self.Plot(sec, "yest_low_sma", yest_low_sma)
            self.Plot(sec, "yest_low_id", yest_low_id)