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
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
class OptimizedVerticalRadiator(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2019, 1, 17)  # Set Start Date
        self.SetCash(100000)  # Set Strategy Cash
        # self.AddEquity("SPY", Resolution.Daily)
        
        equity_symbols = [
            "AAPL", "FB", "TSLA", "AMD", "AMZN", "BABA", "BAC", "BYND", "MSFT", "NFLX", "MU", "NVDA", "SNAP", "GE", "DIS", "T", "BA", "ROKU", "UBER", "NIO",
             "CRM", "INTC", "X", "TWTR", "QCOM", "CSCO", "JPM", "CZR", "WDC", "JD", "GOOGL", "TEVA", "F", "WMT", "PCG", "C", "SQ", "FCX", "ADBE", "LYFT", "CGC",
             "ORCL", "OXY", "V", "PFE", "QSR", "S", "VZ", "LULU", "AVGO", "BMY", "MPC", "BB", "WFC", "CVS", "IQ", "BX", "BIDU", "GOLD", "KO", "SBUX", "ABBV", "ACB",
             "PYPL", "CNC", "TWLO", "CRON", "FDX", "UNH", "NKE", "CMG", "MRK", "TLRY", "HAL", "GM", "HD", "GS", "SHOP", "GOOG", "CHK", "XOM", "MA", "AAL", "CAT",
             "PBR", "RIG", "ZM", "CLF", "M", "WYNN", "JNJ", "KR", "IBM", "DISH", "MO", "TGT", "DELL", "DBX", "COST", "CMCSA", "KHC", "PG", "BHC", "EA", "OSTK",
             "SLB", "TRP", "JCI", "LVS", "AMAT", "MCD", "CVX", "CELG", "TTD", "AGN", "QD", "DOCU", "CLDR", "BCE", "LEN", "EBAY", "GME", "APC", "DAL", "XLNX",
             "AMGN", "AMRN", "NEM", "ATVI", "WBA", "OKTA", "KMI", "CTL", "SFIX", "LNG", "BP", "MDR", "GILD", "STZ", "UPS", "AXP", "GRUB", "BNS",
             "HOME", "PWR", "NOK", "UNP", "ACN", "APA", "DHI"
        ]
        
        lookback = 90
        # it's a good habit to set warm up when using indicators
        self.SetWarmUp(lookback)
        
        # store the ATRs of given symbols
        self.tr = {}
        
        for ticker in equity_symbols:
            # use the TR (True Range) indicator in QC instead of calculating manually
            self.AddEquity(ticker, Resolution.Daily)
            self.tr[ticker] = self.TR(ticker, Resolution.Daily)


    def OnData(self, data):
        for ticker in self.tr.keys():
            if self.tr[ticker].IsReady:
                self.Log(f"{ticker}'s TR Value: {self.tr[ticker].Current.Value}")