Overall Statistics
Total Orders
0
Average Win
0%
Average Loss
0%
Compounding Annual Return
0%
Drawdown
0%
Expectancy
0
Start Equity
100000
End Equity
100000
Net Profit
0%
Sharpe Ratio
0
Sortino 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
-1.813
Tracking Error
0.107
Treynor Ratio
0
Total Fees
USDC0.00
Estimated Strategy Capacity
USDC0
Lowest Capacity Asset
Portfolio Turnover
0%
# region imports
from AlgorithmImports import *
# endregion

class LargeCapCryptoUniverseAlgorithm(QCAlgorithm):

    def initialize(self):
        self.set_start_date(2023, 1, 1)
        self.set_account_currency('USDC')
        self.set_cash(100_000)
        self._market = Market.COINBASE
        self._market_pairs = [
            x.key.symbol 
            for x in self.symbol_properties_database.get_symbol_properties_list(self._market) 
            if x.value.quote_currency == self.account_currency
        ]
        self._universe = self.add_universe(CoinGeckoUniverse, self._select_assets)
    
    def _select_assets(self, data: List[CoinGeckoUniverse]) -> List[Symbol]:
        # Select the coins that the brokerage supports and have the quote currency we want.
        tradable_coins = sorted(
            [d for d in data if d.coin + self.account_currency in self._market_pairs], 
            key=lambda x: x.market_cap
        )
        # Select the 10 largest coins.
        selected = [x.create_symbol(self._market, self.account_currency) for x in tradable_coins[-10:]]
        # Plot the universe size.
        self.plot('Universe', 'Size', len(selected))
        return selected