Overall Statistics |
Total Trades 28 Average Win 2.07% Average Loss -2.15% Compounding Annual Return 8.285% Drawdown 9.400% Expectancy 0.046 Net Profit 8.285% Sharpe Ratio 0.42 Probabilistic Sharpe Ratio 23.575% Loss Rate 47% Win Rate 53% Profit-Loss Ratio 0.96 Alpha 0.112 Beta -0.246 Annual Standard Deviation 0.172 Annual Variance 0.03 Information Ratio -0.232 Tracking Error 0.381 Treynor Ratio -0.294 Total Fees $45.78 Estimated Strategy Capacity $460000000.00 Lowest Capacity Asset SPY R735QTJ8XC9X |
# region imports from AlgorithmImports import * # endregion class JumpingBlueGuanaco(QCAlgorithm): def Initialize(self): self.SetStartDate(2020, 1, 1) # Set Start Date self.SetEndDate(2021,1,1) self.SetCash(100000) # Set Strategy Cash self.spy = self.AddEquity("SPY", Resolution.Daily).Symbol self.sma = self.SMA (self.spy,30,Resolution.Daily) self.SetWarmUp(timedelta(30)) def OnData(self, data): if not self.sma.IsReady: # check difference, warup or isready return hist = self.History(self.spy,timedelta(260),Resolution.Daily) high = max(hist["high"]) low = min(hist["low"]) price = self.Securities["SPY"].Price if price * 1.05 >= high and self.sma.Current.Value < price: #if not self.Portfolio[self.spy].IsLong: self.SetHoldings(self.spy,1) elif price * 0.95 <= low and self.sma.Current.Value > price: if not self.Portfolio[self.spy].IsShort: self.SetHoldings(self.spy,-1) else: self.Liquidate(self.spy) self.Plot("Benchmark","52w-high",high) self.Plot("Benchmark","high area",high*0.95) self.Plot("Benchmark","52w-low",low) self.Plot("Benchmark","low area",low*1.05) self.Plot("Benchmark","sma",self.sma.Current.Value)