As we all know exchanges can get hacked, caн be down for a long time, can held transactions and so on, so obviously it is not a good idea to keep your coins in them at all times. But then comes the transaction prices, if we move the coins always, we pay extra for the transactions we make. Perhaps the decentralized exchanges where you can directly log in with your wallet will help solve this, as you have the control over your wallet and not the exchanges.
That's why it is not advisable to hold a lot of your funds in an exchanges because of what you said. If the exchanges are hack then your coins are gone. If your account is compromise, same results. The practice though is just put enough coins for your trading activity. If you are done and make good profits then its time to withdraw and put it in your wallet where you have total control over it. Nothing spectacular and you can sleep knowing that your funds are safe in your hard wallet.