I have a strategy running that trades all US equities listed on NASDAQ and NYSE simultaneously.
For that one I use 3 snapshots at different points of the day to take trading decisions.
You can literally take as many snapshots as you want, as long as you have the corresponding market data subscription.
For each contract:
self.reqMktData(reqId, contract, str(), True, False, [])
time.sleep(0.02)