Overall Statistics |
Total Trades 21 Average Win 12.94% Average Loss -4.22% Compounding Annual Return 97.009% Drawdown 25.700% Expectancy 1.033 Net Profit 181.881% Sharpe Ratio 1.744 Probabilistic Sharpe Ratio 67.374% Loss Rate 50% Win Rate 50% Profit-Loss Ratio 3.07 Alpha 0.754 Beta 0.012 Annual Standard Deviation 0.432 Annual Variance 0.186 Information Ratio 1.277 Tracking Error 0.673 Treynor Ratio 65.061 Total Fees $0.00 Estimated Strategy Capacity $780000.00 Lowest Capacity Asset BTCUSD XJ |
# region imports from AlgorithmImports import * # endregion class HipsterFluorescentPinkMule(QCAlgorithm): def Initialize(self): self.SetStartDate(2021, 8, 1) # Set Start Date self.SetCash(100000) # Set Strategy Cash self.symbol = self.AddCrypto("BTCUSD", Resolution.Daily).Symbol self.EnableAutomaticIndicatorWarmUp = True self.mom = self.MOMP(self.symbol, int(self.GetParameter("lookback")), Resolution.Daily) self.dataset_symbol = self.AddData(RegalyticsRegulatoryArticles, "REG").Symbol self.SetBenchmark(self.symbol) def OnData(self, slice: Slice) -> None: # Parse articles if not slice.ContainsKey(self.dataset_symbol): return found = 0 articles = slice[self.dataset_symbol] for article in articles: if "Crypto" in article.Title or "Crypto" in article.Summary: found += 1 if found == 0: return if self.mom.Current.Value > 0 and not self.Portfolio[self.symbol].IsLong: self.SetHoldings(self.symbol, 1) if self.mom.Current.Value < 0 and not self.Portfolio[self.symbol].IsShort: self.SetHoldings(self.symbol, -1)