Based on the method of dynamic programming, this paper uses analysis methods governed by the nonlinear and inhomogeneous partial differential equation to study modern portfolio management problems with stochastic volatility, incomplete markets, limited investment scope, and constant relative risk aversion (CRRA). In this paper, a three-level Crank–Nicolson finite difference scheme is used to determine numerical solutions under this general setting. One of the main contributions of this paper is to apply this three-level technology to solve the portfolio selection problem. In addition, we have used a technique to deal with the nonlinear term, which is another novelty in performing the Crank–Nicolson algorithm. The Crank–Nicolson algorithm has also been extended to third-order accuracy by performing Richardson’s extrapolation. The accuracy of the proposed algorithm is much higher than the traditional finite difference method. Lastly, experiments are conducted to show the performance of the proposed algorithm.