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.912
Tracking Error
0.116
Treynor Ratio
0
Total Fees
$0.00
Estimated Strategy Capacity
$0
Lowest Capacity Asset
# https://www.quantconnect.com/forum/discussion/12180/crypto-universe/p1

class AlertRedOrangeMule(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2021, 1, 1)  # Set Start Date
        self.SetEndDate(2021, 1, 15)
        self.SetCash(100000)  # Set Strategy Cash
            
        self.volumeBySymbol = {}
        
        # example
        cryptos = ["BTCUSD", "LTCUSD", "LTCBTC", "ETHUSD", "ETHBTC", "ETCBTC", "ETCUSD", "RRTUSD", 
                    "ZECUSD", "ZECBTC", "XMRUSD", "XMRBTC", "DASHBTC", "BTCEUR", "BTCJPY", "XRPUSD", 
                    "XRPBTC", "IOTAUSD", "IOTABTC", "IOTAETH", "EOSUSD", "EOSETH", "SANUSD", "SANBTC", 
                    "SANETH", "OMGUSD", "OMGBTC", "OMGETH", "BCHABCUSD"]
        market = Market.Bitfinex
        
        for ticker in cryptos:
            symbol = self.AddCrypto(ticker, Resolution.Minute, market).Symbol
            bband = self.BB(symbol, 1,  MovingAverageType.Simple, Resolution.Daily)
            price = self.Securities[symbol].Price
            lower_band = bband.LowerBand.Current.Value
            upper_band = bband.UpperBand.Current.Value
            if price > lower_band and price < upper_band:
                self.volumeBySymbol[symbol] = self.SMA(symbol, 1, Resolution.Daily, Field.Volume)
            else: 
                continue
        
        self.SetWarmUp(timedelta(days=1))
        
        self.Schedule.On(self.DateRules.EveryDay("BTCUSD"), self.TimeRules.At(0, 1), self.HighestVolumeFilter)

    def HighestVolumeFilter(self):
        sort_ = sorted(self.volumeBySymbol.items(), key=lambda x: x[1].Current.Value, reverse=True)[:10]
        self.customUniverse = [x[0] for x in sort_]
        self.Log(f"Selected universe contains {[x.Value for x in self.customUniverse]}.")