Overall Statistics |
Total Trades 26 Average Win 0.01% Average Loss -0.01% Compounding Annual Return -21.553% Drawdown 0.200% Expectancy -0.916 Net Profit -0.199% Sharpe Ratio -20.351 Probabilistic Sharpe Ratio 0% Loss Rate 96% Win Rate 4% Profit-Loss Ratio 1.09 Alpha -0.264 Beta -0.092 Annual Standard Deviation 0.009 Annual Variance 0 Information Ratio 6.636 Tracking Error 0.106 Treynor Ratio 1.982 Total Fees $0.00 Estimated Strategy Capacity $220000.00 Lowest Capacity Asset USDCUSDT 18N |
#region imports from AlgorithmImports import * #endregion # Rolling Window Fractal Indicator (Binance) CRYPTO = "USDCUSDT"; BAR = 60; class BlackpantherFractal(QCAlgorithm): def Initialize(self): self.SetStartDate(2022, 5, 1) self.SetEndDate(2022, 5, 3) self.SetCash("USDT", 1000) self.crypto = self.AddCrypto(CRYPTO, Resolution.Minute, Market.Binance).Symbol self.SetSecurityInitializer(lambda s: s.SetLeverage(1)) self.SetBrokerageModel(BrokerageName.Binance, AccountType.Margin) self.Consolidate(self.crypto, timedelta(minutes = BAR), self.CustomBarHandler) self.window = RollingWindow[TradeBar](3) self.consolidator = TradeBarConsolidator(timedelta(minutes=BAR)) self.SubscriptionManager.AddConsolidator(self.crypto, self.consolidator) self.SetWarmUp(BAR, Resolution.Minute) def CustomBarHandler(self, bar): if self.IsWarmingUp: return self.window.Add(bar) if not self.window.IsReady: return H = [self.window[i].High for i in range(3)] L = [self.window[i].Low for i in range(3)] C = [self.window[i].Close for i in range(3)] curr_price = self.Securities[self.crypto].Price if not self.Portfolio[self.crypto].IsLong: if ( curr_price <= L[1] <= L[2]): self.SetHoldings(self.crypto,1) elif not self.Portfolio[self.crypto].IsShort: if ( curr_price >= H[1] >= H[2]): self.SetHoldings(self.crypto,-1)