Overall Statistics |
Total Trades 81 Average Win 16.73% Average Loss -4.99% Compounding Annual Return 62.711% Drawdown 38.000% Expectancy 1.174 Net Profit 538.980% Sharpe Ratio 1.371 Probabilistic Sharpe Ratio 60.610% Loss Rate 50% Win Rate 50% Profit-Loss Ratio 3.35 Alpha 0.355 Beta 1.054 Annual Standard Deviation 0.36 Annual Variance 0.129 Information Ratio 1.172 Tracking Error 0.309 Treynor Ratio 0.468 Total Fees $448.28 Estimated Strategy Capacity $4700000.00 Lowest Capacity Asset TQQQ UK280CGTCB51 |
# MACD Signal Delta Percent simplified class MACDTrendAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2018, 1, 1) self.SetEndDate(2021, 10, 22) self.SetCash(25000) self.stock = self.AddEquity("TQQQ", Resolution.Minute).Symbol self.macd = self.MACD(self.stock, 6, 35, 6, MovingAverageType.Exponential, Resolution.Daily) self.PlotIndicator("MACD", True, self.macd, self.macd.Signal) self.PlotIndicator("TQQQ", self.macd.Fast, self.macd.Slow) self.SetWarmUp(5*41, Resolution.Daily) self.SetRiskManagement(MaximumDrawdownPercentPerSecurity(0.10)) for minute in range(1, 361, 60): self.Schedule.On(self.DateRules.EveryDay(self.stock), self.TimeRules.AfterMarketOpen(self.stock, minute), self.trade) def trade(self): if self.IsWarmingUp or not self.macd.IsReady: return tolerance = 0.0025 holdings = self.Portfolio[self.stock].Quantity signalDeltaPercent = (self.macd.Current.Value - self.macd.Signal.Current.Value)/self.macd.Fast.Current.Value if holdings <= 0 and signalDeltaPercent > tolerance: self.SetHoldings(self.stock, 1.0) elif holdings > 0 and signalDeltaPercent < -tolerance: self.Liquidate(self.stock)