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 on 30 minutes consolidated bar STOCKS = ["AAPL", "MSFT", "TSLA", "NVDA", "AMD"]; BAR = 30; PERIOD = 10; 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 ={} self.range ={} for sec in self.stocks: ThirtyMinuteConsolidator = TradeBarConsolidator(timedelta(minutes = BAR)) self.subscribe = self.SubscriptionManager.AddConsolidator(sec, ThirtyMinuteConsolidator) self.Consolidate(sec, timedelta(minutes = BAR), self.ThirtyMinuteBarHandler) high = self.SMA(sec, 1, res, Field.High) low = self.SMA(sec, 1, res, Field.Low) self.RegisterIndicator(sec, high, ThirtyMinuteConsolidator) self.RegisterIndicator(sec, low, ThirtyMinuteConsolidator) self.range[sec] = IndicatorExtensions.Minus(high, low) std = StandardDeviation(PERIOD) self.std[sec] = IndicatorExtensions.Of(self.range[sec], std) self.SetWarmUp(PERIOD + 1, res) def ThirtyMinuteBarHandler(self, consolidated): if self.IsWarmingUp: return for sec in self.stocks: if not self.std[sec] .IsReady: continue price = self.Securities[sec].Price std = self.std[sec].Current.Value range = self.range[sec].Current.Value self.Plot("Norm STD H-L Diff", sec, 100*std/price)