Hi All-

I've built a strategy upon minutely universe resolution. Now that it's mostly stable I want to speed things up a bit, but second data is too computationally intensive. Something like a few seconds (5 or 10 seconds) for the OnData rate seems to be more appropriate for the strategy. 

I couldn't find anything in the Documentation or Forum covering this, but I do know that OnData is set by the universe resolution. 

Attached is the time and data related code I have currently. Basically just a rollingwindow that consolidates the minutely data into daily bars. I removed the fluff for the sake of readability. 

So, is a custom resolution possible to feed into OnData??

PS: This algo only trades Equities (for now) 

    def Initialize(self):

self.SetStartDate(2022, 8, 1)
self.rebalanceTime = datetime.min
self.AddUniverse(self.CoarseSelectionFilter, self.FineSelectionFilter)
self.UniverseSettings.Resolution = Resolution.Minute
self.Schedule.On(self.DateRules.EveryDay("SPY"), self.TimeRules.BeforeMarketClose("SPY", 10), self.ExitPositions)
self.Schedule.On(self.DateRules.EveryDay("SPY"), self.TimeRules.At(9, 31), self.ScanTargets)
self.Schedule.On(self.DateRules.EveryDay("SPY"), self.TimeRules.Midnight, self.ClearFills)
self.Data = {}

def OnData(self, data):
for symbol in self.Targets.keys():
symbolData = self.Data[symbol]

if not symbolData.IsReady:

open_orders = self.Transactions.GetOpenOrders(symbol)

if not self.Portfolio[symbol].Invested and len(open_orders) == 0 and symbol not in self.filled_today.keys():
# Strategy logic.....

def CoarseSelectionFilter(self, coarse):
# filter logic....

def OnSecuritiesChanged(self, changes):
for security in changes.AddedSecurities:
symbol = security.Symbol
if symbol not in self.Data:
self.Data[symbol] = SymbolData(self, symbol)

for security in changes.RemovedSecurities:
symbol = security.Symbol
if symbol in self.Data:
symbolData = self.Data.pop(symbol, None)
self.SubscriptionManager.RemoveConsolidator(symbol, symbolData.consolidator)

class SymbolData:
def __init__(self, algorithm, symbol):
self.algorithm = algorithm
self.symbol = symbol
self.Bars = RollingWindow[TradeBar](6)
self.consolidator = TradeBarConsolidator(timedelta(days=1))
self.consolidator.DataConsolidated += self.OnDataConsolidated
algorithm.SubscriptionManager.AddConsolidator(symbol, self.consolidator)

def OnDataConsolidated(self, sender, bar):

def IsReady(self):
return self.Bars.IsReady