Overall Statistics |
Total Trades 0 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Probabilistic Sharpe Ratio 0% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio -8.044 Tracking Error 0.18 Treynor Ratio 0 Total Fees $0.00 |
class VentralOptimizedContainmentField(QCAlgorithm): # In Initialize, create the rolling windows def Initialize(self): self.SetStartDate(2019, 1, 1) self.SetEndDate(2019, 2, 1) self.SetCash(100000) self.AddEquity("SPY", Resolution.Minute) # Define and register thirty minute consolidator consolidator = TradeBarConsolidator(timedelta(minutes=30)) self.SubscriptionManager.AddConsolidator("SPY", consolidator) # Define DataConsolidated event handler consolidator.DataConsolidated += self.OnThirtyMinuteBar # Create a Rolling Window to keep the close values self.closeWindow = RollingWindow[float](4) # Create a Rolling Window to keep the TradeBars self.tradeBarWindow = RollingWindow[TradeBar](2) def OnData(self, data): if self.tradeBarWindow.IsReady: currentBar = self.tradeBarWindow[0] previousBar = self.tradeBarWindow[1] # In event handler, update the rolling windows def OnThirtyMinuteBar(self, sender, bar): self.Debug(f"Bar consolidated start: {bar.Time}, end: {bar.EndTime}, close: {bar.Close}") self.closeWindow.Add(bar.Close) self.tradeBarWindow.Add(bar)