Overall Statistics |
Total Trades 10 Average Win 0.74% Average Loss 0% Compounding Annual Return 59.364% Drawdown 1.200% Expectancy 0 Net Profit 3.728% Sharpe Ratio 10.106 Probabilistic Sharpe Ratio 98.511% Loss Rate 0% Win Rate 100% Profit-Loss Ratio 0 Alpha 0.207 Beta 0.477 Annual Standard Deviation 0.061 Annual Variance 0.004 Information Ratio -3.826 Tracking Error 0.064 Treynor Ratio 1.301 Total Fees $10.00 |
class Volatility(QCAlgorithm): def Initialize(self): self.SetStartDate(2018, 1, 2) # Set Start Date self.SetCash(10000) # Set Strategy Cash # self.AddEquity("SPY", Resolution.Minute) self.ziv = self.AddEquity("ZIV", Resolution.Daily) self.ziv.SetDataNormalizationMode(DataNormalizationMode.Raw) self.roc = self.ROC("ZIV", 5, Resolution.Daily) self.SetWarmUp(5) def OnData(self, data): '''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here. Arguments: data: Slice object keyed by symbol containing the stock data ''' if self.IsWarmingUp: return if self.roc.Current.Value > 0: self.SetHoldings("ZIV",1) else: self.Liquidate("ZIV")
class NadionHorizontalCircuit(QCAlgorithm): def Initialize(self): self.SetStartDate(2018, 1, 2) # Set Start Date self.SetEndDate(2018, 1, 30) self.SetCash(10000) # Set Strategy Cash # self.AddEquity("SPY", Resolution.Minute) self.spy = self.AddEquity("SPY", Resolution.Minute) self.spy.SetDataNormalizationMode(DataNormalizationMode.Raw) self.roc = RateOfChange(5) self.roc.Updated += self.OnROC self.rocWindow = RollingWindow[IndicatorDataPoint](2) self.Schedule.On(self.DateRules.EveryDay("SPY"), self.TimeRules.BeforeMarketClose("SPY", 5), self.Rebalance) def Rebalance(self): if not self.roc.IsReady: history = self.History("SPY", 5, Resolution.Daily) for bar in history: self.roc.Update(bar.EndTime, bar.Close) self.roc.Update(self.Time, self.Securities["SPY"].Close) if not self.rocWindow.IsReady: return long_signal = self.rocWindow[0] > self.rocWindow[1] if long_signal: self.SetHoldings("SPY",1) else: self.Liquidate("SPY") def OnROC(self, sender, updated): if self.roc.IsReady: self.rocWindow.Add(updated)