action portfoliooptimizer_post_portfolio_optimization_mean_variance_efficient_subset_resam { label: "Subset Resampling-Based Mean-Variance Efficient Portfolio" description: "Compute the asset weights of a subset resampling-based mean-variance efficient portfolio, following the methodology described in the first and the second references, optionally subject to: \n* Minimum and maximum weights constraints\n* Maximum group weights constraints\n* Minimum and maximum portfolio exposure constraints\n\nReferences\n * [CSSA, Random Subspace Optimization (RSO)](https://cssanalytics.wordpress.com/2013/10/06/random-subspace-optimization-rso/)\n * [Subset Optimization for Asset Allocation,Benjamin J. Gillen](https://www.bengillen.com/uploads/1/2/3/8/123891022/subsets.pdf)\n * Harry M. Markowitz, Portfolio Selection, Efficient Diversification of Investments, Second edition, Blackwell Publishers Inc.\n" provider: portfoliooptimizer method: POST path: "/portfolio/optimization/mean-variance-efficient/subset-resampling-based" encoding: json input: { type: "object" required: ["assets", "assetsCovarianceMatrix", "assetsReturns", "constraints"] properties: { assets: { type: "integer" description: "The number of assets" } assetsCovarianceMatrix: { type: "array" description: "assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j" items: { type: "array" items: { type: "number" } } } assetsReturns: { type: "array" description: "assetsReturns[i] is the arithmetic return of asset i" items: { type: "number" } } constraints: { type: "object" properties: { assetsGroups: { type: "array" items: { type: "array" description: "assetsGroups[k] is the indexes of the assets belonging to the assets group k in the portfolio; exclusive with assetsGroupsMatrix" items: { type: "integer" } } } assetsGroupsMatrix: { type: "array" description: "assetsGroupsMatrix[k][i] is the weight of the asset i in the group of assets k; exclusive with assetsGroups" items: { type: "array" items: { type: "number" } } } maximumAssetsGroupsWeights: { type: "array" description: "maximumAssetsGroupsWeights[k] is the maximum weight of the assets group k in the portfolio, in percentage between 0 and 1 if assetsGroups is provided" items: { type: "number" } } maximumAssetsWeights: { type: "array" description: "maximumAssetsWeights[i] is the maximum weight of the asset i in the portfolio, in percentage" items: { type: "number" } } maximumPortfolioExposure: { type: "number" description: "The maximum portfolio exposure; must be higher than or equal to minimumPortfolioExposure" } minimumAssetsWeights: { type: "array" description: "minimumAssetsWeights[i] is the minimum weight of the asset i in the portfolio, in percentage" items: { type: "number" } } minimumPortfolioExposure: { type: "number" description: "The minimum portfolio exposure; must be lower than or equal to maximumPortfolioExposure" } portfolioReturn: { type: "number" description: "The portfolio return; exclusive with portfolioVolatility and riskTolerance" } portfolioVolatility: { type: "number" description: "The portfolio volatility; exclusive with portfolioReturn and riskTolerance" } riskTolerance: { type: "number" description: "The portfolio risk tolerance; exclusive with portfolioReturn and portfolioVolatility" } } } subsetPortfolios: { type: "integer" description: "The number of subset portfolios to compute; only applicable if the enumeration method for the subset portfolios is random sampling" } subsetPortfoliosAggregationMethod: { type: "string" description: "The method to aggregate the subset portfolios" enum: ["average", "median"] } subsetPortfoliosEnumerationMethod: { type: "string" description: "The method to enumerate the subset portfolios" enum: ["complete", "randomSampling"] } subsetSize: { type: "integer" description: "The number of assets to include in each subset portfolio; defaults to a value of order the square root of the total number of assets" } } } output: { type: "object" required: ["assetsWeights"] properties: { assetsWeights: { type: "array" description: "assetsWeights[i] is the weight of the asset i in the portfolio, in percentage" items: { type: "number" } } } } }