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...?
In my opinion we should not buy/sell Bitcoin even at 25 July because there may be problem of unconfirmation and that can be results into loss of the Bitcoin if they didn't get confirmed within the 5 days ( before 1 August ) .
So you should buy more and more until 25 July atmost , but if you want pay high fee then you should try for even 30th of the July without tension .
But I don't think that price will go down much because not everyone are stupid , in the current time people are knowing perfectly about the Bitcoin and its price fluctuations that how does changing or anyone pumping .
So probably may be there many people will buy instead of sell and that will be results into increase in the price .So buy in small small installment you can , because in my opinion the price can jump to 2 times after the complete of the launching of segwit2X .