Overall Statistics |
Total Trades 12 Average Win 1.16% Average Loss -1.55% Compounding Annual Return 54.802% Drawdown 1.600% Expectancy 0.457 Net Profit 4.279% Sharpe Ratio 4.089 Probabilistic Sharpe Ratio 84.212% Loss Rate 17% Win Rate 83% Profit-Loss Ratio 0.75 Alpha 0.381 Beta 0.033 Annual Standard Deviation 0.09 Annual Variance 0.008 Information Ratio 3.919 Tracking Error 0.18 Treynor Ratio 11.167 Total Fees $39.27 Estimated Strategy Capacity $41000000.00 Lowest Capacity Asset CMB R735QTJ8XC9X |
# Bill Williams Fractal Indicator STOCK = 'JPM'; 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)