| 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)