Overall Statistics
Total Trades
157
Average Win
3.07%
Average Loss
-0.77%
Compounding Annual Return
75.278%
Drawdown
19.500%
Expectancy
0.625
Net Profit
57.131%
Sharpe Ratio
2.075
Probabilistic Sharpe Ratio
77.199%
Loss Rate
68%
Win Rate
32%
Profit-Loss Ratio
4.01
Alpha
0.414
Beta
0.348
Annual Standard Deviation
0.233
Annual Variance
0.054
Information Ratio
1.189
Tracking Error
0.24
Treynor Ratio
1.387
Total Fees
$0.00
Estimated Strategy Capacity
$170000.00
Lowest Capacity Asset
SOLUSDC 18N
class RetrospectiveFluorescentYellowElephant(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2021, 1, 1)  
        #self.SetEndDate(2021,8,1)
        self.SetCash('USDC',100000)
        self.tickers = ["BTCUSDC", "ETHUSDC", "SOLUSDC", "DOGEUSDC", "ADAUSDC"]
        self.symbols =  [self.AddCrypto(ticker, Resolution.Minute, Market.Binance).Symbol for ticker in self.tickers]
        self.fast = {}
        self.slow = {}
        for symbol in self.symbols:
            self.fast[symbol] = self.SMA(symbol, 20, Resolution.Hour)
            self.slow[symbol] = self.SMA(symbol, 200, Resolution.Hour)
        self.SetWarmUp(200, Resolution.Hour)
        
        self.SetTimeZone("Europe/London")

    def OnData(self, data):
        if self.IsWarmingUp: return 
    
        #for symbol in self.symbols: 
        #    holdings = self.Portfolio[symbol].Quantity
            #self.Plot("holdings", symbol, holdings) 

        for symbol in self.symbols:
            if not self.fast[symbol].IsReady: continue
            if not self.slow[symbol].IsReady: continue
            fast = self.fast[symbol].Current.Value
            slow = self.slow[symbol].Current.Value
            #self.Plot(symbol, "fast", fast) 
            #self.Plot(symbol, "slow", slow) 
            if fast > slow and self.Portfolio[symbol].Quantity <= 0:
                self.SetHoldings(symbol, 0.8/len(self.symbols))
            elif fast < slow:
                self.Liquidate(symbol)