I think when to take profits really depends on the stock and how you feel about its long term prospects.
I know there are chart gurus that can tell you when its about to start a retracement or "healthy dip" and maybe you try to time that and sell for profits at the top and buy back in on the dip, but that is tough to get right. I know I have rarely done it correctly.
In a perfect scenario, I am selling 100% of my shares when I think its at the top, and then buying that same amount, or more, on the dip. I never feel comfortable with that, but I have been able to sell 25-50% at a peak, or near a peak, and then buy back in after it dips down. I have also sold 25-50% at what I thought was a peak and watched it keep riding up.
We've said it before, but it really comes down to how pissed you will be if you sell and it rides another 1000% vs how pissed you would be if it dipped back down 50% and you were either forced to hold and wait, or sell at a discount.
Currently I free roll
5252K DPLS across two different accounts (with 2K profits)
100K AITX (with 4K profits taken)
1Million HCMC (with 1200 profits)
Sold out of PLYZ and ASTI
Holding a stake in UNVC, ALYI, GTEH, and XMET. I could free roll all of these except ALYI, but I like the long term prospects.