{"files":{"SKILL.md":"---\nname: portfolio-optimizer\ndescription: \"Portfolio Optimizer API skill. Use when working with Portfolio Optimizer for markets, factors, assets. Covers 229 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Portfolio Optimizer\nAPI version: 1.0.10\n\n## Auth\nApiKey X-API-Key in header\n\n## Base URL\nhttps://api.portfoliooptimizer.io/v1\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /markets/indicators/aiae/us -- verify access\n3. POST /factors/residualization -- create first residualization\n\n## Endpoints\n\n229 endpoints across 5 groups. See references/api-spec.lap for full details.\n\n### markets\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /markets/indicators/aiae/us | U.S. AIAE |\n| GET | /markets/indicators/naaim-exposure-index | NAAIM Exposure Index |\n| GET | /markets/capital-assumptions/usd | USD Capital Market Assumptions |\n| GET | /markets/capital-assumptions/eur | EUR Capital Market Assumptions |\n| GET | /markets/capital-assumptions/chf | CHF Capital Market Assumptions |\n| GET | /markets/indicators/bsrmb/us | U.S. BSRM/B |\n\n### factors\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /factors/models/fama-french/us | U.S. Fama-French Model |\n| GET | /factors/models/fama-french/developed-markets | Developed Markets Fama-French Model |\n| GET | /factors/models/fama-french/emerging-markets | Emerging Markets Fama-French Model |\n| POST | /factors/residualization | Residualization |\n\n### assets\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /assets/clustering/hierarchical/correlation-based | Hierarchical Clustering |\n| POST | /assets/clustering/thresholding/correlation-based | Threshold Clustering |\n| POST | /assets/clustering/spectral/correlation-based | Spectral Clustering |\n| POST | /assets/prices/adjusted | Adjusted Prices |\n| POST | /assets/prices/adjusted/forward | Forward-Adjusted Prices |\n| POST | /assets/returns | Arithmetic Returns |\n| POST | /assets/returns/logarithmic | Logarithmic Returns |\n| POST | /assets/returns/mean | Mean Return |\n| POST | /assets/returns/backfilled | Backfilled Returns |\n| POST | /assets/returns/transformation/turbulence-partitioned | Turbulence-Partitioned Returns |\n| POST | /assets/returns/transformation/exponentially-weighted | Exponentially Weighted Returns |\n| POST | /assets/returns/simulation/bootstrap/empirical | Empirical Bootstrap Simulation |\n| POST | /assets/returns/simulation/bootstrap/online | Online Bootstrap Simulation |\n| POST | /assets/returns/simulation/bootstrap/circular | Circular Block Bootstrap Simulation |\n| POST | /assets/returns/simulation/bootstrap/stationary | Stationary Block Bootstrap Simulation |\n| POST | /assets/returns/simulation/monte-carlo/arma-garch | Generalized AutoRegressive Conditional Heteroscedasticity (GARCH(1,1)) Conditional Variance Model |\n| POST | /assets/returns/simulation/monte-carlo/arma-ewma | Exponentially Weighted Moving Average (EWMA) Conditional Variance Model |\n| POST | /assets/returns/simulation/monte-carlo/gaussian | Gaussian Distribution |\n| POST | /assets/returns/simulation/monte-carlo/student | Student-t Distribution |\n| POST | /assets/returns/fitting/generalized-pareto | Generalized Pareto Distribution |\n| POST | /assets/returns/simulation/monte-carlo/generalized-pareto | Generalized Pareto Distribution |\n| POST | /assets/returns/fitting/arma-garch | Generalized AutoRegressive Conditional Heteroscedasticity (GARCH(1,1)) Conditional Variance Model |\n| POST | /assets/returns/fitting/arma-ewma | Exponentially Weighted Moving Average (EWMA) Conditional Variance Model |\n| POST | /assets/returns/fitting/gaussian | Gaussian Distribution |\n| POST | /assets/returns/fitting/student | Student-t Distribution |\n| POST | /assets/returns/simulation/monte-carlo/gaussian/mixture | Gaussian Mixture Distribution |\n| POST | /assets/returns/fitting/gaussian/mixture | Gaussian Mixture Distribution |\n| POST | /assets/returns/fitting/gaussian/mixture/multivariate | Multivariate Gaussian Mixture Distribution |\n| POST | /assets/returns/simulation/monte-carlo/gaussian/multivariate | Multivariate Gaussian Distribution |\n| POST | /assets/returns/fitting/gaussian/multivariate | Multivariate Gaussian Distribution |\n| POST | /assets/returns/simulation/monte-carlo/gaussian/mixture/multivariate | Multivariate Gaussian Mixture Distribution |\n| POST | /assets/returns/simulation/monte-carlo/cornish-fisher | Cornish-Fisher Distribution |\n| POST | /assets/returns/fitting/cornish-fisher | Cornish-Fisher Distribution |\n| POST | /assets/returns/simulation/monte-carlo/cornish-fisher/corrected | Corrected Cornish-Fisher Distribution |\n| POST | /assets/covariance/matrix | Covariance Matrix |\n| POST | /assets/covariance/matrix/estimation/empirical | Empirical Covariance Matrix |\n| POST | /assets/covariance/matrix/estimation/distance | Distance Covariance Matrix |\n| POST | /assets/covariance/matrix/estimation/empirical/shrunk | Linearly Shrunk Empirical Covariance Matrix |\n| POST | /assets/covariance/matrix/estimation/empirical/shrunk/clustering-based | Clustering-Based Linearly Shrunk Empirical Covariance Matrix |\n| POST | /assets/covariance/matrix/estimation/gerber | Gerber Covariance Matrix |\n| POST | /assets/covariance/matrix/estimation/empirical/exponentially-weighted | Exponentially Weighted Empirical Covariance Matrix |\n| POST | /assets/covariance/matrix/forecast/ewma | Exponentially Weighted Moving Average Model (EWMA) |\n| POST | /assets/covariance/matrix/forecast/ewma/iterated | Iterated Exponentially Weighted Moving Average Model (IEWMA) |\n| POST | /assets/correlation/matrix/forecast/ewma/iterated | Iterated Exponentially Weighted Moving Average Model (IEWMA) |\n| POST | /assets/covariance/matrix/forecast/sma | Simple Moving Average Model (SMA) |\n| POST | /assets/covariance/matrix/forecast/average-oracle | Average Oracle Method (AO) |\n| POST | /assets/correlation/matrix/forecast/ewma | Exponentially Weighted Moving Average Model (EWMA) |\n| POST | /assets/correlation/matrix/forecast/sma | Simple Moving Average Model (SMA) |\n| POST | /assets/correlation/matrix/forecast/average-oracle | Average Oracle Method (AO) |\n| POST | /assets/covariance/matrix/validation | Covariance Matrix Validation |\n| POST | /assets/returns/standard-deviation | Standard Deviation |\n| POST | /assets/volatility/estimation/close-to-close | Close-to-Close Volatility |\n| POST | /assets/volatility/estimation/garman-klass | Garman-Klass Volatility |\n| POST | /assets/volatility/estimation/garman-klass/jump-adjusted | Garman-Klass Volatility (jump-adjusted) |\n| POST | /assets/volatility/estimation/garman-klass/original | Garman-Klass Volatility (original) |\n| POST | /assets/volatility/estimation/garman-klass/original/jump-adjusted | Garman-Klass Volatility (original, jump-adjusted) |\n| POST | /assets/volatility/estimation/parkinson | Parkinson Volatility |\n| POST | /assets/volatility/estimation/parkinson/jump-adjusted | Parkinson Volatility (jump-adjusted) |\n| POST | /assets/volatility/estimation/rogers-satchell | Rogers-Satchell Volatility |\n| POST | /assets/volatility/estimation/rogers-satchell/jump-adjusted | Rogers-Satchell Volatility (jump-adjusted) |\n| POST | /assets/volatility/estimation/yang-zhang | Yang-Zhang Volatility |\n| POST | /assets/volatility/forecast/sma | Simple Moving Average Model (SMA) |\n| POST | /assets/volatility/forecast/ewma | Exponentially Weighted Moving Average Model (EWMA) |\n| POST | /assets/volatility/forecast/garch | Generalized AutoRegressive Conditional Heteroscedasticity Model (GARCH(1,1)) |\n| POST | /assets/volatility/forecast/har | Heterogeneous AutoRegressive Model (HAR) |\n| POST | /assets/volatility/forecast/hexp | Heterogeneous Exponential Model (HExp) |\n| POST | /assets/returns/variance | Variance |\n| POST | /assets/returns/skewness | Skewness |\n| POST | /assets/returns/kurtosis | Kurtosis |\n| POST | /assets/indicators/effective-rank | Effective Rank |\n| POST | /assets/indicators/turbulence-index | Turbulence Index |\n| POST | /assets/indicators/absorption-ratio | Absorption Ratio |\n| POST | /assets/indicators/momentum/sign | Sign Momentum |\n| POST | /assets/indicators/momentum | Momentum |\n| POST | /assets/indicators/momentum/rank | Rank Momentum |\n| POST | /assets/indicators/information-discreteness | Information Discreteness |\n| POST | /assets/indicators/trend-clarity | Trend Clarity |\n| POST | /assets/indicators/market-rank | Market Rank |\n| POST | /assets/indicators/entropic-connectedness | Entropic Connectedness |\n| POST | /assets/correlation/matrix | Correlation Matrix |\n| POST | /assets/correlation/matrix/estimation/spearman | Spearman Correlation Matrix |\n| POST | /assets/correlation/matrix/estimation/kendall | Kendall Correlation Matrix |\n| POST | /assets/correlation/matrix/estimation/popov | Popov Correlation Matrix |\n| POST | /assets/correlation/matrix/estimation/gerber | Gerber Correlation Matrix |\n| POST | /assets/correlation/matrix/estimation/chatterjee | Chatterjee Correlation Matrix |\n| POST | /assets/correlation/matrix/estimation/lancaster | Lancaster Correlation Matrix |\n| POST | /assets/correlation/matrix/estimation/fechner | Fechner Correlation Matrix |\n| POST | /assets/correlation/matrix/estimation/distance | Distance Correlation Matrix |\n| POST | /assets/correlation/matrix/estimation/empirical | Empirical Correlation Matrix |\n| POST | /assets/correlation/matrix/estimation/empirical/shrunk | Shrunk Empirical Correlation Matrix |\n| POST | /assets/correlation/matrix/estimation/empirical/shrunk/clustering-based | Clustering-Based Shrunk Empirical Correlation Matrix |\n| POST | /assets/correlation/matrix/estimation/empirical/exponentially-weighted | Exponentially Weighted Empirical Correlation Matrix |\n| POST | /assets/correlation/matrix/validation | Correlation Matrix Validation |\n| POST | /assets/correlation/matrix/theory-implied | Theory-Implied Correlation Matrix |\n| POST | /assets/correlation/matrix/random | Random Correlation Matrix |\n| POST | /assets/correlation/matrix/perturbed | Perturbed Correlation Matrix |\n| POST | /assets/correlation/matrix/nearest | Nearest Correlation Matrix |\n| POST | /assets/correlation/matrix/completed | Completed Correlation Matrix |\n| POST | /assets/covariance/matrix/shrunk | Shrunk Covariance Matrix |\n| POST | /assets/correlation/matrix/aggregated | Aggregated Correlation Matrix |\n| POST | /assets/covariance/matrix/aggregated | Aggregated Covariance Matrix |\n| POST | /assets/correlation/matrix/shrunk | Shrunk Correlation Matrix |\n| POST | /assets/correlation/matrix/shrunk/clustering-based | Clustering-Based Shrunk Correlation Matrix |\n| POST | /assets/correlation/matrix/estimation/empirical/filtered/random-matrix-theory-based | Random Matrix Theory-Based Filtered Empirical Correlation Matrix |\n| POST | /assets/covariance/matrix/estimation/empirical/filtered/random-matrix-theory-based | Random Matrix Theory-Based Filtered Empirical Covariance Matrix |\n| POST | /assets/correlation/matrix/distance | Correlation Matrix Distance |\n| POST | /assets/correlation/matrix/informativeness | Correlation Matrix Informativeness |\n| POST | /assets/correlation/matrix/average-correlation | Correlation Matrix Average Correlation |\n| POST | /assets/correlation/matrix/bounds | Correlation Matrix Bounds |\n| POST | /assets/returns/transformation/moment-matched | Moment-matched Returns |\n| POST | /assets/returns/transformation/unsmoothed | Unsmoothed Returns |\n| POST | /assets/returns/expected/estimation/empirical | Empirical Expected Returns |\n| POST | /assets/returns/expected/estimation/implied | Implied Expected Returns |\n| POST | /assets/returns/expected/estimation/ordering-information-based | Expected Returns from Ordering Information |\n\n### portfolios\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /portfolios/simulation/random | Random Portfolio Simulation |\n| POST | /portfolios/simulation/evolution | Portfolio Evolution Simulation |\n| POST | /portfolios/simulation/evolution/random | Random Portfolio Evolution Simulation |\n| POST | /portfolios/post-optimization/rounding | Portfolio Weights Rounding |\n| POST | /portfolios/replication/index-tracking | Index Tracking Portfolio |\n| POST | /portfolios/replication/index-tracking/sparse | Sparse Index Tracking Portfolio |\n| POST | /portfolios/analysis/factors/exposures | Factor Exposures |\n| POST | /portfolios/analysis/effective-number-of-bets | Effective Number of Bets |\n| POST | /portfolios/analysis/effective-number-of-assets | Effective Number of Assets |\n| POST | /portfolios/analysis/alpha | Jensen's Alpha |\n| POST | /portfolios/analysis/beta | Beta |\n| POST | /portfolios/analysis/tracking-error-variance | Tracking Error Variance |\n| POST | /portfolios/analysis/empirical-tracking-error | Empirical Tracking Error |\n| POST | /portfolios/analysis/drawdowns | Drawdown Function |\n| POST | /portfolios/analysis/drawdowns/worst | Worst Drawdowns |\n| POST | /portfolios/analysis/mean-variance/efficient-frontier | Mean-Variance Efficient Frontier |\n| POST | /portfolios/analysis/mean-variance/efficient-frontier/resampling-based | Resampling-Based Mean-Variance Efficient Frontier |\n| POST | /portfolios/analysis/mean-variance/minimum-variance-frontier | Mean-Variance Minimum Variance Frontier |\n| POST | /portfolios/analysis/returns/semivariance | Semivariance |\n| POST | /portfolios/analysis/returns/semideviation | Semideviation |\n| POST | /portfolios/analysis/returns/lower-partial-moment | Lower Partial Moment |\n| POST | /portfolios/analysis/drawdowns/ulcer-index | Ulcer Index |\n| POST | /portfolios/analysis/drawdowns/pitfall-indicator | Pitfall Indicator |\n| POST | /portfolios/analysis/drawdowns/conditional/empirical | Empirical Conditional Drawdown |\n| POST | /portfolios/analysis/drawdowns/maximum | Maximum Drawdown |\n| POST | /portfolios/analysis/drawdowns/average | Average Drawdown |\n| POST | /portfolios/analysis/drawdowns/pain-index | Pain Index |\n| POST | /portfolios/analysis/drawdowns/ulcer-performance-index | Ulcer Performance Index |\n| POST | /portfolios/analysis/returns | Arithmetic Returns |\n| POST | /portfolios/analysis/returns/logarithmic | Logarithmic Returns |\n| POST | /portfolios/analysis/returns/mean | Mean Return |\n| POST | /portfolios/analysis/return | Simple Return |\n| POST | /portfolios/analysis/return/time-weighted | Time-Weighted Return |\n| POST | /portfolios/analysis/return/money-weighted | Money-Weighted Return |\n| POST | /portfolios/transformation/time-weighted | Time-Weighted Portfolio |\n| POST | /portfolios/transformation/money-weighted | Money-Weighted Portfolio |\n| POST | /portfolios/analysis/returns/standard-deviation | Standard Deviation (Volatility) |\n| POST | /portfolios/analysis/returns/variance | Variance |\n| POST | /portfolios/analysis/mean-variance/sharpe-ratio | Sharpe Ratio |\n| POST | /portfolios/analysis/mean-variance/information-ratio | Information Ratio |\n| POST | /portfolios/analysis/mean-variance/sharpe-ratio/confidence-interval | Sharpe Ratio Confidence Interval |\n| POST | /portfolios/analysis/mean-variance/sharpe-ratio/probabilistic | Probabilistic Sharpe Ratio |\n| POST | /portfolios/analysis/diversification-ratio | Diversification Ratio |\n| POST | /portfolios/analysis/correlation-spectrum | Correlation Spectrum |\n| POST | /portfolios/analysis/contributions/return | Return Contributions |\n| POST | /portfolios/analysis/contributions/risk | Risk Contributions |\n| POST | /portfolios/analysis/contributions/value-at-risk/empirical/multivariate | Multivariate Empirical Value at Risk Contributions |\n| POST | /portfolios/analysis/contributions/value-at-risk/parametric/gaussian/multivariate | Multivariate Gaussian Value at Risk Contributions |\n| POST | /portfolios/analysis/contributions/value-at-risk/parametric/gaussian/mixture/multivariate | Multivariate Gaussian Mixture Value at Risk Contributions |\n| POST | /portfolios/analysis/contributions/diversification-ratio | Diversification Ratio Contributions |\n| POST | /portfolios/analysis/contributions/sharpe-ratio | Sharpe Ratio Contributions |\n| POST | /portfolios/optimization/equal-weighted | Equal Weighted Portfolio |\n| POST | /portfolios/optimization/inverse-variance-weighted | Inverse Variance Weighted Portfolio |\n| POST | /portfolios/optimization/inverse-volatility-weighted | Inverse Volatility Weighted Portfolio |\n| POST | /portfolios/optimization/equal-volatility-weighted | Equal Volatility Weighted Portfolio |\n| POST | /portfolios/optimization/equal-risk-contributions | Equal Risk Contributions Portfolio |\n| POST | /portfolios/optimization/equal-risk-contributions/clustering-based | Clustering-based Equal Risk Contributions Portfolio |\n| POST | /portfolios/optimization/supervised/nearest-neighbors-based | k-Nearest Neighbors Supervised Portfolio |\n| POST | /portfolios/optimization/risk-budgeting | Risk Budgeting Portfolio |\n| POST | /portfolios/optimization/maximum-decorrelation | Maximum Decorrelation Portfolio |\n| POST | /portfolios/optimization/minimum-correlation | Minimum Correlation Portfolio |\n| POST | /portfolios/optimization/most-diversified | Most Diversified Portfolio |\n| POST | /portfolios/optimization/minimum-variance | Minimum Variance Portfolio |\n| POST | /portfolios/optimization/minimum-variance/diversified | Diversified Minimum Variance Portfolio |\n| POST | /portfolios/optimization/minimum-variance/resampling-based | Resampling-Based Minimum Variance Portfolio |\n| POST | /portfolios/optimization/minimum-variance/subset-resampling-based | Subset Resampling-Based Minimum Variance Portfolio |\n| POST | /portfolios/optimization/hierarchical-risk-parity | Hierarchical Risk Parity Portfolio |\n| POST | /portfolios/optimization/hierarchical-risk-parity/clustering-based | Hierarchical Clustering-Based Risk Parity Portfolio |\n| POST | /portfolios/optimization/maximum-return | Maximum Return Portfolio |\n| POST | /portfolios/optimization/maximum-return/diversified | Diversified Maximum Return Portfolio |\n| POST | /portfolios/optimization/maximum-return/resampling-based | Resampling-Based Maximum Return Portfolio |\n| POST | /portfolios/optimization/maximum-return/subset-resampling-based | Subset Resampling-Based Maximum Return Portfolio |\n| POST | /portfolios/optimization/maximum-sharpe-ratio | Maximum Sharpe Ratio Portfolio |\n| POST | /portfolios/optimization/maximum-sharpe-ratio/diversified | Diversified Maximum Sharpe Ratio Portfolio |\n| POST | /portfolios/optimization/maximum-sharpe-ratio/resampling-based | Resampling-Based Maximum Sharpe Ratio Portfolio |\n| POST | /portfolios/optimization/maximum-sharpe-ratio/subset-resampling-based | Subset Resampling-Based Maximum Sharpe Ratio Portfolio |\n| POST | /portfolios/optimization/mean-variance-efficient | Mean-Variance Efficient Portfolio |\n| POST | /portfolios/optimization/mean-variance-efficient/diversified | Diversified Mean-Variance Efficient Portfolio |\n| POST | /portfolios/optimization/mean-variance-efficient/resampling-based | Resampling-Based Mean-Variance Efficient Portfolio |\n| POST | /portfolios/optimization/mean-variance-efficient/subset-resampling-based | Subset Resampling-Based Mean-Variance Efficient Portfolio |\n| POST | /portfolios/optimization/equal-sharpe-ratio-contributions | Equal Sharpe Ratio Contributions Portfolio |\n| POST | /portfolios/optimization/market-capitalization-weighted | Market Capitalization Weighted Portfolio |\n| POST | /portfolios/optimization/maximum-ulcer-performance-index | Maximum Ulcer Performance Index Portfolio |\n| POST | /portfolios/optimization/minimum-ulcer-index | Minimum Ulcer Index Portfolio |\n| POST | /portfolios/analysis/value-at-risk/estimation/empirical | Empirical Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/estimation/empirical/multivariate | Multivariate Empirical Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/estimation/extreme-value-theory-based | Extreme Value Theory-Based Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/estimation/parametric/gaussian | Gaussian Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/estimation/parametric/gaussian/multivariate | Multivariate Gaussian Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/estimation/parametric/student | Student-t Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/estimation/parametric/cornish-fisher | Cornish-Fisher Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/estimation/parametric/cornish-fisher/corrected | Corrected Cornish-Fisher Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/estimation/parametric/gaussian/mixture | Gaussian Mixture Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/estimation/parametric/gaussian/mixture/multivariate | Multivariate Gaussian Mixture Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/forecast/arma-garch | Generalized AutoRegressive Conditional Heteroscedasticity (GARCH(1,1)) Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/forecast/arma-ewma | Exponentially Weighted Moving Average (EWMA) Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/conditional/forecast/arma-garch | Generalized AutoRegressive Conditional Heteroscedasticity (GARCH(1,1)) Conditional Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/conditional/forecast/arma-ewma | Exponentially Weighted Moving Average (EWMA) Conditional Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/conditional/estimation/empirical | Empirical Conditional Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/conditional/estimation/parametric/gaussian | Gaussian Conditional Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/conditional/estimation/parametric/student | Student-t Conditional Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/conditional/estimation/parametric/cornish-fisher | Cornish-Fisher Conditional Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/conditional/estimation/parametric/cornish-fisher/corrected | Corrected Cornish-Fisher Conditional Value At Risk |\n| POST | /portfolios/analysis/value-at-risk/conditional/estimation/parametric/gaussian/mixture | Gaussian Mixture Conditional Value At Risk |\n\n### portfolio\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /portfolio/construction/investable | Investable Portfolio |\n\n## Common Questions\n\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all us?\" -> GET /markets/indicators/aiae/us\n- \"List all naaim-exposure-index?\" -> GET /markets/indicators/naaim-exposure-index\n- \"List all usd?\" -> GET /markets/capital-assumptions/usd\n- \"List all eur?\" -> GET /markets/capital-assumptions/eur\n- \"List all chf?\" -> GET /markets/capital-assumptions/chf\n- \"List all us?\" -> GET /markets/indicators/bsrmb/us\n- \"List all us?\" -> GET /factors/models/fama-french/us\n- \"List all developed-markets?\" -> GET /factors/models/fama-french/developed-markets\n- \"List all emerging-markets?\" -> GET /factors/models/fama-french/emerging-markets\n- \"Create a residualization?\" -> POST /factors/residualization\n- \"Create a correlation-based?\" -> POST /assets/clustering/hierarchical/correlation-based\n- \"Create a correlation-based?\" -> POST /assets/clustering/thresholding/correlation-based\n- \"Create a correlation-based?\" -> POST /assets/clustering/spectral/correlation-based\n- \"Create a adjusted?\" -> POST /assets/prices/adjusted\n- \"Create a forward?\" -> POST /assets/prices/adjusted/forward\n- \"Create a return?\" -> POST /assets/returns\n- \"Create a logarithmic?\" -> POST /assets/returns/logarithmic\n- \"Create a mean?\" -> POST /assets/returns/mean\n- \"Create a backfilled?\" -> POST /assets/returns/backfilled\n- \"Create a turbulence-partitioned?\" -> POST /assets/returns/transformation/turbulence-partitioned\n- \"Create a exponentially-weighted?\" -> POST /assets/returns/transformation/exponentially-weighted\n- \"Create a empirical?\" -> POST /assets/returns/simulation/bootstrap/empirical\n- \"Create a online?\" -> POST /assets/returns/simulation/bootstrap/online\n- \"Create a circular?\" -> POST /assets/returns/simulation/bootstrap/circular\n- \"Create a stationary?\" -> POST /assets/returns/simulation/bootstrap/stationary\n- \"Create a arma-garch?\" -> POST /assets/returns/simulation/monte-carlo/arma-garch\n- \"Create a arma-ewma?\" -> POST /assets/returns/simulation/monte-carlo/arma-ewma\n- \"Create a gaussian?\" -> POST /assets/returns/simulation/monte-carlo/gaussian\n- \"Create a student?\" -> POST /assets/returns/simulation/monte-carlo/student\n- \"Create a generalized-pareto?\" -> POST /assets/returns/fitting/generalized-pareto\n- \"Create a generalized-pareto?\" -> POST /assets/returns/simulation/monte-carlo/generalized-pareto\n- \"Create a arma-garch?\" -> POST /assets/returns/fitting/arma-garch\n- \"Create a arma-ewma?\" -> POST /assets/returns/fitting/arma-ewma\n- \"Create a gaussian?\" -> POST /assets/returns/fitting/gaussian\n- \"Create a student?\" -> POST /assets/returns/fitting/student\n- \"Create a mixture?\" -> POST /assets/returns/simulation/monte-carlo/gaussian/mixture\n- \"Create a mixture?\" -> POST /assets/returns/fitting/gaussian/mixture\n- \"Create a multivariate?\" -> POST /assets/returns/fitting/gaussian/mixture/multivariate\n- \"Create a multivariate?\" -> POST /assets/returns/simulation/monte-carlo/gaussian/multivariate\n- \"Create a multivariate?\" -> POST /assets/returns/fitting/gaussian/multivariate\n- \"Create a multivariate?\" -> POST /assets/returns/simulation/monte-carlo/gaussian/mixture/multivariate\n- \"Create a cornish-fisher?\" -> POST /assets/returns/simulation/monte-carlo/cornish-fisher\n- \"Create a cornish-fisher?\" -> POST /assets/returns/fitting/cornish-fisher\n- \"Create a corrected?\" -> POST /assets/returns/simulation/monte-carlo/cornish-fisher/corrected\n- \"Create a matrix?\" -> POST /assets/covariance/matrix\n- \"Create a empirical?\" -> POST /assets/covariance/matrix/estimation/empirical\n- \"Create a distance?\" -> POST /assets/covariance/matrix/estimation/distance\n- \"Create a shrunk?\" -> POST /assets/covariance/matrix/estimation/empirical/shrunk\n- \"Create a clustering-based?\" -> POST /assets/covariance/matrix/estimation/empirical/shrunk/clustering-based\n- \"Create a gerber?\" -> POST /assets/covariance/matrix/estimation/gerber\n- \"Create a exponentially-weighted?\" -> POST /assets/covariance/matrix/estimation/empirical/exponentially-weighted\n- \"Create a ewma?\" -> POST /assets/covariance/matrix/forecast/ewma\n- \"Create a iterated?\" -> POST /assets/covariance/matrix/forecast/ewma/iterated\n- \"Create a iterated?\" -> POST /assets/correlation/matrix/forecast/ewma/iterated\n- \"Create a sma?\" -> POST /assets/covariance/matrix/forecast/sma\n- \"Create a average-oracle?\" -> POST /assets/covariance/matrix/forecast/average-oracle\n- \"Create a ewma?\" -> POST /assets/correlation/matrix/forecast/ewma\n- \"Create a sma?\" -> POST /assets/correlation/matrix/forecast/sma\n- \"Create a average-oracle?\" -> POST /assets/correlation/matrix/forecast/average-oracle\n- \"Create a validation?\" -> POST /assets/covariance/matrix/validation\n- \"Create a standard-deviation?\" -> POST /assets/returns/standard-deviation\n- \"Create a close-to-close?\" -> POST /assets/volatility/estimation/close-to-close\n- \"Create a garman-klass?\" -> POST /assets/volatility/estimation/garman-klass\n- \"Create a jump-adjusted?\" -> POST /assets/volatility/estimation/garman-klass/jump-adjusted\n- \"Create a original?\" -> POST /assets/volatility/estimation/garman-klass/original\n- \"Create a jump-adjusted?\" -> POST /assets/volatility/estimation/garman-klass/original/jump-adjusted\n- \"Create a parkinson?\" -> POST /assets/volatility/estimation/parkinson\n- \"Create a jump-adjusted?\" -> POST /assets/volatility/estimation/parkinson/jump-adjusted\n- \"Create a rogers-satchell?\" -> POST /assets/volatility/estimation/rogers-satchell\n- \"Create a jump-adjusted?\" -> POST /assets/volatility/estimation/rogers-satchell/jump-adjusted\n- \"Create a yang-zhang?\" -> POST /assets/volatility/estimation/yang-zhang\n- \"Create a sma?\" -> POST /assets/volatility/forecast/sma\n- \"Create a ewma?\" -> POST /assets/volatility/forecast/ewma\n- \"Create a garch?\" -> POST /assets/volatility/forecast/garch\n- \"Create a har?\" -> POST /assets/volatility/forecast/har\n- \"Create a hexp?\" -> POST /assets/volatility/forecast/hexp\n- \"Create a variance?\" -> POST /assets/returns/variance\n- \"Create a skewness?\" -> POST /assets/returns/skewness\n- \"Create a kurtosis?\" -> POST /assets/returns/kurtosis\n- \"Create a effective-rank?\" -> POST /assets/indicators/effective-rank\n- \"Create a turbulence-index?\" -> POST /assets/indicators/turbulence-index\n- \"Create a absorption-ratio?\" -> POST /assets/indicators/absorption-ratio\n- \"Create a sign?\" -> POST /assets/indicators/momentum/sign\n- \"Create a momentum?\" -> POST /assets/indicators/momentum\n- \"Create a rank?\" -> POST /assets/indicators/momentum/rank\n- \"Create a information-discreteness?\" -> POST /assets/indicators/information-discreteness\n- \"Create a trend-clarity?\" -> POST /assets/indicators/trend-clarity\n- \"Create a market-rank?\" -> POST /assets/indicators/market-rank\n- \"Create a entropic-connectedness?\" -> POST /assets/indicators/entropic-connectedness\n- \"Create a matrix?\" -> POST /assets/correlation/matrix\n- \"Create a spearman?\" -> POST /assets/correlation/matrix/estimation/spearman\n- \"Create a kendall?\" -> POST /assets/correlation/matrix/estimation/kendall\n- \"Create a popov?\" -> POST /assets/correlation/matrix/estimation/popov\n- \"Create a gerber?\" -> POST /assets/correlation/matrix/estimation/gerber\n- \"Create a chatterjee?\" -> POST /assets/correlation/matrix/estimation/chatterjee\n- \"Create a lancaster?\" -> POST /assets/correlation/matrix/estimation/lancaster\n- \"Create a fechner?\" -> POST /assets/correlation/matrix/estimation/fechner\n- \"Create a distance?\" -> POST /assets/correlation/matrix/estimation/distance\n- \"Create a empirical?\" -> POST /assets/correlation/matrix/estimation/empirical\n- \"Create a shrunk?\" -> POST /assets/correlation/matrix/estimation/empirical/shrunk\n- \"Create a clustering-based?\" -> POST /assets/correlation/matrix/estimation/empirical/shrunk/clustering-based\n- \"Create a exponentially-weighted?\" -> POST /assets/correlation/matrix/estimation/empirical/exponentially-weighted\n- \"Create a validation?\" -> POST /assets/correlation/matrix/validation\n- \"Create a theory-implied?\" -> POST /assets/correlation/matrix/theory-implied\n- \"Create a random?\" -> POST /assets/correlation/matrix/random\n- \"Create a perturbed?\" -> POST /assets/correlation/matrix/perturbed\n- \"Create a nearest?\" -> POST /assets/correlation/matrix/nearest\n- \"Create a completed?\" -> POST /assets/correlation/matrix/completed\n- \"Create a shrunk?\" -> POST /assets/covariance/matrix/shrunk\n- \"Create a aggregated?\" -> POST /assets/correlation/matrix/aggregated\n- \"Create a aggregated?\" -> POST /assets/covariance/matrix/aggregated\n- \"Create a shrunk?\" -> POST /assets/correlation/matrix/shrunk\n- \"Create a clustering-based?\" -> POST /assets/correlation/matrix/shrunk/clustering-based\n- \"Create a random-matrix-theory-based?\" -> POST /assets/correlation/matrix/estimation/empirical/filtered/random-matrix-theory-based\n- \"Create a random-matrix-theory-based?\" -> POST /assets/covariance/matrix/estimation/empirical/filtered/random-matrix-theory-based\n- \"Create a distance?\" -> POST /assets/correlation/matrix/distance\n- \"Create a informativeness?\" -> POST /assets/correlation/matrix/informativeness\n- \"Create a average-correlation?\" -> POST /assets/correlation/matrix/average-correlation\n- \"Create a bound?\" -> POST /assets/correlation/matrix/bounds\n- \"Create a random?\" -> POST /portfolios/simulation/random\n- \"Create a evolution?\" -> POST /portfolios/simulation/evolution\n- \"Create a random?\" -> POST /portfolios/simulation/evolution/random\n- \"Create a investable?\" -> POST /portfolio/construction/investable\n- \"Create a rounding?\" -> POST /portfolios/post-optimization/rounding\n- \"Create a index-tracking?\" -> POST /portfolios/replication/index-tracking\n- \"Create a sparse?\" -> POST /portfolios/replication/index-tracking/sparse\n- \"Create a exposure?\" -> POST /portfolios/analysis/factors/exposures\n- \"Create a effective-number-of-bet?\" -> POST /portfolios/analysis/effective-number-of-bets\n- \"Create a effective-number-of-asset?\" -> POST /portfolios/analysis/effective-number-of-assets\n- \"Create a alpha?\" -> POST /portfolios/analysis/alpha\n- \"Create a beta?\" -> POST /portfolios/analysis/beta\n- \"Create a tracking-error-variance?\" -> POST /portfolios/analysis/tracking-error-variance\n- \"Create a empirical-tracking-error?\" -> POST /portfolios/analysis/empirical-tracking-error\n- \"Create a drawdown?\" -> POST /portfolios/analysis/drawdowns\n- \"Create a worst?\" -> POST /portfolios/analysis/drawdowns/worst\n- \"Create a efficient-frontier?\" -> POST /portfolios/analysis/mean-variance/efficient-frontier\n- \"Create a resampling-based?\" -> POST /portfolios/analysis/mean-variance/efficient-frontier/resampling-based\n- \"Create a minimum-variance-frontier?\" -> POST /portfolios/analysis/mean-variance/minimum-variance-frontier\n- \"Create a semivariance?\" -> POST /portfolios/analysis/returns/semivariance\n- \"Create a semideviation?\" -> POST /portfolios/analysis/returns/semideviation\n- \"Create a lower-partial-moment?\" -> POST /portfolios/analysis/returns/lower-partial-moment\n- \"Create a ulcer-index?\" -> POST /portfolios/analysis/drawdowns/ulcer-index\n- \"Create a pitfall-indicator?\" -> POST /portfolios/analysis/drawdowns/pitfall-indicator\n- \"Create a empirical?\" -> POST /portfolios/analysis/drawdowns/conditional/empirical\n- \"Create a maximum?\" -> POST /portfolios/analysis/drawdowns/maximum\n- \"Create a average?\" -> POST /portfolios/analysis/drawdowns/average\n- \"Create a pain-index?\" -> POST /portfolios/analysis/drawdowns/pain-index\n- \"Create a ulcer-performance-index?\" -> POST /portfolios/analysis/drawdowns/ulcer-performance-index\n- \"Create a return?\" -> POST /portfolios/analysis/returns\n- \"Create a logarithmic?\" -> POST /portfolios/analysis/returns/logarithmic\n- \"Create a mean?\" -> POST /portfolios/analysis/returns/mean\n- \"Create a return?\" -> POST /portfolios/analysis/return\n- \"Create a time-weighted?\" -> POST /portfolios/analysis/return/time-weighted\n- \"Create a money-weighted?\" -> POST /portfolios/analysis/return/money-weighted\n- \"Create a time-weighted?\" -> POST /portfolios/transformation/time-weighted\n- \"Create a money-weighted?\" -> POST /portfolios/transformation/money-weighted\n- \"Create a standard-deviation?\" -> POST /portfolios/analysis/returns/standard-deviation\n- \"Create a variance?\" -> POST /portfolios/analysis/returns/variance\n- \"Create a sharpe-ratio?\" -> POST /portfolios/analysis/mean-variance/sharpe-ratio\n- \"Create a information-ratio?\" -> POST /portfolios/analysis/mean-variance/information-ratio\n- \"Create a confidence-interval?\" -> POST /portfolios/analysis/mean-variance/sharpe-ratio/confidence-interval\n- \"Create a probabilistic?\" -> POST /portfolios/analysis/mean-variance/sharpe-ratio/probabilistic\n- \"Create a diversification-ratio?\" -> POST /portfolios/analysis/diversification-ratio\n- \"Create a correlation-spectrum?\" -> POST /portfolios/analysis/correlation-spectrum\n- \"Create a return?\" -> POST /portfolios/analysis/contributions/return\n- \"Create a risk?\" -> POST /portfolios/analysis/contributions/risk\n- \"Create a multivariate?\" -> POST /portfolios/analysis/contributions/value-at-risk/empirical/multivariate\n- \"Create a multivariate?\" -> POST /portfolios/analysis/contributions/value-at-risk/parametric/gaussian/multivariate\n- \"Create a multivariate?\" -> POST /portfolios/analysis/contributions/value-at-risk/parametric/gaussian/mixture/multivariate\n- \"Create a diversification-ratio?\" -> POST /portfolios/analysis/contributions/diversification-ratio\n- \"Create a sharpe-ratio?\" -> POST /portfolios/analysis/contributions/sharpe-ratio\n- \"Create a equal-weighted?\" -> POST /portfolios/optimization/equal-weighted\n- \"Create a inverse-variance-weighted?\" -> POST /portfolios/optimization/inverse-variance-weighted\n- \"Create a inverse-volatility-weighted?\" -> POST /portfolios/optimization/inverse-volatility-weighted\n- \"Create a equal-volatility-weighted?\" -> POST /portfolios/optimization/equal-volatility-weighted\n- \"Create a equal-risk-contribution?\" -> POST /portfolios/optimization/equal-risk-contributions\n- \"Create a clustering-based?\" -> POST /portfolios/optimization/equal-risk-contributions/clustering-based\n- \"Create a nearest-neighbors-based?\" -> POST /portfolios/optimization/supervised/nearest-neighbors-based\n- \"Create a risk-budgeting?\" -> POST /portfolios/optimization/risk-budgeting\n- \"Create a maximum-decorrelation?\" -> POST /portfolios/optimization/maximum-decorrelation\n- \"Create a minimum-correlation?\" -> POST /portfolios/optimization/minimum-correlation\n- \"Create a most-diversified?\" -> POST /portfolios/optimization/most-diversified\n- \"Create a minimum-variance?\" -> POST /portfolios/optimization/minimum-variance\n- \"Create a diversified?\" -> POST /portfolios/optimization/minimum-variance/diversified\n- \"Create a resampling-based?\" -> POST /portfolios/optimization/minimum-variance/resampling-based\n- \"Create a subset-resampling-based?\" -> POST /portfolios/optimization/minimum-variance/subset-resampling-based\n- \"Create a hierarchical-risk-parity?\" -> POST /portfolios/optimization/hierarchical-risk-parity\n- \"Create a clustering-based?\" -> POST /portfolios/optimization/hierarchical-risk-parity/clustering-based\n- \"Create a maximum-return?\" -> POST /portfolios/optimization/maximum-return\n- \"Create a diversified?\" -> POST /portfolios/optimization/maximum-return/diversified\n- \"Create a resampling-based?\" -> POST /portfolios/optimization/maximum-return/resampling-based\n- \"Create a subset-resampling-based?\" -> POST /portfolios/optimization/maximum-return/subset-resampling-based\n- \"Create a maximum-sharpe-ratio?\" -> POST /portfolios/optimization/maximum-sharpe-ratio\n- \"Create a diversified?\" -> POST /portfolios/optimization/maximum-sharpe-ratio/diversified\n- \"Create a resampling-based?\" -> POST /portfolios/optimization/maximum-sharpe-ratio/resampling-based\n- \"Create a subset-resampling-based?\" -> POST /portfolios/optimization/maximum-sharpe-ratio/subset-resampling-based\n- \"Create a mean-variance-efficient?\" -> POST /portfolios/optimization/mean-variance-efficient\n- \"Create a diversified?\" -> POST /portfolios/optimization/mean-variance-efficient/diversified\n- \"Create a resampling-based?\" -> POST /portfolios/optimization/mean-variance-efficient/resampling-based\n- \"Create a subset-resampling-based?\" -> POST /portfolios/optimization/mean-variance-efficient/subset-resampling-based\n- \"Create a equal-sharpe-ratio-contribution?\" -> POST /portfolios/optimization/equal-sharpe-ratio-contributions\n- \"Create a market-capitalization-weighted?\" -> POST /portfolios/optimization/market-capitalization-weighted\n- \"Create a maximum-ulcer-performance-index?\" -> POST /portfolios/optimization/maximum-ulcer-performance-index\n- \"Create a minimum-ulcer-index?\" -> POST /portfolios/optimization/minimum-ulcer-index\n- \"Create a empirical?\" -> POST /portfolios/analysis/value-at-risk/estimation/empirical\n- \"Create a multivariate?\" -> POST /portfolios/analysis/value-at-risk/estimation/empirical/multivariate\n- \"Create a extreme-value-theory-based?\" -> POST /portfolios/analysis/value-at-risk/estimation/extreme-value-theory-based\n- \"Create a gaussian?\" -> POST /portfolios/analysis/value-at-risk/estimation/parametric/gaussian\n- \"Create a multivariate?\" -> POST /portfolios/analysis/value-at-risk/estimation/parametric/gaussian/multivariate\n- \"Create a student?\" -> POST /portfolios/analysis/value-at-risk/estimation/parametric/student\n- \"Create a cornish-fisher?\" -> POST /portfolios/analysis/value-at-risk/estimation/parametric/cornish-fisher\n- \"Create a corrected?\" -> POST /portfolios/analysis/value-at-risk/estimation/parametric/cornish-fisher/corrected\n- \"Create a mixture?\" -> POST /portfolios/analysis/value-at-risk/estimation/parametric/gaussian/mixture\n- \"Create a multivariate?\" -> POST /portfolios/analysis/value-at-risk/estimation/parametric/gaussian/mixture/multivariate\n- \"Create a arma-garch?\" -> POST /portfolios/analysis/value-at-risk/forecast/arma-garch\n- \"Create a arma-ewma?\" -> POST /portfolios/analysis/value-at-risk/forecast/arma-ewma\n- \"Create a arma-garch?\" -> POST /portfolios/analysis/value-at-risk/conditional/forecast/arma-garch\n- \"Create a arma-ewma?\" -> POST /portfolios/analysis/value-at-risk/conditional/forecast/arma-ewma\n- \"Create a empirical?\" -> POST /portfolios/analysis/value-at-risk/conditional/estimation/empirical\n- \"Create a gaussian?\" -> POST /portfolios/analysis/value-at-risk/conditional/estimation/parametric/gaussian\n- \"Create a student?\" -> POST /portfolios/analysis/value-at-risk/conditional/estimation/parametric/student\n- \"Create a cornish-fisher?\" -> POST /portfolios/analysis/value-at-risk/conditional/estimation/parametric/cornish-fisher\n- \"Create a corrected?\" -> POST /portfolios/analysis/value-at-risk/conditional/estimation/parametric/cornish-fisher/corrected\n- \"Create a mixture?\" -> POST /portfolios/analysis/value-at-risk/conditional/estimation/parametric/gaussian/mixture\n- \"Create a moment-matched?\" -> POST /assets/returns/transformation/moment-matched\n- \"Create a unsmoothed?\" -> POST /assets/returns/transformation/unsmoothed\n- \"Create a empirical?\" -> POST /assets/returns/expected/estimation/empirical\n- \"Create a implied?\" -> POST /assets/returns/expected/estimation/implied\n- \"Create a ordering-information-based?\" -> POST /assets/returns/expected/estimation/ordering-information-based\n- \"How to authenticate?\" -> See Auth section\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints typically return the created/updated object\n\n## CLI\n\n```bash\n# Update this spec to the latest version\nnpx @lap-platform/lapsh get portfolio-optimizer -o references/api-spec.lap\n\n# Search for related APIs\nnpx @lap-platform/lapsh search portfolio-optimizer\n```\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Portfolio Optimizer\n@base https://api.portfoliooptimizer.io/v1\n@version 1.0.10\n@auth ApiKey X-API-Key in header\n@endpoints 229\n@hint download_for_search\n@toc markets(6), factors(4), assets(114), portfolios(104), portfolio(1)\n\n@group markets\n@endpoint GET /markets/indicators/aiae/us\n@desc U.S. AIAE\n@returns(200) {aiaeIndicator: map{aiaeRegion: str, aiaeComputationDate: str, aiaeReferenceDate: str, aiaeForecasts: [map]}} # OK\n@errors {401: Access to the endpoint is not authorized}\n\n@endpoint GET /markets/indicators/naaim-exposure-index\n@desc NAAIM Exposure Index\n@returns(200) {naaimExposureIndexIndicator: map{naaimExposureIndexComputationDate: str, naaimExposureIndexValues: [map]}} # OK\n@errors {401: Access to the endpoint is not authorized}\n\n@endpoint GET /markets/capital-assumptions/usd\n@desc USD Capital Market Assumptions\n@returns(200) {capitalMarketAssumptions: map{cmaCurrency: str, cmaComputationDate: str, cmaHorizon: str, cmaInstitutions: [str], cmaReferenceDates: map{earliestReferenceDate: str, latestReferenceDate: str}, cmaAssets: [map], cmaAssetsCorrelationMatrixLabels: [str], cmaAssetsCorrelationMatrix: [[num]], cmaAssetsCorrelationMatrixLowerBounds: [[num]], cmaAssetsCorrelationMatrixUpperBounds: [[num]]}} # OK\n\n@endpoint GET /markets/capital-assumptions/eur\n@desc EUR Capital Market Assumptions\n@returns(200) {capitalMarketAssumptions: map{cmaCurrency: str, cmaComputationDate: str, cmaHorizon: str, cmaInstitutions: [str], cmaReferenceDates: map{earliestReferenceDate: str, latestReferenceDate: str}, cmaAssets: [map], cmaAssetsCorrelationMatrixLabels: [str], cmaAssetsCorrelationMatrix: [[num]], cmaAssetsCorrelationMatrixLowerBounds: [[num]], cmaAssetsCorrelationMatrixUpperBounds: [[num]]}} # OK\n\n@endpoint GET /markets/capital-assumptions/chf\n@desc CHF Capital Market Assumptions\n@returns(200) {capitalMarketAssumptions: map{cmaCurrency: str, cmaComputationDate: str, cmaHorizon: str, cmaInstitutions: [str], cmaReferenceDates: map{earliestReferenceDate: str, latestReferenceDate: str}, cmaAssets: [map], cmaAssetsCorrelationMatrixLabels: [str], cmaAssetsCorrelationMatrix: [[num]], cmaAssetsCorrelationMatrixLowerBounds: [[num]], cmaAssetsCorrelationMatrixUpperBounds: [[num]]}} # OK\n\n@endpoint GET /markets/indicators/bsrmb/us\n@desc U.S. BSRM/B\n@returns(200) {bsrmbIndicator: map{bsrmbRegion: str, bsrmbComputationDate: str, bsrmbReferenceDate: str, bsrmbForecasts: [map]}} # OK\n@errors {401: Access to the endpoint is not authorized}\n\n@endgroup\n\n@group factors\n@endpoint GET /factors/models/fama-french/us\n@desc U.S. Fama-French Model\n@returns(200) {famaFrenchFactors: map{factorsRegion: str, factorsComputationDate: str, factors: [map]}} # OK\n@errors {401: Access to the endpoint is not authorized}\n\n@endpoint GET /factors/models/fama-french/developed-markets\n@desc Developed Markets Fama-French Model\n@returns(200) {famaFrenchFactors: map{factorsRegion: str, factorsComputationDate: str, factors: [map]}} # OK\n@errors {401: Access to the endpoint is not authorized}\n\n@endpoint GET /factors/models/fama-french/emerging-markets\n@desc Emerging Markets Fama-French Model\n@returns(200) {famaFrenchFactors: map{factorsRegion: str, factorsComputationDate: str, factors: [map]}} # OK\n@errors {401: Access to the endpoint is not authorized}\n\n@endpoint POST /factors/residualization\n@desc Residualization\n@required {factors: [map{factorReturns!: [num], factorResidualization: bool}]}\n@returns(200) {factors: [map]} # OK\n@example_request {\"factors\":[{\"factorReturns\":[0.01,0.02,-0.01],\"factorResidualization\":true},{\"factorReturns\":[0.025,0.005,-0.02]}]}\n\n@endgroup\n\n@group assets\n@endpoint POST /assets/clustering/hierarchical/correlation-based\n@desc Hierarchical Clustering\n@required {assets: int # The number of assets, assetsCorrelationMatrix: [[num]] # assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j}\n@optional {clusteringMethod: str(singleLinkage/averageLinkage/completeLinkage/wardLinkage)=wardLinkage # The hierarchical clustering method to use, clusters: int # The number of clusters to group the assets into; if not provided, it is computed using the gap statistic method, as described in the first reference, clusteringSimulations: int=500 # The number of clustering simulations to perform when the number of clusters is computed using the gap statistic method}\n@returns(200) {assetsGroups: [[int]]} # OK\n@example_request {\"assets\":3,\"assetsCorrelationMatrix\":[[1,0.7606306078350177,0.15733356650676536],[0.7606306078350177,1,0.7606306078350177],[0.15733356650676536,0.7606306078350177,1]]}\n\n@endpoint POST /assets/clustering/thresholding/correlation-based\n@desc Threshold Clustering\n@required {assets: int # The number of assets, assetsCorrelationMatrix: [[num]] # assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j}\n@optional {assetsCorrelationThreshold: num=0.5 # The correlation threshold used to separate similar v.s. dissimilar assets}\n@returns(200) {assetsGroups: [[int]]} # OK\n@example_request {\"assets\":3,\"assetsCorrelationMatrix\":[[1,0.7606306078350177,0.15733356650676536],[0.7606306078350177,1,0.7606306078350177],[0.15733356650676536,0.7606306078350177,1]]}\n\n@endpoint POST /assets/clustering/spectral/correlation-based\n@desc Spectral Clustering\n@required {assets: int # The number of assets, assetsCorrelationMatrix: [[num]] # assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j}\n@optional {clusteringMethod: str(blockbuster/sponge/spongeSymmetric)=spongeSymmetric # The hierarchical clustering method to use, clusters: int # The number of clusters to group the assets into; if not provided, it is computed using a proprietary procedure, clusteringSimulations: int=500 # The number of clustering simulations to perform when the number of clusters is computed using a proprietary variation of Horn's parallel analysis method, positiveDegreeMatrixRegularizationParameter: num=1 # The regularization parameter applicable to the positive degree matrix, in case the clustering method is either SPONGE or symmetric SPONGE, negativeDegreeMatrixRegularizationParameter: num=1 # The regularization parameter applicable to the positive degree matrix, in case the clustering method is either SPONGE or symmetric SPONGE}\n@returns(200) {assetsGroups: [[int]]} # OK\n@example_request {\"assets\":3,\"assetsCorrelationMatrix\":[[1,0.7606306078350177,0.15733356650676536],[0.7606306078350177,1,0.7606306078350177],[0.15733356650676536,0.7606306078350177,1]]}\n\n@endpoint POST /assets/prices/adjusted\n@desc Adjusted Prices\n@required {assets: [map{assetPrices!: [map], assetDividends: [map], assetSplits: [map]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"close\":2213.4,\"date\":\"2020-08-28\"},{\"close\":498.32,\"date\":\"2020-08-31\"},{\"close\":475.05,\"date\":\"2020-09-01\"}],\"assetSplits\":[{\"factor\":5,\"date\":\"2020-08-31\"}]}]}\n\n@endpoint POST /assets/prices/adjusted/forward\n@desc Forward-Adjusted Prices\n@required {assets: [map{assetPrices!: [map], assetDividends: [map], assetSplits: [map]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"close\":2213.4,\"date\":\"2020-08-28\"},{\"close\":498.32,\"date\":\"2020-08-31\"},{\"close\":475.05,\"date\":\"2020-09-01\"}],\"assetSplits\":[{\"factor\":5,\"date\":\"2020-08-31\"}]}]}\n\n@endpoint POST /assets/returns\n@desc Arithmetic Returns\n@required {assets: [map{assetPrices!: [num]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[1,2]},{\"assetPrices\":[2,3,6]}]}\n\n@endpoint POST /assets/returns/logarithmic\n@desc Logarithmic Returns\n@required {assets: [map{assetPrices!: [num]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[1,2]},{\"assetPrices\":[2,3,6]}]}\n\n@endpoint POST /assets/returns/mean\n@desc Mean Return\n@required {assets: [map{assetReturns!: [num]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.1,-0.05]},{\"assetReturns\":[0,-0.01,0.01]}]}\n\n@endpoint POST /assets/returns/backfilled\n@desc Backfilled Returns\n@required {assets: [map{assetReturns!: [num]}]}\n@optional {assetsReturnsBackfillingMethod: str(betaAdjusting/conditionalSampling/residualsRecycling)=residualsRecycling # The method to backfill (i.e., simulate) missing asset returns}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.05,0.1,0.09,0.18]},{\"assetReturns\":[0.31,0.14,0.29]}]}\n\n@endpoint POST /assets/returns/transformation/turbulence-partitioned\n@desc Turbulence-Partitioned Returns\n@returns(200) {partitions: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0,0.1,0.05,-0.01,0.025]},{\"assetReturns\":[0.005,0.05,0.1,-0.02,0]}],\"assetsReturnsTurbulenceThresholds\":[0.8,0.95]}\n\n@endpoint POST /assets/returns/transformation/exponentially-weighted\n@desc Exponentially Weighted Returns\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0,0.1,0.05,-0.01,0.025]},{\"assetReturns\":[0.005,0.05,0.1,-0.02,0]}],\"assetsReturnsDecayFactor\":0.94}\n\n@endpoint POST /assets/returns/simulation/bootstrap/empirical\n@desc Empirical Bootstrap Simulation\n@required {assets: [map{assetReturns!: [num]}]}\n@optional {simulations: int=1 # The number of simulations to perform, simulationsLength: int # The number of time period(s) to simulate per simulation; if not provided, defaults to the common length of the assetReturns arrays}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.1,-0.05,0.01,0.025,-0.1]},{\"assetReturns\":[0,0.01,0.02,-0.01,0.05]}],\"simulations\":5,\"simulationsLength\":4}\n\n@endpoint POST /assets/returns/simulation/bootstrap/online\n@desc Online Bootstrap Simulation\n@required {assets: [map{assetReturns!: [num]}]}\n@optional {bootstrapPersistenceParameter: num # The value of the persistence parameter beta; if not provided, defaults to the optimal value of the 1st reference, simulations: int=1 # The number of simulations to perform, simulationsLength: int # The number of time period(s) to simulate per simulation; if not provided, defaults to the common length of the assetReturns arrays}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.1,-0.05,0.01,0.025,-0.1]},{\"assetReturns\":[0,0.01,0.02,-0.01,0.05]}],\"simulations\":5,\"simulationsLength\":4}\n\n@endpoint POST /assets/returns/simulation/bootstrap/circular\n@desc Circular Block Bootstrap Simulation\n@required {assets: [map{assetReturns!: [num]}]}\n@optional {bootstrapBlockLength: int # The length of the blocks to use, in time periods; if not provided, defaults to the automated rounded circular block length of the 2nd and 3rd references, simulations: int=1 # The number of simulations to perform, simulationsLength: int # The number of time period(s) to simulate per simulation; if not provided, defaults to the common length of the assetReturns arrays}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.1,-0.05,0.01,0.025,-0.1]},{\"assetReturns\":[0,0.01,0.02,-0.01,0.05]}],\"bootstrapBlockLength\":2,\"simulations\":5,\"simulationsLength\":4}\n\n@endpoint POST /assets/returns/simulation/bootstrap/stationary\n@desc Stationary Block Bootstrap Simulation\n@required {assets: [map{assetReturns!: [num]}]}\n@optional {bootstrapAverageBlockLength: num # The average length of the blocks to use, in time periods; if not provided, defaults to the automated stationary block length of the 2nd and 3rd references, simulations: int=1 # The number of simulations to perform, simulationsLength: int # The number of time period(s) to simulate per simulation; if not provided, defaults to the common length of the assetReturns arrays}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.1,-0.05,0.01,0.025,-0.1]},{\"assetReturns\":[0,0.01,0.02,-0.01,0.05]}],\"bootstrapAverageBlockLength\":2,\"simulations\":5,\"simulationsLength\":4}\n\n@endpoint POST /assets/returns/simulation/monte-carlo/arma-garch\n@desc Generalized AutoRegressive Conditional Heteroscedasticity (GARCH(1,1)) Conditional Variance Model\n@required {assets: [any]}\n@optional {simulations: int=1 # The number of simulations to perform, simulationsLength: int=1 # The number of time period(s) to simulate per simulation}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":[{\"assetReturnsConditionalMeanModel\":\"constantMean\",\"assetUnconditionalMean\":0.1,\"assetUnscaledUnconditionalVariance\":0.010846980082155452,\"assetConditionalVarianceLaggedSquaredResidualCoefficient\":0.1545888477866232,\"assetConditionalVarianceLaggedConditionalVarianceCoefficient\":0.8045921025800893}],\"simulations\":5,\"simulationsLength\":4}\n\n@endpoint POST /assets/returns/simulation/monte-carlo/arma-ewma\n@desc Exponentially Weighted Moving Average (EWMA) Conditional Variance Model\n@required {assets: [any]}\n@optional {simulations: int=1 # The number of simulations to perform, simulationsLength: int=1 # The number of time period(s) to simulate per simulation}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":[{\"assetReturnsConditionalMeanModel\":\"constantMean\",\"assetUnconditionalMean\":0.010846980082155452,\"assetConditionalVarianceDecayFactor\":0.97}],\"simulations\":5,\"simulationsLength\":4}\n\n@endpoint POST /assets/returns/simulation/monte-carlo/gaussian\n@desc Gaussian Distribution\n@required {assets: [any]}\n@optional {simulations: int=1 # The number of simulations to perform, simulationsLength: int=1 # The number of time period(s) to simulate per simulation}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":[{\"assetMean\":0.05,\"assetStandardDeviation\":0.2}],\"simulations\":5,\"simulationsLength\":4}\n\n@endpoint POST /assets/returns/simulation/monte-carlo/student\n@desc Student-t Distribution\n@required {assets: [any]}\n@optional {simulations: int=1 # The number of simulations to perform, simulationsLength: int=1 # The number of time period(s) to simulate per simulation}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":[{\"assetLocationParameter\":0.05,\"assetScaleParameter\":0.2,\"assetShapeParameter\":4}],\"simulations\":5,\"simulationsLength\":4}\n\n@endpoint POST /assets/returns/fitting/generalized-pareto\n@desc Generalized Pareto Distribution\n@required {assets: [map{assetReturns!: [num], assetReturnsTailLocation: str, assetReturnsTailType: str, assetReturnsTailFittingMethod: str, assetReturnsTailParametersBiasReduction: bool, assetReturnsTailThresholdEstimationMethod: str, assetReturnsTailThreshold: num, assetReturnsTailObservations: int, assetReturnsTailPercentObservations: num}] # assets[i] is the data for the i-th asset}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[-0.01,-0.03,-0.01,0],\"assetReturnsTailThresholdEstimationMethod\":\"manual\",\"assetReturnsTailThreshold\":0}]}\n\n@endpoint POST /assets/returns/simulation/monte-carlo/generalized-pareto\n@desc Generalized Pareto Distribution\n@required {assets: [any]}\n@optional {simulations: int=1 # The number of simulations to perform, simulationsLength: int=1 # The number of time period(s) to simulate per simulation}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":[{\"assetLowerTailThreshold\":0,\"assetLowerTailScaleParameter\":1,\"assetLowerTailShapeParameter\":1}],\"simulations\":5,\"simulationsLength\":4}\n\n@endpoint POST /assets/returns/fitting/arma-garch\n@desc Generalized AutoRegressive Conditional Heteroscedasticity (GARCH(1,1)) Conditional Variance Model\n@required {assets: [map{assetReturns!: [num], assetReturnsConditionalMeanModel: str, assetReturnsStandardizedResidualsDistribution: str}] # assets[i] is the data for the i-th asset}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0.03,-0.01,0]}]}\n\n@endpoint POST /assets/returns/fitting/arma-ewma\n@desc Exponentially Weighted Moving Average (EWMA) Conditional Variance Model\n@required {assets: [map{assetReturns!: [num], assetReturnsConditionalMeanModel: str, assetReturnsStandardizedResidualsDistribution: str}] # assets[i] is the data for the i-th asset}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0.03,-0.01,0],\"assetReturnsConditionalMeanModel\":\"zeroMean\"}]}\n\n@endpoint POST /assets/returns/fitting/gaussian\n@desc Gaussian Distribution\n@required {assets: [map{assetReturns!: [num]}] # assets[i] is the data for the i-th asset}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0.03,-0.01,0]}]}\n\n@endpoint POST /assets/returns/fitting/student\n@desc Student-t Distribution\n@required {assets: [map{assetReturns!: [num]}] # assets[i] is the data for the i-th asset}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0.03,-0.01,0]}]}\n\n@endpoint POST /assets/returns/simulation/monte-carlo/gaussian/mixture\n@desc Gaussian Mixture Distribution\n@required {assets: [any]}\n@optional {simulations: int=1 # The number of simulations to perform, simulationsLength: int=1 # The number of time period(s) to simulate per simulation}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":[{\"assetReturnsMixtureComponents\":[{\"assetReturnsMixtureComponentWeight\":0.6,\"assetReturnsMixtureComponentMean\":0,\"assetReturnsMixtureComponentStandardDeviation\":0.2},{\"assetReturnsMixtureComponentWeight\":0.4,\"assetReturnsMixtureComponentMean\":0.05,\"assetReturnsMixtureComponentStandardDeviation\":0.1}]}],\"simulations\":5,\"simulationsLength\":4}\n\n@endpoint POST /assets/returns/fitting/gaussian/mixture\n@desc Gaussian Mixture Distribution\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0.03,-0.01,0]}]}\n\n@endpoint POST /assets/returns/fitting/gaussian/mixture/multivariate\n@desc Multivariate Gaussian Mixture Distribution\n@returns(200) {assets: int, assetsReturnsMixtureComponents: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0.03,-0.01,0]},{\"assetReturns\":[0.02,-0.03,0.01,0.005]}]}\n\n@endpoint POST /assets/returns/simulation/monte-carlo/gaussian/multivariate\n@desc Multivariate Gaussian Distribution\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":2,\"assetsMeans\":[0.05,0],\"assetsCovarianceMatrix\":[[0.04,0],[0,0.04]],\"simulations\":5,\"simulationsLength\":4}\n\n@endpoint POST /assets/returns/fitting/gaussian/multivariate\n@desc Multivariate Gaussian Distribution\n@required {assets: [map{assetReturns!: [num]}] # assets[i] is the data for the i-th asset}\n@returns(200) {assets: int, assetsMeans: [num], assetsCovarianceMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0.03,-0.01,0]},{\"assetReturns\":[0.02,0.001,-0.002,0.01]}]}\n\n@endpoint POST /assets/returns/simulation/monte-carlo/gaussian/mixture/multivariate\n@desc Multivariate Gaussian Mixture Distribution\n@required {assets: int # The number of assets, assetsReturnsMixtureComponents: [map{assetsReturnsMixtureComponentWeight!: num, assetsReturnsMixtureComponentMeans!: [num], assetsReturnsMixtureComponentCovarianceMatrix!: [[num]]}] # assetsReturnsMixtureComponents[i] is the data for the i-th component of the multivariate Gaussian mixture distribution}\n@optional {simulations: int=1 # The number of simulations to perform, simulationsLength: int=1 # The number of time period(s) to simulate per simulation}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":2,\"assetsReturnsMixtureComponents\":[{\"assetsReturnsMixtureComponentWeight\":0.6,\"assetsReturnsMixtureComponentMeans\":[0,0],\"assetsReturnsMixtureComponentCovarianceMatrix\":[[0.04,0],[0,0.04]]},{\"assetsReturnsMixtureComponentWeight\":0.4,\"assetsReturnsMixtureComponentMeans\":[0.05,0.05],\"assetsReturnsMixtureComponentCovarianceMatrix\":[[0.01,0],[0,0.01]]}],\"simulations\":5,\"simulationsLength\":4}\n\n@endpoint POST /assets/returns/simulation/monte-carlo/cornish-fisher\n@desc Cornish-Fisher Distribution\n@required {assets: [any]}\n@optional {simulations: int=1 # The number of simulations to perform, simulationsLength: int=1 # The number of time period(s) to simulate per simulation}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":[{\"assetMean\":0.05,\"assetStandardDeviation\":0.2,\"assetSkewness\":0.5,\"assetExcessKurtosis\":1}],\"simulations\":5,\"simulationsLength\":4}\n\n@endpoint POST /assets/returns/fitting/cornish-fisher\n@desc Cornish-Fisher Distribution\n@required {assets: [map{assetReturns!: [num]}] # assets[i] is the data for the i-th asset}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0.03,-0.01,0]}]}\n\n@endpoint POST /assets/returns/simulation/monte-carlo/cornish-fisher/corrected\n@desc Corrected Cornish-Fisher Distribution\n@required {assets: [any]}\n@optional {simulations: int=1 # The number of simulations to perform, simulationsLength: int=1 # The number of time period(s) to simulate per simulation}\n@returns(200) {simulations: [map]} # OK\n@errors {500: Failed computation of the Cornish-Fisher skewness and (excess) kurtosis parameters corresponding to the asset skewness and (excess) kurtosis}\n@example_request {\"assets\":[{\"assetMean\":0.05,\"assetStandardDeviation\":0.2,\"assetSkewness\":0.5,\"assetExcessKurtosis\":1}],\"simulations\":5,\"simulationsLength\":4}\n\n@endpoint POST /assets/covariance/matrix\n@desc Covariance Matrix\n@returns(200) {assetsCovarianceMatrix: [[num]]} # OK\n@example_request {\"assets\":2,\"assetsCorrelationMatrix\":[[1,-0.5],[-0.5,1]],\"assetsVolatilities\":[0.1,0.05]}\n\n@endpoint POST /assets/covariance/matrix/estimation/empirical\n@desc Empirical Covariance Matrix\n@returns(200) {assetsCovarianceMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/covariance/matrix/estimation/distance\n@desc Distance Covariance Matrix\n@returns(200) {assetsCovarianceMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/covariance/matrix/estimation/empirical/shrunk\n@desc Linearly Shrunk Empirical Covariance Matrix\n@returns(200) {assetsCovarianceMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}],\"shrinkageTarget\":\"constantVarianceCovariance\"}\n\n@endpoint POST /assets/covariance/matrix/estimation/empirical/shrunk/clustering-based\n@desc Clustering-Based Linearly Shrunk Empirical Covariance Matrix\n@returns(200) {assetsCovarianceMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01695979899,0.00264713668,0.0007040394262,0.004221264621]},{\"assetReturns\":[0.02669404517,0.001,0.001248751249,-0.003242703916]},{\"assetReturns\":[0.02566735113,0.006006006006,0.003980099502,-0.008919722498]}],\"assetsGroups\":[[1],[2,3]],\"shrinkageTarget\":\"constantVarianceCovariance\"}\n\n@endpoint POST /assets/covariance/matrix/estimation/gerber\n@desc Gerber Covariance Matrix\n@returns(200) {assetsCovarianceMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/covariance/matrix/estimation/empirical/exponentially-weighted\n@desc Exponentially Weighted Empirical Covariance Matrix\n@returns(200) {assetsCovarianceMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0.01,0.02,0.01]},{\"assetReturns\":[-0.02,-0.02,-0.04,-0.02]}],\"assetsReturnsDecayFactor\":0.5}\n\n@endpoint POST /assets/covariance/matrix/forecast/ewma\n@desc Exponentially Weighted Moving Average Model (EWMA)\n@returns(200) {assetsCovarianceMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":3.08},{\"date\":\"2020-01-02\",\"close\":3.11},{\"date\":\"2020-01-03\",\"close\":3.09},{\"date\":\"2020-01-04\",\"close\":3.1},{\"date\":\"2020-01-05\",\"close\":3.11},{\"date\":\"2020-01-06\",\"close\":3.16},{\"date\":\"2020-01-07\",\"close\":3.22},{\"date\":\"2020-01-08\",\"close\":3.23},{\"date\":\"2020-01-09\",\"close\":3.32},{\"date\":\"2020-01-10\",\"close\":3.3}]},{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":5.08},{\"date\":\"2020-01-02\",\"close\":5.11},{\"date\":\"2020-01-03\",\"close\":5.09},{\"date\":\"2020-01-04\",\"close\":5.1},{\"date\":\"2020-01-05\",\"close\":5.11},{\"date\":\"2020-01-06\",\"close\":5.16},{\"date\":\"2020-01-07\",\"close\":5.22},{\"date\":\"2020-01-08\",\"close\":5.23},{\"date\":\"2020-01-09\",\"close\":5.32},{\"date\":\"2020-01-10\",\"close\":5.3}]}],\"covarianceForecastHorizon\":2}\n\n@endpoint POST /assets/covariance/matrix/forecast/ewma/iterated\n@desc Iterated Exponentially Weighted Moving Average Model (IEWMA)\n@returns(200) {assetsCovarianceMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":3.08},{\"date\":\"2020-01-02\",\"close\":3.11},{\"date\":\"2020-01-03\",\"close\":3.09},{\"date\":\"2020-01-04\",\"close\":3.1},{\"date\":\"2020-01-05\",\"close\":3.11},{\"date\":\"2020-01-06\",\"close\":3.16},{\"date\":\"2020-01-07\",\"close\":3.22},{\"date\":\"2020-01-08\",\"close\":3.23},{\"date\":\"2020-01-09\",\"close\":3.32},{\"date\":\"2020-01-10\",\"close\":3.3}]},{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":5.08},{\"date\":\"2020-01-02\",\"close\":5.11},{\"date\":\"2020-01-03\",\"close\":5.09},{\"date\":\"2020-01-04\",\"close\":5.1},{\"date\":\"2020-01-05\",\"close\":5.11},{\"date\":\"2020-01-06\",\"close\":5.16},{\"date\":\"2020-01-07\",\"close\":5.22},{\"date\":\"2020-01-08\",\"close\":5.23},{\"date\":\"2020-01-09\",\"close\":5.32},{\"date\":\"2020-01-10\",\"close\":5.3}]}],\"covarianceForecastHorizon\":2}\n\n@endpoint POST /assets/correlation/matrix/forecast/ewma/iterated\n@desc Iterated Exponentially Weighted Moving Average Model (IEWMA)\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":3.08},{\"date\":\"2020-01-02\",\"close\":3.11},{\"date\":\"2020-01-03\",\"close\":3.09},{\"date\":\"2020-01-04\",\"close\":3.1},{\"date\":\"2020-01-05\",\"close\":3.11},{\"date\":\"2020-01-06\",\"close\":3.16},{\"date\":\"2020-01-07\",\"close\":3.22},{\"date\":\"2020-01-08\",\"close\":3.23},{\"date\":\"2020-01-09\",\"close\":3.32},{\"date\":\"2020-01-10\",\"close\":3.3}]},{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":5.08},{\"date\":\"2020-01-02\",\"close\":5.11},{\"date\":\"2020-01-03\",\"close\":5.09},{\"date\":\"2020-01-04\",\"close\":5.1},{\"date\":\"2020-01-05\",\"close\":5.11},{\"date\":\"2020-01-06\",\"close\":5.16},{\"date\":\"2020-01-07\",\"close\":5.22},{\"date\":\"2020-01-08\",\"close\":5.23},{\"date\":\"2020-01-09\",\"close\":5.32},{\"date\":\"2020-01-10\",\"close\":5.3}]}],\"correlationForecastHorizon\":2}\n\n@endpoint POST /assets/covariance/matrix/forecast/sma\n@desc Simple Moving Average Model (SMA)\n@returns(200) {assetsCovarianceMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":3.08},{\"date\":\"2020-01-02\",\"close\":3.11},{\"date\":\"2020-01-03\",\"close\":3.09},{\"date\":\"2020-01-04\",\"close\":3.1},{\"date\":\"2020-01-05\",\"close\":3.11},{\"date\":\"2020-01-06\",\"close\":3.16},{\"date\":\"2020-01-07\",\"close\":3.22},{\"date\":\"2020-01-08\",\"close\":3.23},{\"date\":\"2020-01-09\",\"close\":3.32},{\"date\":\"2020-01-10\",\"close\":3.3}]},{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":5.08},{\"date\":\"2020-01-02\",\"close\":5.11},{\"date\":\"2020-01-03\",\"close\":5.09},{\"date\":\"2020-01-04\",\"close\":5.1},{\"date\":\"2020-01-05\",\"close\":5.11},{\"date\":\"2020-01-06\",\"close\":5.16},{\"date\":\"2020-01-07\",\"close\":5.22},{\"date\":\"2020-01-08\",\"close\":5.23},{\"date\":\"2020-01-09\",\"close\":5.32},{\"date\":\"2020-01-10\",\"close\":5.3}]}],\"covarianceProxyWindowSize\":2,\"covarianceForecastHorizon\":1}\n\n@endpoint POST /assets/covariance/matrix/forecast/average-oracle\n@desc Average Oracle Method (AO)\n@returns(200) {assetsCovarianceMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":3.08},{\"date\":\"2020-01-02\",\"close\":3.11},{\"date\":\"2020-01-03\",\"close\":3.09},{\"date\":\"2020-01-04\",\"close\":3.1},{\"date\":\"2020-01-05\",\"close\":3.11},{\"date\":\"2020-01-06\",\"close\":3.16},{\"date\":\"2020-01-07\",\"close\":3.22},{\"date\":\"2020-01-08\",\"close\":3.23},{\"date\":\"2020-01-09\",\"close\":3.32},{\"date\":\"2020-01-10\",\"close\":3.3}]},{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":5.08},{\"date\":\"2020-01-02\",\"close\":5.11},{\"date\":\"2020-01-03\",\"close\":5.09},{\"date\":\"2020-01-04\",\"close\":5.1},{\"date\":\"2020-01-05\",\"close\":5.11},{\"date\":\"2020-01-06\",\"close\":5.16},{\"date\":\"2020-01-07\",\"close\":5.22},{\"date\":\"2020-01-08\",\"close\":5.23},{\"date\":\"2020-01-09\",\"close\":5.32},{\"date\":\"2020-01-10\",\"close\":5.3}]}],\"covarianceProxyWindowSize\":5,\"covarianceForecastHorizon\":2}\n\n@endpoint POST /assets/correlation/matrix/forecast/ewma\n@desc Exponentially Weighted Moving Average Model (EWMA)\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":3.08},{\"date\":\"2020-01-02\",\"close\":3.11},{\"date\":\"2020-01-03\",\"close\":3.09},{\"date\":\"2020-01-04\",\"close\":3.1},{\"date\":\"2020-01-05\",\"close\":3.11},{\"date\":\"2020-01-06\",\"close\":3.16},{\"date\":\"2020-01-07\",\"close\":3.22},{\"date\":\"2020-01-08\",\"close\":3.23},{\"date\":\"2020-01-09\",\"close\":3.32},{\"date\":\"2020-01-10\",\"close\":3.3}]},{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":5.08},{\"date\":\"2020-01-02\",\"close\":5.11},{\"date\":\"2020-01-03\",\"close\":5.09},{\"date\":\"2020-01-04\",\"close\":5.1},{\"date\":\"2020-01-05\",\"close\":5.11},{\"date\":\"2020-01-06\",\"close\":5.16},{\"date\":\"2020-01-07\",\"close\":5.22},{\"date\":\"2020-01-08\",\"close\":5.23},{\"date\":\"2020-01-09\",\"close\":5.32},{\"date\":\"2020-01-10\",\"close\":5.3}]}],\"correlationForecastHorizon\":2}\n\n@endpoint POST /assets/correlation/matrix/forecast/sma\n@desc Simple Moving Average Model (SMA)\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":3.08},{\"date\":\"2020-01-02\",\"close\":3.11},{\"date\":\"2020-01-03\",\"close\":3.09},{\"date\":\"2020-01-04\",\"close\":3.1},{\"date\":\"2020-01-05\",\"close\":3.11},{\"date\":\"2020-01-06\",\"close\":3.16},{\"date\":\"2020-01-07\",\"close\":3.22},{\"date\":\"2020-01-08\",\"close\":3.23},{\"date\":\"2020-01-09\",\"close\":3.32},{\"date\":\"2020-01-10\",\"close\":3.3}]},{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":5.08},{\"date\":\"2020-01-02\",\"close\":5.11},{\"date\":\"2020-01-03\",\"close\":5.09},{\"date\":\"2020-01-04\",\"close\":5.1},{\"date\":\"2020-01-05\",\"close\":5.11},{\"date\":\"2020-01-06\",\"close\":5.16},{\"date\":\"2020-01-07\",\"close\":5.22},{\"date\":\"2020-01-08\",\"close\":5.23},{\"date\":\"2020-01-09\",\"close\":5.32},{\"date\":\"2020-01-10\",\"close\":5.3}]}],\"covarianceProxyWindowSize\":2,\"correlationForecastHorizon\":1}\n\n@endpoint POST /assets/correlation/matrix/forecast/average-oracle\n@desc Average Oracle Method (AO)\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":3.08},{\"date\":\"2020-01-02\",\"close\":3.11},{\"date\":\"2020-01-03\",\"close\":3.09},{\"date\":\"2020-01-04\",\"close\":3.1},{\"date\":\"2020-01-05\",\"close\":3.11},{\"date\":\"2020-01-06\",\"close\":3.16},{\"date\":\"2020-01-07\",\"close\":3.22},{\"date\":\"2020-01-08\",\"close\":3.23},{\"date\":\"2020-01-09\",\"close\":3.32},{\"date\":\"2020-01-10\",\"close\":3.3}]},{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":5.08},{\"date\":\"2020-01-02\",\"close\":5.11},{\"date\":\"2020-01-03\",\"close\":5.09},{\"date\":\"2020-01-04\",\"close\":5.1},{\"date\":\"2020-01-05\",\"close\":5.11},{\"date\":\"2020-01-06\",\"close\":5.16},{\"date\":\"2020-01-07\",\"close\":5.22},{\"date\":\"2020-01-08\",\"close\":5.23},{\"date\":\"2020-01-09\",\"close\":5.32},{\"date\":\"2020-01-10\",\"close\":5.3}]}],\"covarianceProxyWindowSize\":5,\"correlationForecastHorizon\":2}\n\n@endpoint POST /assets/covariance/matrix/validation\n@desc Covariance Matrix Validation\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j}\n@returns(200) {message: str} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.00035,-0.00035],[-0.00035,0.00035]]}\n\n@endpoint POST /assets/returns/standard-deviation\n@desc Standard Deviation\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/volatility/estimation/close-to-close\n@desc Close-to-Close Volatility\n@required {assets: [map{assetPrices!: [map], assetReturnsDemeaning: bool}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":3.08},{\"date\":\"2020-01-02\",\"close\":3.11},{\"date\":\"2020-01-03\",\"close\":3.09},{\"date\":\"2020-01-04\",\"close\":3.1},{\"date\":\"2020-01-05\",\"close\":3.11},{\"date\":\"2020-01-06\",\"close\":3.16},{\"date\":\"2020-01-07\",\"close\":3.22},{\"date\":\"2020-01-08\",\"close\":3.23},{\"date\":\"2020-01-09\",\"close\":3.32},{\"date\":\"2020-01-10\",\"close\":3.3}]}]}\n\n@endpoint POST /assets/volatility/estimation/garman-klass\n@desc Garman-Klass Volatility\n@required {assets: [map{assetPrices!: [map]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"open\":3.18,\"high\":3.18,\"low\":3.08,\"close\":3.08},{\"date\":\"2020-01-02\",\"open\":3.09,\"high\":3.15,\"low\":3.09,\"close\":3.11},{\"date\":\"2020-01-03\",\"open\":3.11,\"high\":3.12,\"low\":3.08,\"close\":3.09},{\"date\":\"2020-01-04\",\"open\":3.09,\"high\":3.12,\"low\":3.07,\"close\":3.1},{\"date\":\"2020-01-05\",\"open\":3.1,\"high\":3.12,\"low\":3.08,\"close\":3.11},{\"date\":\"2020-01-06\",\"open\":3.12,\"high\":3.17,\"low\":3.1,\"close\":3.16},{\"date\":\"2020-01-07\",\"open\":3.16,\"high\":3.23,\"low\":3.14,\"close\":3.22},{\"date\":\"2020-01-08\",\"open\":3.23,\"high\":3.29,\"low\":3.2,\"close\":3.23},{\"date\":\"2020-01-09\",\"open\":3.23,\"high\":3.33,\"low\":3.22,\"close\":3.32},{\"date\":\"2020-01-10\",\"open\":3.32,\"high\":3.33,\"low\":3.28,\"close\":3.3}]}]}\n\n@endpoint POST /assets/volatility/estimation/garman-klass/jump-adjusted\n@desc Garman-Klass Volatility (jump-adjusted)\n@required {assets: [map{assetPrices!: [map]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"open\":3.18,\"high\":3.18,\"low\":3.08,\"close\":3.08},{\"date\":\"2020-01-02\",\"open\":3.09,\"high\":3.15,\"low\":3.09,\"close\":3.11},{\"date\":\"2020-01-03\",\"open\":3.11,\"high\":3.12,\"low\":3.08,\"close\":3.09},{\"date\":\"2020-01-04\",\"open\":3.09,\"high\":3.12,\"low\":3.07,\"close\":3.1},{\"date\":\"2020-01-05\",\"open\":3.1,\"high\":3.12,\"low\":3.08,\"close\":3.11},{\"date\":\"2020-01-06\",\"open\":3.12,\"high\":3.17,\"low\":3.1,\"close\":3.16},{\"date\":\"2020-01-07\",\"open\":3.16,\"high\":3.23,\"low\":3.14,\"close\":3.22},{\"date\":\"2020-01-08\",\"open\":3.23,\"high\":3.29,\"low\":3.2,\"close\":3.23},{\"date\":\"2020-01-09\",\"open\":3.23,\"high\":3.33,\"low\":3.22,\"close\":3.32},{\"date\":\"2020-01-10\",\"open\":3.32,\"high\":3.33,\"low\":3.28,\"close\":3.3}]}]}\n\n@endpoint POST /assets/volatility/estimation/garman-klass/original\n@desc Garman-Klass Volatility (original)\n@required {assets: [map{assetPrices!: [map]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"open\":3.18,\"high\":3.18,\"low\":3.08,\"close\":3.08},{\"date\":\"2020-01-02\",\"open\":3.09,\"high\":3.15,\"low\":3.09,\"close\":3.11},{\"date\":\"2020-01-03\",\"open\":3.11,\"high\":3.12,\"low\":3.08,\"close\":3.09},{\"date\":\"2020-01-04\",\"open\":3.09,\"high\":3.12,\"low\":3.07,\"close\":3.1},{\"date\":\"2020-01-05\",\"open\":3.1,\"high\":3.12,\"low\":3.08,\"close\":3.11},{\"date\":\"2020-01-06\",\"open\":3.12,\"high\":3.17,\"low\":3.1,\"close\":3.16},{\"date\":\"2020-01-07\",\"open\":3.16,\"high\":3.23,\"low\":3.14,\"close\":3.22},{\"date\":\"2020-01-08\",\"open\":3.23,\"high\":3.29,\"low\":3.2,\"close\":3.23},{\"date\":\"2020-01-09\",\"open\":3.23,\"high\":3.33,\"low\":3.22,\"close\":3.32},{\"date\":\"2020-01-10\",\"open\":3.32,\"high\":3.33,\"low\":3.28,\"close\":3.3}]}]}\n\n@endpoint POST /assets/volatility/estimation/garman-klass/original/jump-adjusted\n@desc Garman-Klass Volatility (original, jump-adjusted)\n@required {assets: [map{assetPrices!: [map]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"open\":3.18,\"high\":3.18,\"low\":3.08,\"close\":3.08},{\"date\":\"2020-01-02\",\"open\":3.09,\"high\":3.15,\"low\":3.09,\"close\":3.11},{\"date\":\"2020-01-03\",\"open\":3.11,\"high\":3.12,\"low\":3.08,\"close\":3.09},{\"date\":\"2020-01-04\",\"open\":3.09,\"high\":3.12,\"low\":3.07,\"close\":3.1},{\"date\":\"2020-01-05\",\"open\":3.1,\"high\":3.12,\"low\":3.08,\"close\":3.11},{\"date\":\"2020-01-06\",\"open\":3.12,\"high\":3.17,\"low\":3.1,\"close\":3.16},{\"date\":\"2020-01-07\",\"open\":3.16,\"high\":3.23,\"low\":3.14,\"close\":3.22},{\"date\":\"2020-01-08\",\"open\":3.23,\"high\":3.29,\"low\":3.2,\"close\":3.23},{\"date\":\"2020-01-09\",\"open\":3.23,\"high\":3.33,\"low\":3.22,\"close\":3.32},{\"date\":\"2020-01-10\",\"open\":3.32,\"high\":3.33,\"low\":3.28,\"close\":3.3}]}]}\n\n@endpoint POST /assets/volatility/estimation/parkinson\n@desc Parkinson Volatility\n@required {assets: [map{assetPrices!: [map]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"high\":3.18,\"low\":3.08},{\"date\":\"2020-01-02\",\"high\":3.15,\"low\":3.09},{\"date\":\"2020-01-03\",\"high\":3.12,\"low\":3.08},{\"date\":\"2020-01-04\",\"high\":3.12,\"low\":3.07},{\"date\":\"2020-01-05\",\"high\":3.12,\"low\":3.08},{\"date\":\"2020-01-06\",\"high\":3.17,\"low\":3.1},{\"date\":\"2020-01-07\",\"high\":3.23,\"low\":3.14},{\"date\":\"2020-01-08\",\"high\":3.29,\"low\":3.2},{\"date\":\"2020-01-09\",\"high\":3.33,\"low\":3.22},{\"date\":\"2020-01-10\",\"high\":3.33,\"low\":3.28}]}]}\n\n@endpoint POST /assets/volatility/estimation/parkinson/jump-adjusted\n@desc Parkinson Volatility (jump-adjusted)\n@required {assets: [map{assetPrices!: [map]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"open\":3.18,\"high\":3.18,\"low\":3.08,\"close\":3.08},{\"date\":\"2020-01-02\",\"open\":3.09,\"high\":3.15,\"low\":3.09,\"close\":3.11},{\"date\":\"2020-01-03\",\"open\":3.11,\"high\":3.12,\"low\":3.08,\"close\":3.09},{\"date\":\"2020-01-04\",\"open\":3.09,\"high\":3.12,\"low\":3.07,\"close\":3.1},{\"date\":\"2020-01-05\",\"open\":3.1,\"high\":3.12,\"low\":3.08,\"close\":3.11},{\"date\":\"2020-01-06\",\"open\":3.12,\"high\":3.17,\"low\":3.1,\"close\":3.16},{\"date\":\"2020-01-07\",\"open\":3.16,\"high\":3.23,\"low\":3.14,\"close\":3.22},{\"date\":\"2020-01-08\",\"open\":3.23,\"high\":3.29,\"low\":3.2,\"close\":3.23},{\"date\":\"2020-01-09\",\"open\":3.23,\"high\":3.33,\"low\":3.22,\"close\":3.32},{\"date\":\"2020-01-10\",\"open\":3.32,\"high\":3.33,\"low\":3.28,\"close\":3.3}]}]}\n\n@endpoint POST /assets/volatility/estimation/rogers-satchell\n@desc Rogers-Satchell Volatility\n@required {assets: [map{assetPrices!: [map]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"open\":3.18,\"high\":3.18,\"low\":3.08,\"close\":3.08},{\"date\":\"2020-01-02\",\"open\":3.09,\"high\":3.15,\"low\":3.09,\"close\":3.11},{\"date\":\"2020-01-03\",\"open\":3.11,\"high\":3.12,\"low\":3.08,\"close\":3.09},{\"date\":\"2020-01-04\",\"open\":3.09,\"high\":3.12,\"low\":3.07,\"close\":3.1},{\"date\":\"2020-01-05\",\"open\":3.1,\"high\":3.12,\"low\":3.08,\"close\":3.11},{\"date\":\"2020-01-06\",\"open\":3.12,\"high\":3.17,\"low\":3.1,\"close\":3.16},{\"date\":\"2020-01-07\",\"open\":3.16,\"high\":3.23,\"low\":3.14,\"close\":3.22},{\"date\":\"2020-01-08\",\"open\":3.23,\"high\":3.29,\"low\":3.2,\"close\":3.23},{\"date\":\"2020-01-09\",\"open\":3.23,\"high\":3.33,\"low\":3.22,\"close\":3.32},{\"date\":\"2020-01-10\",\"open\":3.32,\"high\":3.33,\"low\":3.28,\"close\":3.3}]}]}\n\n@endpoint POST /assets/volatility/estimation/rogers-satchell/jump-adjusted\n@desc Rogers-Satchell Volatility (jump-adjusted)\n@required {assets: [map{assetPrices!: [map]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"open\":3.18,\"high\":3.18,\"low\":3.08,\"close\":3.08},{\"date\":\"2020-01-02\",\"open\":3.09,\"high\":3.15,\"low\":3.09,\"close\":3.11},{\"date\":\"2020-01-03\",\"open\":3.11,\"high\":3.12,\"low\":3.08,\"close\":3.09},{\"date\":\"2020-01-04\",\"open\":3.09,\"high\":3.12,\"low\":3.07,\"close\":3.1},{\"date\":\"2020-01-05\",\"open\":3.1,\"high\":3.12,\"low\":3.08,\"close\":3.11},{\"date\":\"2020-01-06\",\"open\":3.12,\"high\":3.17,\"low\":3.1,\"close\":3.16},{\"date\":\"2020-01-07\",\"open\":3.16,\"high\":3.23,\"low\":3.14,\"close\":3.22},{\"date\":\"2020-01-08\",\"open\":3.23,\"high\":3.29,\"low\":3.2,\"close\":3.23},{\"date\":\"2020-01-09\",\"open\":3.23,\"high\":3.33,\"low\":3.22,\"close\":3.32},{\"date\":\"2020-01-10\",\"open\":3.32,\"high\":3.33,\"low\":3.28,\"close\":3.3}]}]}\n\n@endpoint POST /assets/volatility/estimation/yang-zhang\n@desc Yang-Zhang Volatility\n@required {assets: [map{assetPrices!: [map]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"open\":3.18,\"high\":3.18,\"low\":3.08,\"close\":3.08},{\"date\":\"2020-01-02\",\"open\":3.09,\"high\":3.15,\"low\":3.09,\"close\":3.11},{\"date\":\"2020-01-03\",\"open\":3.11,\"high\":3.12,\"low\":3.08,\"close\":3.09},{\"date\":\"2020-01-04\",\"open\":3.09,\"high\":3.12,\"low\":3.07,\"close\":3.1},{\"date\":\"2020-01-05\",\"open\":3.1,\"high\":3.12,\"low\":3.08,\"close\":3.11},{\"date\":\"2020-01-06\",\"open\":3.12,\"high\":3.17,\"low\":3.1,\"close\":3.16},{\"date\":\"2020-01-07\",\"open\":3.16,\"high\":3.23,\"low\":3.14,\"close\":3.22},{\"date\":\"2020-01-08\",\"open\":3.23,\"high\":3.29,\"low\":3.2,\"close\":3.23},{\"date\":\"2020-01-09\",\"open\":3.23,\"high\":3.33,\"low\":3.22,\"close\":3.32},{\"date\":\"2020-01-10\",\"open\":3.32,\"high\":3.33,\"low\":3.28,\"close\":3.3}]}]}\n\n@endpoint POST /assets/volatility/forecast/sma\n@desc Simple Moving Average Model (SMA)\n@required {assets: [map{assetPrices: [map], assetVarianceProxies: [any], varianceProxy: str, varianceProxyWindowSize!: int, volatilityForecastHorizon: int}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":3.08},{\"date\":\"2020-01-02\",\"close\":3.11},{\"date\":\"2020-01-03\",\"close\":3.09},{\"date\":\"2020-01-04\",\"close\":3.1},{\"date\":\"2020-01-05\",\"close\":3.11},{\"date\":\"2020-01-06\",\"close\":3.16},{\"date\":\"2020-01-07\",\"close\":3.22},{\"date\":\"2020-01-08\",\"close\":3.23},{\"date\":\"2020-01-09\",\"close\":3.32},{\"date\":\"2020-01-10\",\"close\":3.3}],\"varianceProxyWindowSize\":5,\"volatilityForecastHorizon\":20}]}\n\n@endpoint POST /assets/volatility/forecast/ewma\n@desc Exponentially Weighted Moving Average Model (EWMA)\n@required {assets: [map{assetPrices: [map], assetVarianceProxies: [any], varianceProxy: str, varianceProxyDecayFactor: any, oneOf: any, volatilityForecastHorizon: int}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":3.08},{\"date\":\"2020-01-02\",\"close\":3.11},{\"date\":\"2020-01-03\",\"close\":3.09},{\"date\":\"2020-01-04\",\"close\":3.1},{\"date\":\"2020-01-05\",\"close\":3.11},{\"date\":\"2020-01-06\",\"close\":3.16},{\"date\":\"2020-01-07\",\"close\":3.22},{\"date\":\"2020-01-08\",\"close\":3.23},{\"date\":\"2020-01-09\",\"close\":3.32},{\"date\":\"2020-01-10\",\"close\":3.3}],\"varianceProxyDecayFactor\":0.94,\"volatilityForecastHorizon\":20}]}\n\n@endpoint POST /assets/volatility/forecast/garch\n@desc Generalized AutoRegressive Conditional Heteroscedasticity Model (GARCH(1,1))\n@required {assets: [map{assetPrices: [map], assetVarianceProxies: [any], varianceProxy: str, volatilityForecastHorizon: int}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":3.08},{\"date\":\"2020-01-02\",\"close\":3.11},{\"date\":\"2020-01-03\",\"close\":3.09},{\"date\":\"2020-01-04\",\"close\":3.1},{\"date\":\"2020-01-05\",\"close\":3.11},{\"date\":\"2020-01-06\",\"close\":3.16},{\"date\":\"2020-01-07\",\"close\":3.22},{\"date\":\"2020-01-08\",\"close\":3.23},{\"date\":\"2020-01-09\",\"close\":3.32},{\"date\":\"2020-01-10\",\"close\":3.3}],\"volatilityForecastHorizon\":5}]}\n\n@endpoint POST /assets/volatility/forecast/har\n@desc Heterogeneous AutoRegressive Model (HAR)\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":3.08},{\"date\":\"2020-01-02\",\"close\":3.11},{\"date\":\"2020-01-03\",\"close\":3.09},{\"date\":\"2020-01-04\",\"close\":3.1},{\"date\":\"2020-01-05\",\"close\":3.11},{\"date\":\"2020-01-06\",\"close\":3.16},{\"date\":\"2020-01-07\",\"close\":3.22},{\"date\":\"2020-01-08\",\"close\":3.23},{\"date\":\"2020-01-09\",\"close\":3.32},{\"date\":\"2020-01-10\",\"close\":3.3}],\"volatilityForecastHorizon\":5,\"varianceProxyLogTransformation\":true,\"varianceProxyLags\":[1,5]}]}\n\n@endpoint POST /assets/volatility/forecast/hexp\n@desc Heterogeneous Exponential Model (HExp)\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"close\":3.08},{\"date\":\"2020-01-02\",\"close\":3.11},{\"date\":\"2020-01-03\",\"close\":3.09},{\"date\":\"2020-01-04\",\"close\":3.1},{\"date\":\"2020-01-05\",\"close\":3.11},{\"date\":\"2020-01-06\",\"close\":3.16},{\"date\":\"2020-01-07\",\"close\":3.22},{\"date\":\"2020-01-08\",\"close\":3.23},{\"date\":\"2020-01-09\",\"close\":3.32},{\"date\":\"2020-01-10\",\"close\":3.3}],\"volatilityForecastHorizon\":5,\"varianceProxyLogTransformation\":true,\"varianceProxyCentersOfMass\":[1,5]}]}\n\n@endpoint POST /assets/returns/variance\n@desc Variance\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/returns/skewness\n@desc Skewness\n@required {assets: [map{assetReturns!: [num]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/returns/kurtosis\n@desc Kurtosis\n@required {assets: [map{assetReturns!: [num]}]}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/indicators/effective-rank\n@desc Effective Rank\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j}\n@returns(200) {assetsEffectiveRank: num} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.00035,-0.00035],[-0.00035,0.00035]]}\n\n@endpoint POST /assets/indicators/turbulence-index\n@desc Turbulence Index\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j over an historical reference period, assetsMeanReturns: [num] # assetsMeanReturns[i] is the mean return of asset i over an historical reference period, in percentage, assetsReturns: [num] # assetsReturns[i] is the return of asset i over a period different from the historical reference period in the same frequency as assetsMeanReturns[i], in percentage}\n@returns(200) {assetsTurbulenceIndex: num} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[9,1],[1,1]],\"assetsMeanReturns\":[1,1],\"assetsReturns\":[1,0]}\n\n@endpoint POST /assets/indicators/absorption-ratio\n@desc Absorption Ratio\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j}\n@optional {assetsCovarianceMatrixEigenvectors: map{eigenvectorsRetained: int}}\n@returns(200) {assetsAbsorptionRatio: num} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[9,1],[1,1]]}\n\n@endpoint POST /assets/indicators/momentum/sign\n@desc Sign Momentum\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03],\"signMomentumFormationPeriod\":2},{\"assetReturns\":[0.01,0,0.02],\"signMomentumFormationPeriod\":3}]}\n\n@endpoint POST /assets/indicators/momentum\n@desc Momentum\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03],\"momentumFormationPeriod\":3},{\"assetReturns\":[0.01,0,0.02],\"momentumFormationPeriod\":1}]}\n\n@endpoint POST /assets/indicators/momentum/rank\n@desc Rank Momentum\n@returns(200) {assetsRankMomentum: [num]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,0.01]}],\"rankMomentumFormationPeriod\":1}\n\n@endpoint POST /assets/indicators/information-discreteness\n@desc Information Discreteness\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03],\"informationDiscretenessFormationPeriod\":3},{\"assetReturns\":[0.01,0,0.02],\"informationDiscretenessFormationPeriod\":1}]}\n\n@endpoint POST /assets/indicators/trend-clarity\n@desc Trend Clarity\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03],\"trendClarityFormationPeriod\":3},{\"assetReturns\":[0.01,0,0.02],\"trendClarityFormationPeriod\":1}]}\n\n@endpoint POST /assets/indicators/market-rank\n@desc Market Rank\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j}\n@optional {assetsCovarianceMatrixEigenvectors: map{eigenvectorsRetained: int}}\n@returns(200) {assetsMarketRank: num} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[9,1],[1,1]]}\n\n@endpoint POST /assets/indicators/entropic-connectedness\n@desc Entropic Connectedness\n@required {assets: int, assetsCorrelationMatrix: [[num]] # assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j}\n@optional {assetsEntropicConnectednessOrder: num=2 # The order of the Renyi entropy to use; must be different from 1}\n@returns(200) {assetsEntropicConnectedness: num} # OK\n@example_request {\"assets\":3,\"assetsCorrelationMatrix\":[[1,0.5,0.9],[0.5,1,0.7],[0.9,0.7,1]]}\n\n@endpoint POST /assets/correlation/matrix\n@desc Correlation Matrix\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/correlation/matrix/estimation/spearman\n@desc Spearman Correlation Matrix\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/correlation/matrix/estimation/kendall\n@desc Kendall Correlation Matrix\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/correlation/matrix/estimation/popov\n@desc Popov Correlation Matrix\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[{\"date\":\"2020-01-01\",\"open\":102.69403132,\"high\":103.42677916,\"low\":102.43285186,\"close\":103.18011252},{\"date\":\"2020-01-02\",\"open\":103.22364086,\"high\":103.49933316,\"low\":103.02775391,\"close\":103.12207135},{\"date\":\"2020-01-03\",\"open\":103.21638952,\"high\":103.33246098,\"low\":102.52717003,\"close\":102.74481027}]},{\"assetPrices\":[{\"date\":\"2020-01-01\",\"open\":54.53117847,\"high\":54.71394413,\"low\":54.53117847,\"close\":54.61037692},{\"date\":\"2020-01-02\",\"open\":54.61646911,\"high\":54.63468475,\"low\":54.55554723,\"close\":54.60428473},{\"date\":\"2020-01-03\",\"open\":54.65302224,\"high\":54.94544729,\"low\":54.58600817,\"close\":54.87843321}]}]}\n\n@endpoint POST /assets/correlation/matrix/estimation/gerber\n@desc Gerber Correlation Matrix\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/correlation/matrix/estimation/chatterjee\n@desc Chatterjee Correlation Matrix\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/correlation/matrix/estimation/lancaster\n@desc Lancaster Correlation Matrix\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/correlation/matrix/estimation/fechner\n@desc Fechner Correlation Matrix\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/correlation/matrix/estimation/distance\n@desc Distance Correlation Matrix\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/correlation/matrix/estimation/empirical\n@desc Empirical Correlation Matrix\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}]}\n\n@endpoint POST /assets/correlation/matrix/estimation/empirical/shrunk\n@desc Shrunk Empirical Correlation Matrix\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,-0.03]}],\"shrinkageTarget\":\"constantCorrelation\"}\n\n@endpoint POST /assets/correlation/matrix/estimation/empirical/shrunk/clustering-based\n@desc Clustering-Based Shrunk Empirical Correlation Matrix\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01695979899,0.00264713668,0.0007040394262,0.004221264621]},{\"assetReturns\":[0.02669404517,0.001,0.001248751249,-0.003242703916]},{\"assetReturns\":[0.02566735113,0.006006006006,0.003980099502,-0.008919722498]}],\"assetsGroups\":[[1],[2,3]],\"shrinkageTarget\":\"constantCorrelation\"}\n\n@endpoint POST /assets/correlation/matrix/estimation/empirical/exponentially-weighted\n@desc Exponentially Weighted Empirical Correlation Matrix\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0.01,0.02,0.01]},{\"assetReturns\":[-0.02,-0.02,-0.04,-0.02]}],\"assetsReturnsDecayFactor\":0.5}\n\n@endpoint POST /assets/correlation/matrix/validation\n@desc Correlation Matrix Validation\n@required {assets: int # The number of assets, assetsCorrelationMatrix: [[num]] # assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j}\n@returns(200) {message: str} # OK\n@example_request {\"assets\":2,\"assetsCorrelationMatrix\":[[1,-0.00035],[-0.00035,1]]}\n\n@endpoint POST /assets/correlation/matrix/theory-implied\n@desc Theory-Implied Correlation Matrix\n@required {assets: [map{assetHierarchicalClassification!: [any]}], assetsCorrelationMatrix: [[num]] # assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j}\n@optional {clusteringMethod: str(singleLinkage/averageLinkage/completeLinkage/wardLinkage)=averageLinkage # The hierarchical clustering method to use}\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":[{\"assetHierarchicalClassification\":[35,3510,351010,35101010]},{\"assetHierarchicalClassification\":[20,2030,203020,20302010]}],\"assetsCorrelationMatrix\":[[1,-0.00035],[-0.00035,1]]}\n\n@endpoint POST /assets/correlation/matrix/random\n@desc Random Correlation Matrix\n@required {assets: int # The number of assets}\n@optional {simulations: int=1 # The number of simulations to perform}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":2}\n\n@endpoint POST /assets/correlation/matrix/perturbed\n@desc Perturbed Correlation Matrix\n@required {assets: int # The number of assets}\n@optional {assetsCorrelationMatrix: [[num]] # assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j, noiseLevel: num # The exact level of noise that the coefficients of the asset correlation matrix assetsCorrelationMatrix must be perturbed with; exclusive with maximumNoiseLevel, maximumNoiseLevel: num # The maximum level of noise that the coefficients of the asset correlation matrix assetsCorrelationMatrix must be perturbed with; exclusive with noiseLevel, simulations: int=1 # The number of simulations to perform}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":3,\"assetsCorrelationMatrix\":[[1,0,0],[0,1,0],[0,0,1]]}\n\n@endpoint POST /assets/correlation/matrix/nearest\n@desc Nearest Correlation Matrix\n@required {assets: int # The number of assets, assetsApproximateCorrelationMatrix: [[num]] # assetsApproximateCorrelationMatrix[i][i] is the approximate correlation between the asset i and the asset j}\n@optional {assetsFixedCorrelations: [[int]] # assetsFixedCorrelations[k] is the couple of indices (i,j) of the assets i and j for which to keep the approximate correlation assetsApproximateCorrelationMatrix[i][j] fixed}\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":3,\"assetsApproximateCorrelationMatrix\":[[1,1,0],[1,1,1],[0,1,1]]}\n\n@endpoint POST /assets/correlation/matrix/completed\n@desc Completed Correlation Matrix\n@required {assets: int # The number of assets, assetsIncompleteCorrelationMatrix: [[num]] # assetsIncompleteCorrelationMatrix[i][i] is the correlation between the asset i and the asset j (null to indicate an unspecified correlation)}\n@optional {assetsCorrelationMatrixCompletionMethod: str(maximumDeterminantCompletion/heuristicCompletion) # The asset correlation matrix completion method to use}\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":3,\"assetsIncompleteCorrelationMatrix\":[[1,0.95,0.95],[0.95,1,null],[0.95,null,1]]}\n\n@endpoint POST /assets/covariance/matrix/shrunk\n@desc Shrunk Covariance Matrix\n@required {assets: int, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j, targetCovarianceMatrix: [[num]] # targetCovarianceMatrix[i][j] is the target covariance between the asset i and the asset j, shrinkageFactor: num # The shrinkage factor}\n@returns(200) {assetsCovarianceMatrix: [[num]]} # OK\n@example_request {\"assets\":3,\"assetsCovarianceMatrix\":[[0.05,0.02,0],[0.02,0.07,0.5],[0,0.5,0.1]],\"targetCovarianceMatrix\":[[0.05,0,0],[0,0.02,0],[0,0,0.03]],\"shrinkageFactor\":0.5}\n\n@endpoint POST /assets/correlation/matrix/aggregated\n@desc Aggregated Correlation Matrix\n@required {assets: int, assetsGlobalCorrelationMatrix: [[num]] # assetsGlobalCorrelationMatrix[i][j] is the (global) correlation between the asset i and the asset j, assetsLocalCorrelationMatrices: [map{assetsLocalCorrelationMatrix!: [[num]]}] # assetsLocalCorrelationMatrices[k] contains the (local) correlations between the assets of the k-th diagonal block of the asset correlation matrix assetsGlobalCorrelationMatrix}\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":6,\"assetsGlobalCorrelationMatrix\":[[1,0,0,0.3189,0.4593,0.3272],[0,1,0,0.0958,0.2972,0.0575],[0,0,1,0.3127,0.3845,0.4072],[0.3189,0.0958,0.3127,1,0,0],[0.4593,0.2972,0.3845,0,1,0],[0.3272,0.0575,0.4072,0,0,1]],\"assetsLocalCorrelationMatrices\":[{\"assetsLocalCorrelationMatrix\":[[1,0.9548,0.9521],[0.9548,1,0.8875],[0.9521,0.8875,1]]},{\"assetsLocalCorrelationMatrix\":[[1,0.9446,0.8473],[0.9446,1,0.8235],[0.8473,0.8235,1]]}]}\n\n@endpoint POST /assets/covariance/matrix/aggregated\n@desc Aggregated Covariance Matrix\n@required {assets: int, assetsGlobalCovarianceMatrix: [[num]] # assetsGlobalCovarianceMatrix[i][j] is the (global) covariance between the asset i and the asset j, assetsLocalCovarianceMatrices: [map{assetsLocalCovarianceMatrix!: [[num]]}] # assetsLocalCovarianceMatrices[k] contains the (local) correlations between the assets of the k-th diagonal block of the asset covariance matrix assetsGlobalCovarianceMatrix}\n@returns(200) {assetsCovarianceMatrix: [[num]]} # OK\n@example_request {\"assets\":4,\"assetsGlobalCovarianceMatrix\":[[0.0001185411372307799,0.00005859360165338841,0.00002881702952479082,0.00005891081901532938],[0.00005859360165338841,0.000183567275462732,0.00006508177061247319,0.00009736946242207815],[0.00002881702952479082,0.00006508177061247319,0.0001525718513489824,0.00005905351470443794],[0.00005891081901532938,0.00009736946242207815,0.00005905351470443794,0.0001896025507304725]],\"assetsLocalCovarianceMatrices\":[{\"assetsLocalCovarianceMatrix\":[[0.0000185411372307799,0.00001859360165338841],[0.00001859360165338841,0.000783567275462732]]},{\"assetsLocalCovarianceMatrix\":[[0.0007525718513489824,0.00001905351470443794],[0.00001905351470443794,0.0006896025507304725]]}]}\n\n@endpoint POST /assets/correlation/matrix/shrunk\n@desc Shrunk Correlation Matrix\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":3,\"assetsCorrelationMatrix\":[[1,0.5,0.9],[0.5,1,0.7],[0.9,0.7,1]],\"targetCorrelationMatrix\":\"maximumEquicorrelationMatrix\",\"shrinkageFactor\":0.5}\n\n@endpoint POST /assets/correlation/matrix/shrunk/clustering-based\n@desc Clustering-Based Shrunk Correlation Matrix\n@required {assets: int, assetsCorrelationMatrix: [[num]] # assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j, targetCorrelationMatrix: str # The shrinkage target correlation matrix, shrinkageFactor: num # The shrinkage factor, assetsGroups: [[int]]}\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":4,\"assetsCorrelationMatrix\":[[1,0.5,0.5,0],[0.5,1,0.5,0.3],[0.5,0.5,1,-0.1],[0,0.3,-0.1,1]],\"assetsGroups\":[[1,2],[3],[4]],\"targetCorrelationMatrix\":\"averageBlockEquicorrelationMatrix\",\"shrinkageFactor\":0.5}\n\n@endpoint POST /assets/correlation/matrix/estimation/empirical/filtered/random-matrix-theory-based\n@desc Random Matrix Theory-Based Filtered Empirical Correlation Matrix\n@returns(200) {assetsCorrelationMatrix: [[num]]} # OK\n@example_request {\"assets\":3,\"assetsCorrelationMatrix\":[[1,0.5,0.9],[0.5,1,0.7],[0.9,0.7,1]],\"assetsCorrelationMatrixAspectRatio\":0.5}\n\n@endpoint POST /assets/covariance/matrix/estimation/empirical/filtered/random-matrix-theory-based\n@desc Random Matrix Theory-Based Filtered Empirical Covariance Matrix\n@returns(200) {assetsCovarianceMatrix: [[num]]} # OK\n@example_request {\"assets\":3,\"assetsCovarianceMatrix\":[[0.05,0.02,0],[0.02,0.07,0.5],[0,0.5,0.1]],\"assetsCovarianceMatrixAspectRatio\":0.5}\n\n@endpoint POST /assets/correlation/matrix/distance\n@desc Correlation Matrix Distance\n@required {assets: int, assetsCorrelationMatrix: [[num]] # assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j, referenceCorrelationMatrix: [[num]] # referenceCorrelationMatrix[i][j] is the reference correlation between the asset i and the asset j}\n@optional {distanceMetric: str(euclidean/correlationMatrix/bures)=euclidean # The distance metric to use to compute the distance between the asset correlation matrix and the reference correlation matrix}\n@returns(200) {assetsCorrelationMatrixDistance: num} # OK\n@example_request {\"assets\":3,\"assetsCorrelationMatrix\":[[1,0.5,0.9],[0.5,1,0.7],[0.9,0.7,1]],\"referenceCorrelationMatrix\":[[1,1,1],[1,1,1],[1,1,1]]}\n\n@endpoint POST /assets/correlation/matrix/informativeness\n@desc Correlation Matrix Informativeness\n@required {assets: int, assetsCorrelationMatrix: [[num]] # assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j}\n@optional {distanceMetric: str(euclidean/correlationMatrix/bures)=euclidean # The distance metric to use to compute the informativeness of the asset correlation matrix}\n@returns(200) {assetsCorrelationMatrixInformativeness: num} # OK\n@example_request {\"assets\":3,\"assetsCorrelationMatrix\":[[1,0.5,0.9],[0.5,1,0.7],[0.9,0.7,1]]}\n\n@endpoint POST /assets/correlation/matrix/average-correlation\n@desc Correlation Matrix Average Correlation\n@required {assets: int, assetsCorrelationMatrix: [[num]] # assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j}\n@returns(200) {assetsCorrelationMatrixAverageCorrelation: num} # OK\n@example_request {\"assets\":3,\"assetsCorrelationMatrix\":[[1,0.5,0.9],[0.5,1,0.7],[0.9,0.7,1]]}\n\n@endpoint POST /assets/correlation/matrix/bounds\n@desc Correlation Matrix Bounds\n@required {assets: int, assetsCorrelationMatrix: [[num]] # assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j, assetsGroup: [int] # assetsGroup[k] is the index of the (k+1)-th asset belonging to the selected group of assets}\n@returns(200) {assetsCorrelationMatrixLowerBounds: [[num]], assetsCorrelationMatrixUpperBounds: [[num]]} # OK\n@example_request {\"assets\":4,\"assetsCorrelationMatrix\":[[1,0.5,0.5,0],[0.5,1,0.5,0.3],[0.5,0.5,1,-0.1],[0,0.3,-0.1,1]],\"assetsGroup\":[3,4]}\n\n@endgroup\n\n@group portfolios\n@endpoint POST /portfolios/simulation/random\n@desc Random Portfolio Simulation\n@required {assets: int # The number of assets}\n@optional {simulations: int=1 # The number of simulations to perform, constraints: map{minimumAssets: int, maximumAssets: int, minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":3,\"simulations\":2}\n\n@endpoint POST /portfolios/simulation/evolution\n@desc Portfolio Evolution Simulation\n@required {assets: [map{assetPrices!: [num]}], portfolios: [map{assetsWeights!: [num], portfolioRebalancingMethod: str, portfolioRebalancingThreshold: num, portfolioRebalancingThresholdType: str}]}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[100,105,110]},{\"assetPrices\":[15,12.5,11.25]},{\"assetPrices\":[0.5,0.51,0.49]}],\"portfolios\":[{\"assetsWeights\":[1,0,0]},{\"assetsWeights\":[0,1,0]},{\"assetsWeights\":[0,0,1]}]}\n\n@endpoint POST /portfolios/simulation/evolution/random\n@desc Random Portfolio Evolution Simulation\n@required {assets: [map{assetPrices!: [num]}]}\n@optional {simulations: int=1 # The number of simulations to perform, portfolioRebalancingMethod: str(noRebalancing/continuousRebalancing/randomRebalancing)=noRebalancing # The method used to rebalance the asset weights of the simulated portfolio at each time t, constraints: map{minimumAssets: int, maximumAssets: int, minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {simulations: [map]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[100,95,110]},{\"assetPrices\":[100,105,100]}]}\n\n@endgroup\n\n@group portfolio\n@endpoint POST /portfolio/construction/investable\n@desc Investable Portfolio\n@required {assets: int # The number of assets, portfolioValue: num # The monetary value of the portfolio, assetsPrices: [num] # assetsPrices[i] is the price of the asset i}\n@optional {assetsWeights: [num] # assetsWeights[i] is the desired weight of the asset i in the portfolio, in percentage (can be null to indicate no specific desire), assetsGroups: [[int]], assetsGroupsWeights: [num] # assetsGroupsWeights[i] is the desired weight of the assets group k in the portfolio, in percentage (can be null to indicate no specific desire); requires assetsGroups to be present, maximumAssetsGroupsWeights: [num] # maximumAssetsGroupsWeights[k] is the maximum desired weight of the assets group k in the portfolio, in percentage (can be null to indicate no specific desire); requires assetsGroups to be present, assetsSizeLots: [num] # assetsSizeLots[i] is the number of shares by which it is required to purchase the asset i (usual values are 1 if the asset needs to be purchased share by share, 100 if the asset needs to be purchased by an integer multiple of 100 shares, and 1/1000000 - e.g. for Robinhood broker - if the asset can be purchased by fractional shares), assetsMinimumPositions: [num] # assetsMinimumPositions[i] is the minimum number of shares of the asset i that is required to purchase when the asset i is included in the portfolio (usual values are the same as for assetsSizeLots), assetsMinimumNotionalValues: [num] # assetsMinimumNotionalValues[i] is the minimum monetary value that the position in the asset i is required to represent when the asset i is included in the portfolio}\n@returns(200) {assetsPositions: [num], assetsWeights: [num]} # OK\n@example_request {\"assets\":3,\"assetsPrices\":[10,25,500],\"assetsWeights\":[0.05,0.6,0.35],\"portfolioValue\":10000}\n\n@endgroup\n\n@group portfolios\n@endpoint POST /portfolios/post-optimization/rounding\n@desc Portfolio Weights Rounding\n@required {portfolios: [map{assets!: int, assetsWeights!: [num], constraints: map}]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"assets\":3,\"assetsWeights\":[0.3333333333333333,0,0.6666666666666666]}]}\n\n@endpoint POST /portfolios/replication/index-tracking\n@desc Index Tracking Portfolio\n@required {assets: [map{assetReturns!: [num]}], benchmarkReturns: [num] # benchmarkReturns[t] is the return of the benchmark at the time t; the benchmarkReturns array must have the same length as all the assetReturns arrays}\n@optional {constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0.02,0.03]},{\"assetReturns\":[-0.01,-0.02,-0.03]}],\"benchmarkReturns\":[0,0,0]}\n\n@endpoint POST /portfolios/replication/index-tracking/sparse\n@desc Sparse Index Tracking Portfolio\n@required {assets: [map{assetReturns!: [num]}], benchmarkReturns: [num] # benchmarkReturns[t] is the return of the benchmark at the time t; the benchmarkReturns array must have the same length as all the assetReturns arrays}\n@optional {constraints: map{maximumAssets: int, minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.078129363,0.03663478,0.028787879,0.031491869,-0.019533386,-0.042308288,-0.062133001,-0.103910104,-0.027053038,0.082179315,0.004579357,-0.049970429]},{\"assetReturns\":[0.05289784,0.065017266,0.028012939,-0.019089773,0.025592817,-0.03893898,0.026564726,-0.07927768,-0.033253707,0.090633334,0.04075,-0.044859476]},{\"assetReturns\":[0.055323183,0.065000264,0.027985908,-0.019018198,0.025635979,-0.038860104,0.026504942,-0.079552638,-0.033599239,0.090526431,0.041004562,-0.044589974]},{\"assetReturns\":[0.078085397,0.036893028,0.02912706,0.031861707,-0.019134434,-0.041778299,-0.0617737,-0.103650587,-0.026909091,0.082105488,0.005130735,-0.049278492]}],\"benchmarkReturns\":[0.055518502,0.062009871,0.028003081,-0.013945023,0.020509392,-0.03935567,0.017029792,-0.081809115,-0.032750097,0.089738414,0.037148934,-0.045498531],\"constraints\":{\"maximumAssets\":2}}\n\n@endpoint POST /portfolios/analysis/factors/exposures\n@desc Factor Exposures\n@returns(200) OK\n@example_request {\"factors\":[{\"factorReturns\":[-0.00414169934,0.01201656108,0.0087181369]},{\"factorReturns\":[-0.01387258782,-0.01097961581,0.01742002062]}],\"portfolios\":[{\"portfolioReturns\":[-0.04302,0.01310372213,0.06482589323]}]}\n\n@endpoint POST /portfolios/analysis/effective-number-of-bets\n@desc Effective Number of Bets\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j, portfolios: [map{assetsWeights!: [num]}]}\n@optional {factorsComputationMethod: str(principalComponentAnalysis/exactMinimumLinearTorsion/approximateMinimumLinearTorsion)=exactMinimumLinearTorsion # The method used to compute the uncorrelated risk factors from the asset covariance matrix}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":3,\"assetsCovarianceMatrix\":[[1,0,0],[0,286.31,100.79],[0,100.79,601.36]],\"portfolios\":[{\"assetsWeights\":[10.96,1.06,0.22]}]}\n\n@endpoint POST /portfolios/analysis/effective-number-of-assets\n@desc Effective Number of Assets\n@required {portfolios: [map{assets!: int, assetsWeights!: [num]}]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"assets\":3,\"assetsWeights\":[1,0,0]}]}\n\n@endpoint POST /portfolios/analysis/alpha\n@desc Jensen's Alpha\n@required {benchmarkReturns: [num] # benchmarkReturns[t] is the return of the benchmark at the time t; the benchmarkReturns array must have the same length as all the portfolioReturns arrays, portfolios: [map{portfolioReturns: [num], portfolioValues: [num]}]}\n@optional {riskFreeReturn: num=0 # The constant risk-free arithmetic return over the considered time period, in percentage; exclusive with riskFreeReturns, riskFreeReturns: [num] # riskFreeReturns[t] is the risk-free arithmetic return at the time t; the riskFreeReturns array must have the same length as all the portfolioReturns arrays or the same length minus 1 as all the portfolioValues arrays; exclusive with riskFreeReturn}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"benchmarkReturns\":[0.002,0.025,0.018,-0.011,0.014],\"riskFreeReturn\":0.01,\"portfolios\":[{\"portfolioReturns\":[0.003,0.026,0.011,-0.01,0.015]}]}\n\n@endpoint POST /portfolios/analysis/beta\n@desc Beta\n@required {benchmarkReturns: [num] # benchmarkReturns[t] is the return of the benchmark at the time t; the benchmarkReturns array must have the same length as all the portfolioReturns arrays, portfolios: [map{portfolioReturns: [num], portfolioValues: [num]}]}\n@optional {riskFreeReturn: num=0 # The constant risk-free arithmetic return over the considered time period, in percentage; exclusive with riskFreeReturns, riskFreeReturns: [num] # riskFreeReturns[t] is the risk-free arithmetic return at the time t; the riskFreeReturns array must have the same length as all the portfolioReturns arrays or the same length minus 1 as all the portfolioValues arrays; exclusive with riskFreeReturn}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"benchmarkReturns\":[0.002,0.025,0.018,-0.011,0.014],\"riskFreeReturn\":0.01,\"portfolios\":[{\"portfolioReturns\":[0.003,0.026,0.011,-0.01,0.015]}]}\n\n@endpoint POST /portfolios/analysis/tracking-error-variance\n@desc Tracking Error Variance\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"benchmarkReturns\":[0.002,0.025,0.018,-0.011,0.014,0.018,0.014,0.065,-0.015,0.042,-0.006,0.083,0.039,-0.038,-0.062,0.015,-0.048,0.021,0.06,0.056,-0.067,0.019,-0.003,0],\"portfolios\":[{\"portfolioReturns\":[0.003,0.026,0.011,-0.01,0.015,0.025,0.016,0.067,-0.014,0.04,-0.005,0.081,0.04,-0.037,-0.061,0.017,-0.049,-0.022,0.07,0.058,-0.065,0.024,-0.005,-0.009]}]}\n\n@endpoint POST /portfolios/analysis/empirical-tracking-error\n@desc Empirical Tracking Error\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"benchmarkReturns\":[0.002,0.025,0.018,-0.011,0.014,0.018,0.014,0.065,-0.015,0.042,-0.006,0.083,0.039,-0.038,-0.062,0.015,-0.048,0.021,0.06,0.056,-0.067,0.019,-0.003,0],\"portfolios\":[{\"portfolioReturns\":[0.003,0.026,0.011,-0.01,0.015,0.025,0.016,0.067,-0.014,0.04,-0.005,0.081,0.04,-0.037,-0.061,0.017,-0.049,-0.022,0.07,0.058,-0.065,0.024,-0.005,-0.009]}]}\n\n@endpoint POST /portfolios/analysis/drawdowns\n@desc Drawdown Function\n@required {portfolios: [map{portfolioReturns: [num], portfolioValues: [num]}]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/drawdowns/worst\n@desc Worst Drawdowns\n@required {portfolios: [map{portfolioReturns: [num], portfolioValues: [num], portfolioWorstDrawdowns: int}]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70],\"portfolioWorstDrawdowns\":2}]}\n\n@endpoint POST /portfolios/analysis/mean-variance/efficient-frontier\n@desc Mean-Variance Efficient Frontier\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns}\n@optional {portfolios: int=25 # The number of portfolios to compute on the mean-variance efficient frontier, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":2,\"assetsMeanReturns\":[0.01,0.05],\"assetsCovarianceMatrix\":[[0.0025,0.0005],[0.0005,0.01]],\"portfolios\":3,\"constraints\":{\"minimumAssetsWeights\":[0.2,0]}}\n\n@endpoint POST /portfolios/analysis/mean-variance/efficient-frontier/resampling-based\n@desc Resampling-Based Mean-Variance Efficient Frontier\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns}\n@optional {simulatedEfficientFrontiers: int=128 # The number of efficient frontiers to simulate, simulatedEfficientFrontiersAggregationMethod: str(average/median)=average # The method to aggregate the simulated efficient frontiers, simulatedEfficientFrontiersDiscretizationMethod: str(rankAssociation/lambdaAssociation)=lambdaAssociation # The method to discretize the simulated efficient frontiers, assetsReturnsUncertaintyIntervals: [[num]], assetsStandardDeviationsUncertaintyIntervals: [[num]], assetsCorrelationMatrixUncertaintyLevel: num # The uncertainty level on the coefficients of the asset correlation matrix associated to assetsCovarianceMatrix; defaults to 0.10, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":3,\"assetsMeanReturns\":[0.01,0.02,0.03],\"assetsReturnsUncertaintyIntervals\":[[0.009,0.011],[0.02,0.02],[0.027,0.033]],\"assetsCovarianceMatrix\":[[1,0.3,-0.2],[0.3,1,0.2],[-0.2,0.2,1]],\"assetsCorrelationMatrixUncertaintyLevel\":0.25,\"portfolios\":3}\n\n@endpoint POST /portfolios/analysis/mean-variance/minimum-variance-frontier\n@desc Mean-Variance Minimum Variance Frontier\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns}\n@optional {portfolios: int=25 # The number of portfolios to compute on the mean-variance minimum variance frontier, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":2,\"assetsMeanReturns\":[0.01,0.05],\"assetsCovarianceMatrix\":[[0.0025,0.0005],[0.0005,0.01]],\"portfolios\":4,\"constraints\":{\"minimumAssetsWeights\":[0.2,0]}}\n\n@endpoint POST /portfolios/analysis/returns/semivariance\n@desc Semivariance\n@required {portfolios: [map{portfolioReturns: [num], portfolioValues!: [num]}]}\n@optional {minimalAcceptableReturn: num # The constant minimal acceptable return over the considered time period; exclusive with minimalAcceptableReturns, minimalAcceptableReturns: [num] # minimalAcceptableReturns[t] is the minimal acceptable return at the time t; the minimalAcceptableReturns array must have the same length as all the portfolioReturns arrays or the same length minus 1 as all the portfolioValues arrays; exclusive with minimalAcceptableReturn}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/returns/semideviation\n@desc Semideviation\n@required {portfolios: [map{portfolioReturns: [num], portfolioValues!: [num]}]}\n@optional {minimalAcceptableReturn: num # The constant minimal acceptable return over the considered time period; exclusive with minimalAcceptableReturns, minimalAcceptableReturns: [num] # minimalAcceptableReturns[t] is the minimal acceptable return at the time t; the minimalAcceptableReturns array must have the same length as all the portfolioReturns arrays or the same length minus 1 as all the portfolioValues arrays; exclusive with minimalAcceptableReturn}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/returns/lower-partial-moment\n@desc Lower Partial Moment\n@required {lowerPartialMomentOrder: num # The order of the lower partial moment, portfolios: [map{portfolioReturns: [num], portfolioValues!: [num]}]}\n@optional {minimalAcceptableReturn: num # The constant minimal acceptable return over the considered time period; exclusive with minimalAcceptableReturns, minimalAcceptableReturns: [num] # minimalAcceptableReturns[t] is the minimal acceptable return at the time t; the minimalAcceptableReturns array must have the same length as all the portfolioReturns arrays or the same length minus 1 as all the portfolioValues arrays; exclusive with minimalAcceptableReturn}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"lowerPartialMomentOrder\":2,\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/drawdowns/ulcer-index\n@desc Ulcer Index\n@required {portfolios: [map{portfolioReturns: [num], portfolioValues: [num]}]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/drawdowns/pitfall-indicator\n@desc Pitfall Indicator\n@required {portfolios: [map{portfolioReturns: [num], portfolioValues: [num]}]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/drawdowns/conditional/empirical\n@desc Empirical Conditional Drawdown\n@required {portfolios: [map{portfolioReturns: [num], portfolioValues: [num]}]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/drawdowns/maximum\n@desc Maximum Drawdown\n@required {portfolios: [map{portfolioReturns: [num], portfolioValues: [num]}]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/drawdowns/average\n@desc Average Drawdown\n@required {portfolios: [map{portfolioReturns: [num], portfolioValues: [num]}]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/drawdowns/pain-index\n@desc Pain Index\n@required {portfolios: [map{portfolioReturns: [num], portfolioValues!: [num]}]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/drawdowns/ulcer-performance-index\n@desc Ulcer Performance Index\n@required {portfolios: [map{portfolioReturns: [num], portfolioValues: [num]}]}\n@optional {riskFreeReturn: num=0 # The constant risk-free arithmetic return over the considered time period, in percentage; exclusive with benchmarkReturns, benchmarkReturns: [num] # benchmarkReturns[t] is the arithmetic return of the benchmark at the time t; the benchmarkReturns array must have the same length as all the portfolioReturns arrays or the same length minus 1 as all the portfolioValues arrays; exclusive with riskFreeReturn}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/returns\n@desc Arithmetic Returns\n@required {portfolios: [map{portfolioValues!: [num]}]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/returns/logarithmic\n@desc Logarithmic Returns\n@required {portfolios: [map{portfolioValues!: [num]}]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/returns/mean\n@desc Mean Return\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":2,\"assetsMeanReturns\":[0.01,0.05],\"portfolios\":[{\"assetsWeights\":[1,0]},{\"assetsWeights\":[0,1]}]}\n\n@endpoint POST /portfolios/analysis/return\n@desc Simple Return\n@required {portfolios: [map{portfolioValues!: [any]}]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/return/time-weighted\n@desc Time-Weighted Return\n@required {portfolios: [map{portfolioValues!: [map], portfolioContributions: [map], portfolioWithdrawals: [map]}]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[{\"date\":\"2010-01-01\",\"portfolioValue\":100},{\"date\":\"2010-04-01\",\"portfolioValue\":110},{\"date\":\"2010-07-01\",\"portfolioValue\":105},{\"date\":\"2010-08-01\",\"portfolioValue\":130},{\"date\":\"2011-01-01\",\"portfolioValue\":100}],\"portfolioContributions\":[{\"date\":\"2010-04-01\",\"contributionAmount\":100},{\"date\":\"2010-07-01\",\"contributionAmount\":100}],\"portfolioWithdrawals\":[{\"date\":\"2010-08-01\",\"withdrawalAmount\":50}]}]}\n\n@endpoint POST /portfolios/analysis/return/money-weighted\n@desc Money-Weighted Return\n@required {portfolios: [map{portfolioValues!: [map], portfolioContributions: [map], portfolioWithdrawals: [map]}]}\n@optional {moneyWeightedReturnComputationMethod: str(irr/modifiedDietz)=irr # The method to compute the portfolios money-weighted return}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[{\"date\":\"2010-01-01\",\"portfolioValue\":100},{\"date\":\"2010-04-01\",\"portfolioValue\":110},{\"date\":\"2010-07-01\",\"portfolioValue\":105},{\"date\":\"2010-08-01\",\"portfolioValue\":130},{\"date\":\"2011-01-01\",\"portfolioValue\":100}],\"portfolioContributions\":[{\"date\":\"2010-04-01\",\"contributionAmount\":100},{\"date\":\"2010-07-01\",\"contributionAmount\":100}],\"portfolioWithdrawals\":[{\"date\":\"2010-08-01\",\"withdrawalAmount\":50}]}]}\n\n@endpoint POST /portfolios/transformation/time-weighted\n@desc Time-Weighted Portfolio\n@required {portfolios: [map{portfolioValues!: [map], portfolioContributions: [map], portfolioWithdrawals: [map]}]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[{\"date\":\"2010-01-01\",\"portfolioValue\":100},{\"date\":\"2010-04-01\",\"portfolioValue\":110},{\"date\":\"2010-07-01\",\"portfolioValue\":105},{\"date\":\"2010-08-01\",\"portfolioValue\":130},{\"date\":\"2011-01-01\",\"portfolioValue\":100}],\"portfolioContributions\":[{\"date\":\"2010-04-01\",\"contributionAmount\":100},{\"date\":\"2010-07-01\",\"contributionAmount\":100}],\"portfolioWithdrawals\":[{\"date\":\"2010-08-01\",\"withdrawalAmount\":50}]}]}\n\n@endpoint POST /portfolios/transformation/money-weighted\n@desc Money-Weighted Portfolio\n@required {portfolios: [map{portfolioValues!: [map], portfolioContributions: [map], portfolioWithdrawals: [map]}]}\n@optional {moneyWeightedReturnComputationMethod: str(irr/modifiedDietz)=irr # The method to compute the portfolios money-weighted return}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[{\"date\":\"2010-01-01\",\"portfolioValue\":100},{\"date\":\"2010-04-01\",\"portfolioValue\":110},{\"date\":\"2010-07-01\",\"portfolioValue\":105},{\"date\":\"2010-08-01\",\"portfolioValue\":130},{\"date\":\"2011-01-01\",\"portfolioValue\":100}],\"portfolioContributions\":[{\"date\":\"2010-04-01\",\"contributionAmount\":100},{\"date\":\"2010-07-01\",\"contributionAmount\":100}],\"portfolioWithdrawals\":[{\"date\":\"2010-08-01\",\"withdrawalAmount\":50}]}]}\n\n@endpoint POST /portfolios/analysis/returns/standard-deviation\n@desc Standard Deviation (Volatility)\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.0025,0.0005],[0.0005,0.01]],\"portfolios\":[{\"assetsWeights\":[1,0]},{\"assetsWeights\":[0,1]}]}\n\n@endpoint POST /portfolios/analysis/returns/variance\n@desc Variance\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.0025,0.0005],[0.0005,0.01]],\"portfolios\":[{\"assetsWeights\":[1,0]},{\"assetsWeights\":[0,1]}]}\n\n@endpoint POST /portfolios/analysis/mean-variance/sharpe-ratio\n@desc Sharpe Ratio\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":2,\"assetsReturns\":[0.01,0.05],\"assetsCovarianceMatrix\":[[0.0025,0.0005],[0.0005,0.01]],\"portfolios\":[{\"assetsWeights\":[1,0]},{\"assetsWeights\":[0,1]}]}\n\n@endpoint POST /portfolios/analysis/mean-variance/information-ratio\n@desc Information Ratio\n@required {benchmarkReturns: [num] # benchmarkReturns[t] is the arithmetic return of the benchmark at the time t; the benchmarkReturns array must have the same length as all the portfolioReturns arrays or the same length minus 1 as all the portfolioValues arrays, portfolios: [map{portfolioReturns: [num], portfolioValues: [num]}]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"benchmarkReturns\":[100,95,102,105,106,104],\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/mean-variance/sharpe-ratio/confidence-interval\n@desc Sharpe Ratio Confidence Interval\n@required {portfolios: [map{portfolioValues!: [num]}]}\n@optional {riskFreeReturn: num=0 # The constant risk-free arithmetic return over the considered time period, in percentage, confidenceIntervalType: str(twoSided/lowerOneSided/upperOneSided)=twoSided # The type of confidence interval to build, confidenceLevel: num=0.95 # The confidence level of the confidence interval to build, in percentage}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"confidenceLevel\":0.99,\"confidenceIntervalType\":\"twoSided\",\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/mean-variance/sharpe-ratio/probabilistic\n@desc Probabilistic Sharpe Ratio\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"benchmarkSharpeRatio\":0,\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/diversification-ratio\n@desc Diversification Ratio\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.0025,0.0005],[0.0005,0.01]],\"portfolios\":[{\"assetsWeights\":[0.5,0.5]}]}\n\n@endpoint POST /portfolios/analysis/correlation-spectrum\n@desc Correlation Spectrum\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.0025,0.0005],[0.0005,0.01]],\"portfolios\":[{\"assetsWeights\":[0.5,0.5]}]}\n\n@endpoint POST /portfolios/analysis/contributions/return\n@desc Return Contributions\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, portfolios: [map{assetsWeights!: [num]}]}\n@optional {assetsGroups: [[int]]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":3,\"assetsMeanReturns\":[0.01,-0.01,0.025],\"assetsGroups\":[[1],[2,3]],\"portfolios\":[{\"assetsWeights\":[0.5,0.25,0.25]}]}\n\n@endpoint POST /portfolios/analysis/contributions/risk\n@desc Risk Contributions\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j, portfolios: [map{assetsWeights!: [num]}]}\n@optional {assetsGroups: [[int]]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":3,\"assetsCovarianceMatrix\":[[0.0001,0,0],[0,0.0001,0],[0,0,0.04]],\"portfolios\":[{\"assetsWeights\":[0.5,0.25,0.25]}]}\n\n@endpoint POST /portfolios/analysis/contributions/value-at-risk/empirical/multivariate\n@desc Multivariate Empirical Value at Risk Contributions\n@required {assets: [any], portfolios: [map{assetsWeights!: [num]}]}\n@optional {confidenceLevel: num=0.95 # The confidence level, empiricalQuantileEstimationMethod: str(linearInterpolationQuantileEstimation/harrellDavisQuantileEstimation)=linearInterpolationQuantileEstimation # The empirical quantile estimation method to use, assetsGroups: [[int]]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,0.02]}],\"portfolios\":[{\"assetsWeights\":[0.5,0.5]}]}\n\n@endpoint POST /portfolios/analysis/contributions/value-at-risk/parametric/gaussian/multivariate\n@desc Multivariate Gaussian Value at Risk Contributions\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,0.02]}],\"portfolios\":[{\"assetsWeights\":[0.5,0.5]}]}\n\n@endpoint POST /portfolios/analysis/contributions/value-at-risk/parametric/gaussian/mixture/multivariate\n@desc Multivariate Gaussian Mixture Value at Risk Contributions\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03,0.015]},{\"assetReturns\":[0.01,0,0.02,0.02,0.015]}],\"portfolios\":[{\"assetsWeights\":[0.5,0.5]}]}\n\n@endpoint POST /portfolios/analysis/contributions/diversification-ratio\n@desc Diversification Ratio Contributions\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j, portfolios: [map{assetsWeights!: [num]}]}\n@optional {assetsGroups: [[int]]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":3,\"assetsCovarianceMatrix\":[[0.0001,0,0],[0,0.0001,0],[0,0,0.04]],\"portfolios\":[{\"assetsWeights\":[0.5,0.25,0.25]}]}\n\n@endpoint POST /portfolios/analysis/contributions/sharpe-ratio\n@desc Sharpe Ratio Contributions\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j, portfolios: [map{assetsWeights!: [num]}]}\n@optional {riskFreeReturn: num=0 # The constant risk-free arithmetic return over the considered time period, in percentage, assetsGroups: [[int]]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":3,\"assetsMeanReturns\":[0.01,-0.01,0.025],\"assetsCovarianceMatrix\":[[0.0001,0,0],[0,0.0001,0],[0,0,0.04]],\"portfolios\":[{\"assetsWeights\":[0.5,0.25,0.25]}]}\n\n@endpoint POST /portfolios/optimization/equal-weighted\n@desc Equal Weighted Portfolio\n@required {assets: int # The number of assets}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2}\n\n@endpoint POST /portfolios/optimization/inverse-variance-weighted\n@desc Inverse Variance Weighted Portfolio\n@required {assets: int # The number of assets, assetsVariances: [num] # assetsVariances[i] is the variance of the asset i}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsVariances\":[1,0.5]}\n\n@endpoint POST /portfolios/optimization/inverse-volatility-weighted\n@desc Inverse Volatility Weighted Portfolio\n@required {assets: int # The number of assets, assetsVolatilities: [num] # assetsVolatilities[i] is the volatility of the asset i}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsVolatilities\":[0.05,0.1]}\n\n@endpoint POST /portfolios/optimization/equal-volatility-weighted\n@desc Equal Volatility Weighted Portfolio\n@required {assets: int # The number of assets, assetsVolatilities: [num] # assetsVolatilities[i] is the volatility of the asset i}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsVolatilities\":[0.05,0.1]}\n\n@endpoint POST /portfolios/optimization/equal-risk-contributions\n@desc Equal Risk Contributions Portfolio\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j}\n@optional {constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num]}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.0025,0.0005],[0.0005,0.01]],\"constraints\":{\"maximumAssetsWeights\":[0.4,1]}}\n\n@endpoint POST /portfolios/optimization/equal-risk-contributions/clustering-based\n@desc Clustering-based Equal Risk Contributions Portfolio\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j, assetsGroups: [[int]]}\n@optional {constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num]}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":3,\"assetsCovarianceMatrix\":[[0.05,0.02,0],[0.02,0.07,0.5],[0,0.5,0.1]],\"assetsGroups\":[[1,2],[3]]}\n\n@endpoint POST /portfolios/optimization/supervised/nearest-neighbors-based\n@desc k-Nearest Neighbors Supervised Portfolio\n@required {assets: int # The number of assets, assetsTrainingSample: [map{assetsFeatures!: [num], assetsWeights!: [num]}] # assetsTrainingSample[i] is the i-th training data point for the k-nearest neighbors regression algorithm, assetsInferenceSample: [map{assetsFeatures!: [num]}] # assetsInferenceSample[i] is the i-th inference data point for the k-nearest neighbors regression algorithm}\n@optional {nearestNeighborsForecastMethod: str(kMean/kStar/kEnsemble)=kStar # The forecast method used to determine the label of an inference point, nearestNeighbors: int=1 # The number of nearest neighbors used to determine the label of an inference point when nearestNeighborsForecastMethod is equal to 'kMean', nearestNeighborsDistanceMetric: str(euclidean/hassanat)=hassanat # The distance metric used to compute the nearest neighbors of an inference point}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":2,\"assetsTrainingSample\":[{\"assetsFeatures\":[0.29,0.62,0.000012038196929181625,0.0000696814929855677,0.00001559563475910431],\"assetsWeights\":[0,0]},{\"assetsFeatures\":[-0.46,0.45,0.000010888657978348465,0.00006302859758217985,0.000013796702980234435],\"assetsWeights\":[0,0.9180311027016663]},{\"assetsFeatures\":[0.29,0.62,0.000009870728035855486,0.000056657515212347,0.000012695407664899547],\"assetsWeights\":[0,0.7845192140292089]}],\"assetsInferenceSample\":[{\"assetsFeatures\":[0.29,0.62,0.000041282848226584026,0.000042737618434521984,0.000017469438409288166]}],\"nearestNeighborsForecastMethod\":\"kEnsemble\"}\n\n@endpoint POST /portfolios/optimization/risk-budgeting\n@desc Risk Budgeting Portfolio\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j, assetsRiskBudgets: [num] # assetsRiskBudgets[i] is the risk budget allocated to the asset i, in percentage; the sum of all the assetsRiskBudgets must be equal to 1}\n@optional {constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num]}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.0025,0.0005],[0.0005,0.01]],\"assetsRiskBudgets\":[0.4,0.6]}\n\n@endpoint POST /portfolios/optimization/maximum-decorrelation\n@desc Maximum Decorrelation Portfolio\n@required {assets: int # The number of assets, assetsCorrelationMatrix: [[num]] # assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j}\n@optional {constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":3,\"assetsCorrelationMatrix\":[[1,0.9,0.85],[0.9,1,0.7],[0.85,0.7,1]]}\n\n@endpoint POST /portfolios/optimization/minimum-correlation\n@desc Minimum Correlation Portfolio\n@required {assets: int, assetsCorrelationMatrix: [[num]] # assetsCorrelationMatrix[i][j] is the correlation between the asset i and the asset j, assetsVolatilities: [num] # assetsVolatilities[i] is the volatility of the asset i}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":3,\"assetsCorrelationMatrix\":[[1,0.9,0.85],[0.9,1,0.7],[0.85,0.7,1]],\"assetsVolatilities\":[0.14,0.18,0.22]}\n\n@endpoint POST /portfolios/optimization/most-diversified\n@desc Most Diversified Portfolio\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j}\n@optional {constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.04,0.01],[0.01,0.01]]}\n\n@endpoint POST /portfolios/optimization/minimum-variance\n@desc Minimum Variance Portfolio\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns}\n@optional {assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.0025,0.0005],[0.0005,0.01]],\"constraints\":{\"maximumAssetsWeights\":[0.4,1],\"minimumPortfolioExposure\":0.25,\"maximumPortfolioExposure\":0.5}}\n\n@endpoint POST /portfolios/optimization/minimum-variance/diversified\n@desc Diversified Minimum Variance Portfolio\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns}\n@optional {assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, portfolioMeanReturnTolerance: num=0.1 # The relative tolerance over the minimum variance portfolio mean return, if applicable, portfolioVolatilityTolerance: num=0.1 # The relative tolerance over the minimum variance portfolio volatility, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.0025,0.0005],[0.0005,0.01]],\"constraints\":{\"maximumAssetsWeights\":[0.4,1],\"minimumPortfolioExposure\":0.5,\"maximumPortfolioExposure\":0.5}}\n\n@endpoint POST /portfolios/optimization/minimum-variance/resampling-based\n@desc Resampling-Based Minimum Variance Portfolio\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns}\n@optional {assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, simulatedPortfolios: int=128 # The number of portfolios to simulate, simulatedPortfoliosAggregationMethod: str(average/median)=average # The method to aggregate the simulated portfolios, assetsMeanReturnsUncertaintyIntervals: [[num]], assetsStandardDeviationsUncertaintyIntervals: [[num]], assetsCorrelationMatrixUncertaintyLevel: num # The uncertainty level on the coefficients of the asset correlation matrix associated to assetsCovarianceMatrix; defaults to 0.10, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.0025,0.0005],[0.0005,0.01]],\"assetsCorrelationMatrixUncertaintyLevel\":0.25}\n\n@endpoint POST /portfolios/optimization/minimum-variance/subset-resampling-based\n@desc Subset Resampling-Based Minimum Variance Portfolio\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns}\n@optional {assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, subsetSize: int # 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, simulatedPortfolios: int=128 # The number of simulated portfolios to compute; only applicable if the generation method for the subset portfolios is random sampling, simulatedPortfoliosGenerationMethod: str(complete/random)=random # The method to generate the simulated portfolios, simulatedPortfoliosAggregationMethod: str(average/median)=average # The method to aggregate the simulated portfolios, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.0025,0.0005],[0.0005,0.01]],\"simulatedPortfolios\":1,\"constraints\":{\"maximumAssetsWeights\":[0.4,1],\"minimumPortfolioExposure\":0.5,\"maximumPortfolioExposure\":0.5}}\n\n@endpoint POST /portfolios/optimization/hierarchical-risk-parity\n@desc Hierarchical Risk Parity Portfolio\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j}\n@optional {clusteringMethod: str(singleLinkage/averageLinkage/completeLinkage/wardLinkage)=singleLinkage # The hierarchical clustering method to use, clusteringOrdering: str(r-hclust/optimal)=r-hclust # The order to impose on the hierarchical clustering tree leaves, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.0025,0.0005],[0.0005,0.01]],\"constraints\":{\"maximumAssetsWeights\":[0.4,1],\"minimumPortfolioExposure\":0.5,\"maximumPortfolioExposure\":0.5}}\n\n@endpoint POST /portfolios/optimization/hierarchical-risk-parity/clustering-based\n@desc Hierarchical Clustering-Based Risk Parity Portfolio\n@required {assets: int # The number of assets, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j}\n@optional {clusteringMethod: str(singleLinkage/averageLinkage/completeLinkage/wardLinkage)=wardLinkage # The hierarchical clustering method to use, clusteringOrdering: str(r-hclust/optimal)=r-hclust # The order to impose on the hierarchical clustering tree leaves, clusters: int # The number of clusters to use in the hierarchical clustering tree; if not provided, the number of clusters to use is computed using the gap statistic method, as described in the first reference, acrossClusterAllocationMethod: str(equalWeighting/inverseVolatility/inverseVariance)=equalWeighting # The allocation method to use across clusters, withinClusterAllocationMethod: str(equalWeighting/inverseVolatility/inverseVariance)=equalWeighting # The allocation method to use within clusters, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.0025,0.0005],[0.0005,0.01]],\"constraints\":{\"maximumAssetsWeights\":[0.4,1],\"minimumPortfolioExposure\":0.5,\"maximumPortfolioExposure\":0.5}}\n\n@endpoint POST /portfolios/optimization/maximum-return\n@desc Maximum Return Portfolio\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i}\n@optional {assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsMeanReturns\":[0.02,0.01],\"constraints\":{\"maximumAssetsWeights\":[0.4,1]}}\n\n@endpoint POST /portfolios/optimization/maximum-return/diversified\n@desc Diversified Maximum Return Portfolio\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i}\n@optional {assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns, portfolioMeanReturnTolerance: num=0.1 # The relative tolerance over the maximum return portfolio mean return, if applicable, portfolioVolatilityTolerance: num=0.1 # The relative tolerance over the maximum return portfolio volatility, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsMeanReturns\":[0.02,0.01],\"constraints\":{\"maximumAssetsWeights\":[0.4,1]}}\n\n@endpoint POST /portfolios/optimization/maximum-return/resampling-based\n@desc Resampling-Based Maximum Return Portfolio\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i}\n@optional {assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns, simulatedPortfolios: int=128 # The number of portfolios to simulate, simulatedPortfoliosAggregationMethod: str(average/median)=average # The method to aggregate the simulated portfolios, assetsMeanReturnsUncertaintyIntervals: [[num]], assetsStandardDeviationsUncertaintyIntervals: [[num]], assetsCorrelationMatrixUncertaintyLevel: num # The uncertainty level on the coefficients of the asset correlation matrix associated to assetsCovarianceMatrix, if applicable; defaults to 0, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":3,\"assetsMeanReturns\":[0.01,0.02,0.03],\"assetsMeanReturnsUncertaintyIntervals\":[[0.009,0.011],[0.02,0.02],[0.027,0.033]]}\n\n@endpoint POST /portfolios/optimization/maximum-return/subset-resampling-based\n@desc Subset Resampling-Based Maximum Return Portfolio\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i}\n@optional {assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns, subsetSize: int # 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, simulatedPortfolios: int=128 # The number of simulated portfolios to compute; only applicable if the generation method for the subset portfolios is random sampling, simulatedPortfoliosGenerationMethod: str(complete/random)=random # The method to generate the simulated portfolios, simulatedPortfoliosAggregationMethod: str(average/median)=average # The method to aggregate the simulated portfolios, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":3,\"assetsMeanReturns\":[0.01,0.02,0.03],\"simulatedPortfoliosGenerationMethod\":\"complete\"}\n\n@endpoint POST /portfolios/optimization/maximum-sharpe-ratio\n@desc Maximum Sharpe Ratio Portfolio\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns}\n@optional {riskFreeReturn: num=0 # The constant risk-free arithmetic return over the considered time period, in percentage, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsMeanReturns\":[0.05,0.1],\"assetsCovarianceMatrix\":[[0.05,0.02],[0.02,0.07]]}\n\n@endpoint POST /portfolios/optimization/maximum-sharpe-ratio/diversified\n@desc Diversified Maximum Sharpe Ratio Portfolio\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns}\n@optional {riskFreeReturn: num=0 # The constant risk-free arithmetic return over the considered time period, in percentage, portfolioMeanReturnTolerance: num=0.1 # The relative tolerance over the maximum Sharpe Ratio portfolio return, if applicable, portfolioVolatilityTolerance: num=0.1 # The relative tolerance over the maximum Sharpe Ratio portfolio volatility, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsMeanReturns\":[0.05,0.1],\"assetsCovarianceMatrix\":[[0.05,0.02],[0.02,0.07]]}\n\n@endpoint POST /portfolios/optimization/maximum-sharpe-ratio/resampling-based\n@desc Resampling-Based Maximum Sharpe Ratio Portfolio\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns}\n@optional {riskFreeReturn: num=0 # The constant risk-free arithmetic return over the considered time period, in percentage, simulatedPortfolios: int=128 # The number of portfolios to simulate, simulatedPortfoliosAggregationMethod: str(average/median)=average # The method to aggregate the simulated portfolios, assetsMeanReturnsUncertaintyIntervals: [[num]], assetsStandardDeviationsUncertaintyIntervals: [[num]], assetsCorrelationMatrixUncertaintyLevel: num # The uncertainty level on the coefficients of the asset correlation matrix associated to assetsCovarianceMatrix; defaults to 0.10, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":3,\"assetsMeanReturns\":[0.01,0.02,0.03],\"assetsMeanReturnsUncertaintyIntervals\":[[0.009,0.011],[0.02,0.02],[0.027,0.033]],\"assetsCovarianceMatrix\":[[0.0146,0.0187,0.0145],[0.0187,0.0854,0.0104],[0.0145,0.0104,0.0289]]}\n\n@endpoint POST /portfolios/optimization/maximum-sharpe-ratio/subset-resampling-based\n@desc Subset Resampling-Based Maximum Sharpe Ratio Portfolio\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns}\n@optional {riskFreeReturn: num=0 # The constant risk-free arithmetic return over the considered time period, in percentage, subsetSize: int # 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, simulatedPortfolios: int=128 # The number of simulated portfolios to compute; only applicable if the generation method for the subset portfolios is random sampling, simulatedPortfoliosGenerationMethod: str(complete/random)=random # The method to generate the simulated portfolios, simulatedPortfoliosAggregationMethod: str(average/median)=average # The method to aggregate the simulated portfolios, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":3,\"assetsMeanReturns\":[0.05,0.1,0.025],\"assetsCovarianceMatrix\":[[0.0146,0.0187,0.0145],[0.0187,0.0854,0.0104],[0.0145,0.0104,0.0289]]}\n\n@endpoint POST /portfolios/optimization/mean-variance-efficient\n@desc Mean-Variance Efficient Portfolio\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns, constraints: map{portfolioMeanReturn: num, portfolioVolatility: num, maximumPortfolioVolatility: num, riskTolerance: num, minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsMeanReturns\":[0.1,0.2],\"assetsCovarianceMatrix\":[[1,0.3],[0.3,1]],\"constraints\":{\"portfolioMeanReturn\":0.15}}\n\n@endpoint POST /portfolios/optimization/mean-variance-efficient/diversified\n@desc Diversified Mean-Variance Efficient Portfolio\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns, constraints: map{portfolioMeanReturn: num, portfolioVolatility: num, riskTolerance: num, minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@optional {portfolioMeanReturnTolerance: num=0.1 # The relative tolerance over the mean-variance efficient portfolio return, if applicable, portfolioVolatilityTolerance: num=0.1 # The relative tolerance over the mean-variance efficient portfolio volatility}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsMeanReturns\":[0.1,0.2],\"assetsCovarianceMatrix\":[[1,0.3],[0.3,1]],\"portfolioMeanReturnTolerance\":0.05,\"portfolioVolatilityTolerance\":0.05,\"constraints\":{\"portfolioMeanReturn\":0.175}}\n\n@endpoint POST /portfolios/optimization/mean-variance-efficient/resampling-based\n@desc Resampling-Based Mean-Variance Efficient Portfolio\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns}\n@optional {simulatedPortfolios: int=128 # The number of portfolios to simulate, simulatedPortfoliosAggregationMethod: str(average/median)=average # The method to aggregate the simulated portfolios, assetsMeanReturnsUncertaintyIntervals: [[num]], assetsStandardDeviationsUncertaintyIntervals: [[num]], assetsCorrelationMatrixUncertaintyLevel: num # The uncertainty level on the coefficients of the asset correlation matrix associated to assetsCovarianceMatrix; defaults to 0.10, constraints: map{portfolioMeanReturn: num, portfolioVolatility: num, maximumPortfolioVolatility: num, riskTolerance: num, minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":3,\"assetsMeanReturns\":[0.1,0.2,0.15],\"assetsCovarianceMatrix\":[[1,0.3,-0.2],[0.3,1,0.2],[-0.2,0.2,1]],\"assetsMeanReturnsUncertaintyIntervals\":[[0.09,0.11],[0.2,0.2],[0.15,0.15]],\"assetsStandardDeviationsUncertaintyIntervals\":[[0.5,1.5],[0.5,1.5],[0.5,1.5]],\"constraints\":{\"portfolioMeanReturn\":0.15}}\n\n@endpoint POST /portfolios/optimization/mean-variance-efficient/subset-resampling-based\n@desc Subset Resampling-Based Mean-Variance Efficient Portfolio\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j arithmetic returns, constraints: map{portfolioMeanReturn: num, portfolioVolatility: num, riskTolerance: num, minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@optional {subsetSize: int # 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, simulatedPortfolios: int=128 # The number of simulated portfolios to compute; only applicable if the generation method for the subset portfolios is random sampling, simulatedPortfoliosGenerationMethod: str(complete/random)=random # The method to generate the simulated portfolios, simulatedPortfoliosAggregationMethod: str(average/median)=average # The method to aggregate the simulated portfolios}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":3,\"assetsMeanReturns\":[0.1,0.2,0.3],\"assetsCovarianceMatrix\":[[1,0,0],[0,1,0],[0,0,1]],\"constraints\":{\"riskTolerance\":2}}\n\n@endpoint POST /portfolios/optimization/equal-sharpe-ratio-contributions\n@desc Equal Sharpe Ratio Contributions Portfolio\n@required {assets: int # The number of assets, assetsMeanReturns: [num] # assetsMeanReturns[i] is the arithmetic (expected) return of asset i, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j}\n@optional {riskFreeReturn: num=0 # The constant risk-free arithmetic return over the considered time period, in percentage}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsMeanReturns\":[0.05,0.1],\"assetsCovarianceMatrix\":[[0.05,0.02],[0.02,0.07]]}\n\n@endpoint POST /portfolios/optimization/market-capitalization-weighted\n@desc Market Capitalization Weighted Portfolio\n@required {assets: int # The number of assets, assetsMarketCapitalizations: [num] # assetsMarketCapitalizations[i] is the market capitalization of the asset i}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":2,\"assetsMarketCapitalizations\":[1,2]}\n\n@endpoint POST /portfolios/optimization/maximum-ulcer-performance-index\n@desc Maximum Ulcer Performance Index Portfolio\n@required {assets: [map{assetPrices!: [num]}]}\n@optional {riskFreeReturn: num=0 # The constant risk-free arithmetic return over the considered time period, in percentage, constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[100,95,110]},{\"assetPrices\":[100,105,100]}]}\n\n@endpoint POST /portfolios/optimization/minimum-ulcer-index\n@desc Minimum Ulcer Index Portfolio\n@required {assets: [map{assetPrices!: [num]}]}\n@optional {constraints: map{minimumAssetsWeights: [num], maximumAssetsWeights: [num], assetsGroups: [[int]], assetsGroupsMatrix: [[num]], maximumAssetsGroupsWeights: [num], minimumPortfolioExposure: num, maximumPortfolioExposure: num}}\n@returns(200) {assetsWeights: [num]} # OK\n@example_request {\"assets\":[{\"assetPrices\":[100,95,110]},{\"assetPrices\":[100,105,100]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/estimation/empirical\n@desc Empirical Value At Risk\n@required {portfolios: [map{portfolioValues!: [num]}]}\n@optional {confidenceLevel: num=0.95 # The confidence level, empiricalQuantileEstimationMethod: str(linearInterpolationQuantileEstimation/hutsonQuantileEstimation/harrellDavisQuantileEstimation)=linearInterpolationQuantileEstimation # The empirical quantile estimation method to use}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/estimation/empirical/multivariate\n@desc Multivariate Empirical Value At Risk\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,0.02]}],\"portfolios\":[{\"assetsWeights\":[1,0]},{\"assetsWeights\":[0,1]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/estimation/extreme-value-theory-based\n@desc Extreme Value Theory-Based Value At Risk\n@required {portfolios: [map{portfolioValues!: [num]}]}\n@optional {confidenceLevel: num=0.95 # The confidence level, evtQuantileEstimationMethod: str(gpdQuantileEstimation/weissmanHeavyTailedQuantileEstimation)=gpdQuantileEstimation # The extreme value theory-based quantile estimation method to use}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/estimation/parametric/gaussian\n@desc Gaussian Value At Risk\n@required {portfolios: [any]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/estimation/parametric/gaussian/multivariate\n@desc Multivariate Gaussian Value At Risk\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02,0.02]}],\"portfolios\":[{\"assetsWeights\":[0.5,0.5]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/estimation/parametric/student\n@desc Student-t Value At Risk\n@required {portfolios: [any]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/estimation/parametric/cornish-fisher\n@desc Cornish-Fisher Value At Risk\n@required {portfolios: [any]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/estimation/parametric/cornish-fisher/corrected\n@desc Corrected Cornish-Fisher Value At Risk\n@required {portfolios: [any]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/estimation/parametric/gaussian/mixture\n@desc Gaussian Mixture Value At Risk\n@required {portfolios: [any]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/estimation/parametric/gaussian/mixture/multivariate\n@desc Multivariate Gaussian Mixture Value At Risk\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03,0.015]},{\"assetReturns\":[0.01,0,0.02,0.02,0.001]}],\"portfolios\":[{\"assetsWeights\":[0.5,0.5]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/forecast/arma-garch\n@desc Generalized AutoRegressive Conditional Heteroscedasticity (GARCH(1,1)) Value At Risk\n@required {portfolios: [map{portfolioValues!: [num], portfolioReturnsConditionalMeanModel: str, portfolioReturnsStandardizedResidualsDistribution: str}]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/forecast/arma-ewma\n@desc Exponentially Weighted Moving Average (EWMA) Value At Risk\n@required {portfolios: [map{portfolioValues!: [num], portfolioReturnsConditionalMeanModel: str, portfolioReturnsStandardizedResidualsDistribution: str}]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/conditional/forecast/arma-garch\n@desc Generalized AutoRegressive Conditional Heteroscedasticity (GARCH(1,1)) Conditional Value At Risk\n@required {portfolios: [map{portfolioValues!: [num], portfolioReturnsConditionalMeanModel: str, portfolioReturnsStandardizedResidualsDistribution: str}]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/conditional/forecast/arma-ewma\n@desc Exponentially Weighted Moving Average (EWMA) Conditional Value At Risk\n@required {portfolios: [map{portfolioValues!: [num], portfolioReturnsConditionalMeanModel: str, portfolioReturnsStandardizedResidualsDistribution: str}]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/conditional/estimation/empirical\n@desc Empirical Conditional Value At Risk\n@required {portfolios: [map{portfolioValues!: [num]}]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/conditional/estimation/parametric/gaussian\n@desc Gaussian Conditional Value At Risk\n@required {portfolios: [map{portfolioValues!: [num]}]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/conditional/estimation/parametric/student\n@desc Student-t Conditional Value At Risk\n@required {portfolios: [map{portfolioValues!: [num]}]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/conditional/estimation/parametric/cornish-fisher\n@desc Cornish-Fisher Conditional Value At Risk\n@required {portfolios: [map{portfolioValues!: [num]}]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/conditional/estimation/parametric/cornish-fisher/corrected\n@desc Corrected Cornish-Fisher Conditional Value At Risk\n@required {portfolios: [map{portfolioValues!: [num]}]}\n@optional {confidenceLevel: num=0.95 # The confidence level}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endpoint POST /portfolios/analysis/value-at-risk/conditional/estimation/parametric/gaussian/mixture\n@desc Gaussian Mixture Conditional Value At Risk\n@required {portfolios: [map{portfolioValues!: [num], confidenceLevel: num}]}\n@returns(200) {portfolios: [map]} # OK\n@example_request {\"portfolios\":[{\"portfolioValues\":[100,95,100,90,85,70]}]}\n\n@endgroup\n\n@group assets\n@endpoint POST /assets/returns/transformation/moment-matched\n@desc Moment-matched Returns\n@required {assets: [map{assetReturns!: [num]}]}\n@optional {targetMeans: [num] # targetMeans[i] is the target mean return of the asset i, targetCovarianceMatrix: [[num]] # targetCovarianceMatrix[i][j] is the target covariance between the asset i and the asset j}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]}],\"targetMeans\":[0],\"targetCovarianceMatrix\":[[0.1]]}\n\n@endpoint POST /assets/returns/transformation/unsmoothed\n@desc Unsmoothed Returns\n@required {assets: [map{assetReturns!: [num]}]}\n@optional {unsmoothingMethod: str(geltner/okunevWhite)=geltner # The unsmoothing method to use, unsmoothingMethodOrder: int=1 # The order of autocorrelation to be removed from the asset returns; if unsmoothingMethod is equal to \"geltner\", the maximum allowed value is 1}\n@returns(200) {assets: [map]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.001,0.00205121,0.00315633,0.00677923,0.01868891,0.01389516]}]}\n\n@endpoint POST /assets/returns/expected/estimation/empirical\n@desc Empirical Expected Returns\n@returns(200) {assetsMeanReturns: [num]} # OK\n@example_request {\"assets\":[{\"assetReturns\":[0.01,0,0.02,-0.03]},{\"assetReturns\":[0.01,0,0.02]}]}\n\n@endpoint POST /assets/returns/expected/estimation/implied\n@desc Implied Expected Returns\n@required {assets: int # The number of assets in the portfolio, assetsCovarianceMatrix: [[num]] # assetsCovarianceMatrix[i][j] is the covariance between the asset i and the asset j, assetsWeights: [num] # assetsWeights[i] is the weight of the asset i in the portfolio, in percentage, constraints: map{riskTolerance: num, portfolioMeanReturn: num, portfolioSharpeRatio: num, assetsExpectedReturns: [num], portfolioHistoricalReturns: [num], riskFreeHistoricalReturns: [num], riskFreeHistoricalReturn: num}}\n@optional {riskFreeReturn: num=0 # The constant risk-free arithmetic return over the considered time period, in percentage}\n@returns(200) {assetsMeanReturns: [num]} # OK\n@example_request {\"assets\":2,\"assetsCovarianceMatrix\":[[0.0225,0.0012],[0.0012,0.0016]],\"assetsWeights\":[0.1139,0.8861],\"constraints\":{\"riskTolerance\":9.65}}\n\n@endpoint POST /assets/returns/expected/estimation/ordering-information-based\n@desc Expected Returns from Ordering Information\n@required {assets: int # The number of assets, assetsOrderingBeliefsMatrix: [[num]] # assetsOrderingBeliefsMatrix[i] is the i-th belief vector on assets' expected returns}\n@optional {assetsExpectedReturnsScalingFactor: num=1 # The typical scale of asset expected returns magnitude, in percent (e.g. 0.05 if asset expected returns are yearly asset returns with a typical magnitude of 5% per year)}\n@returns(200) {assetsMeanReturns: [num]} # OK\n@example_request {\"assets\":3,\"assetsOrderingBeliefsMatrix\":[[1,-1,0],[0,1,-1]]}\n\n@endgroup\n\n@end\n"}}