It looks like the biggest uncertainties will be resolved this Friday, July 21st. With far above 80% support for SegWit2x, August 1st should not matter anymore (as BIP 148 will not trigger).
That would mean between now and Thursday should be the best time to buy.
On the other hand, August 1st is passed around everywhere as the "day of doom." Many uninformed people out there. So maybe wait till July 31st to buy? And will there be any risks left after Segwit is activated later this week?
The key question is: How much FUD will be left in the market after Friday...?
The problem for many of us is that we use exchanges to buy or sell but the advice we are getting is to move money off exchanges before Aug 1. If we buy in the day before, we are cutting it close on moving bitcoins off the exchange. What if I buy bitcoins on July 31 and then the exchange has a technical problem and I can't move the coins before the 1st?