How long you keep them depends on how quickly you need to make money.
If you need it right now, might make sense to sell sooner, as long as you have some profit (remember: it costs 20NP to sell, to take that into account).
General rule is to purchase 1000 stocks daily at 15NP (the minimum you can pay), and most users wait until it reaches the 60NP mark (+300%) - but that might make you sit on some money for a while (like Secre, I'm sitting over 2,5mi on my portfolio, waiting for it to get there)