Overall Statistics |
Total Trades 11 Average Win 5.58% Average Loss -4.79% Compounding Annual Return 238.223% Drawdown 7.200% Expectancy 0.443 Net Profit 12.395% Sharpe Ratio 3.732 Probabilistic Sharpe Ratio 68.518% Loss Rate 33% Win Rate 67% Profit-Loss Ratio 1.16 Alpha 1.829 Beta 0.708 Annual Standard Deviation 0.426 Annual Variance 0.182 Information Ratio 4.66 Tracking Error 0.413 Treynor Ratio 2.247 Total Fees $97.97 Estimated Strategy Capacity $140000000.00 Lowest Capacity Asset TQQQ UK280CGTCB51 |
# Bill Williams Fractal Indicator STOCK = 'TQQQ'; class BillWilliamsFractal(QCAlgorithm): def Initialize(self): self.SetStartDate(2022, 1, 1) #self.SetEndDate(2021, 11, 11) self.stock = self.AddEquity(STOCK, Resolution.Daily).Symbol def OnEndOfDay(self, symbol): H = self.History(self.stock, 5, Resolution.Daily)['high'] L = self.History(self.stock, 5, Resolution.Daily)['low'] upFractal = (L[-5] > L[-3] < L[-4]) and (L[-2] > L[-3] < L[-1]) dnFractal = (H[-5] < H[-3] > H[-4]) and (H[-2] < H[-3] > H[-1]) bull = 1 if upFractal else 0 bear = -1 if dnFractal else 0 if upFractal: self.SetHoldings(STOCK, -1) self.current = self.Time if dnFractal: self.SetHoldings(STOCK, 1) self.current = self.Time if self.Portfolio[STOCK].Quantity != 0 and (self.Time - self.current).days == 1: self.Liquidate() # if self.Portfolio[STOCK].AveragePrice * .99 > self.Securities[STOCK].Close : # self.SetHoldings(STOCK, 0.0) self.Plot("Indicator", "bull", bull) self.Plot("Indicator", "bear", bear)