If a player is near his cap, it's best to sell him as soon as possible. If you keep him longer his price will go down. Same goes with a player that isn't trained much.
As for draftees, it's best to sell them the first week. Because most managers that want to train them, are looking to get them as soon as possible, to not waste training weeks (as some have a lvl 6 or 7 trainer, and have their own methods, depending on their needs). Also, at the beginning the prices are higher. The more you wait during the season, the prices will slowly drop.