Here is code snippet.
# region imports
from AlgorithmImports import *
# endregion
class PensiveFluorescentOrangeRhinoceros(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2018, 1, 1) # Set Start Date
self.SetEndDate(2019,1,1)
self.SetCash(100000) # Set Strategy Cash
self.AddEquity("SPY", Resolution.Minute)
self.Consolidate("SPY",timedelta(minutes=5),self.OnDataConsolidated)
self.window = RollingWindow[TradeBar](5)
self.swinghigh=0
def OnData(self, data: Slice):
if not self.window.IsReady:return
if self.Portfolio.Invested:return
if self.window[0].High < self.window[2].High and self.window[1].High < self.window[2].High and self.window[3].High < self.window[2].High and self.window[4].High < self.window[2].High:
self.swinghigh=self.window[2].High
self.Log("Looking for Swing High")
self.Log("right side 1nd point >> {0}".format(self.window[0].High))
self.Log("right side 2nd point >> {0}".format(self.window[1].High))
self.Log("Middle point >> {0}".format(self.window[2].High))
self.Log("Left side 2nd point >> {0}".format(self.window[3].High))
self.Log("Left side 1st point >> {0}".format(self.window[4].High))
self.Log("Swing High >>{0}".format(self.swinghigh))
def OnDataConsolidated(self,tradeBar):
self.window.Add(tradeBar)
self.Log(f'{tradeBar.Time}: {tradeBar.Open} - {tradeBar.EndTime}: {tradeBar.Close}')