Abstract Paper aims To do a comprehensive review of the exact and heuristic methods, software/programming languages, constraints, and types of analysis (technical and fundamental) used to solve the portfolio optimization problem. Originality The paper presents a useful discussion on aspects of portfolio optimization, both for researchers and investors and for finance professionals. Research method A systematic literature review was performed, and the articles were compiled according to pre-established criteria/filters. Main findings A point of attention should be given to the input data of optimization models. Depending on the degree of the estimation error of these input parameters, the optimization results may be lower than the results of the 1/N trading strategy. Implications for theory and practice Robust optimization, Fuzzy logic, and prediction are examples of techniques used to reduce estimation errors. At the end of the article are pointed out trends and some gaps for future work.