I'd put an OBD reader on it in the "real time mode" and watch fuel trim, advance, etc. and see what changes when it acts up - over what the readings are when it's running well.
There are no codes because nothing is going far enough out of expected parameters to trigger a DTC. But you can be SURE, SOMETHING will show up on a sensor SOMEWHERE that will give you a clue as to what is not right here.
Just be careful, say you see some O2 readings that are "way out" when the car acts up - DO NOT just change the O2 sensor(s) that are reporting odd numbers. CONSIDER that the sensor in question is NOT lying, but is reporting something it really sees. THEN try to logically determine what is REALLY doing on.
I had a funny thing with my Ford Ranger, it would loose power, it could idle, but not pull at all - did this a few times. Took me a month, it was the MAF/IAT sensor, it was lying to the ECM. Found it by:
Keeping an eye on fuel pressure - it was OK.
Watching a lot of readings in real time mode - saw some odd things with the stuff coming from the MAF/IAT. "Cleaned" the MAF like some told me to, ended up changing it - problem solved.
It took a little detective work and patience, but I found it!
