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 |
# True Range from datetime import timedelta from collections import deque # --------------------------- STOCK = 'AAPL'; BAR_SIZE = 3; # --------------------------- class LogicalBrownKoala(QCAlgorithm): def Initialize(self): self.SetStartDate(2022, 5, 3) self.SetEndDate(2022, 5, 3) self.SetCash(100000) self.stock = self.AddEquity(STOCK, Resolution.Minute).Symbol Consolidator = TradeBarConsolidator(timedelta(minutes = BAR_SIZE)) Consolidator.DataConsolidated += self.MinutesHandler self.true_range_qc = TrueRange() self.true_range_custom = True_Range("TrueRange", 2) self.RegisterIndicator(self.stock, self.true_range_qc, Consolidator) self.RegisterIndicator(self.stock, self.true_range_custom, Consolidator) self.SetWarmUp(2*BAR_SIZE, Resolution.Minute ) def MinutesHandler(self, sender, bar): if self.IsWarmingUp: return self.Plot(self.stock, "true_range_qc", self.true_range_qc.Current.Value) self.Plot(self.stock, "true_range_custom", self.true_range_custom.Current.Value) class True_Range(PythonIndicator): def __init__(self, name, period): self.Name = name self.Value = None self.period = period self.WarmUpPeriod = period self.Time = datetime.min self.queue_close = deque(maxlen=period) self.queueTime = deque(maxlen=period) def Update(self, input): self.queue_close.appendleft(input.Close) self.queueTime.appendleft(input.EndTime) self.Time = input.EndTime count = len(self.queue_close) if self.queue_close[0] > input.High: TH = self.queue_close[0] else: TH = input.High if self.queue_close[0] < input.Low: TL = self.queue_close[0] else: TL = input.Low self.Value = TH - TL self.IsReady == self.queue_close.maxlen return self.IsReady