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
Tracking Error
0
Treynor Ratio
0
Total Fees
$0.00
Estimated Strategy Capacity
$0
Lowest Capacity Asset
# Normalized Standard Deviation of High Low Difference

STOCKS = ["AAPL", "MSFT", "TSLA", "NVDA", "AMD"]; PERIOD = 60;


class NormalizedStandardDeviationHighLowDifference(QCAlgorithm):
    
    def Initialize(self):
        self.SetStartDate(2022, 4, 1) 
        self.SetEndDate(2022, 4, 1)   
        res = Resolution.Minute
        self.stocks = [self.AddEquity(ticker, res).Symbol for ticker in STOCKS]
        self.std ={}
        for sec in self.stocks:
            high = self.SMA(sec, 1, res, Field.High)
            low = self.SMA(sec, 1, res, Field.Low)
            range = IndicatorExtensions.Minus(high, low)
            std = StandardDeviation(PERIOD)
            self.std[sec] = IndicatorExtensions.Of(range, std) 

        self.SetWarmUp(PERIOD + 1, res)
        

    def OnData(self, data):
        if self.IsWarmingUp: return
        if self.Time.hour < 9 or self.Time.hour >= 10: return

        for sec in self.stocks:
            if not self.std[sec] .IsReady: continue
            price = self.Securities[sec].Price
            std = self.std[sec].Current.Value
            self.Plot("Norm STD  H-L Diff", sec, 100*std/price)