Risk Band Creation

This API produces efficient portfolios (portfolios that lie on the efficient frontier) based on daily funds' prices inputted by the user, and groups these portfolio into different clusters by hierarchical clustering. This API then calculates the Maximum, Median and Minimum Returns and Risks (standard deviations of returns) of each cluster. These clusters can also be seen as Model Portfolios for different risk profiles the user wish to create for their clients. Following are the adjustable constraints on the efficient portfolios generated:

  1. Maximum and minimum weight on each fund in the portfolio

  2. Computing speed - the lower the computing speed, the higher the number of efficient portfolios produced (higher accuracy of information in clusters)

  3. Classification - to incorporate Core-Satellite Investing by classifying funds into “UC“ (Ultra Core), “C“ (Core), “S1“ (Satellite 1) or “S2“ (Satellite 2). Higher weights will be allocated to “UC“ funds, followed by “C“, “S1“ and “S2“.

  4. Risk bucket - to classify funds as either “Safe“ or “Risky“. Weights allocated to “Risky“ funds are lower than weights on “Safe“ funds

User can also override expected returns and expected variances based on their company’s in-house estimation while using this API.

Request Body

NameDatatypeDescriptionMandatorySample valuesList of possible valuesNo. of decimal placesNotes
nClustersIntegerNumber of risk profiles or number of clustersY5>= 1,<=100
minWeightNumberMinimum weight on each fundY0>=0, <=14
maxWeightNumberMaximum weight on each fundY1>=0, <=14maxWeight > minWeight
computingSpeedIntegerDetermines the number of iterations, 1 is the most intensive.Y5>=1, <=100Use lower computing speed to generate higher accuracy (more efficient portfolios) of efficient plot.
priceRecordsArrayRecord of daily funds' pricesY
divAdjCloseFloatDaily dividend adjusted prices of fundsY37.062
symbolStringSymbols of fundsY“QQQ”NA
dateStringDate of price dataY"2008-08-22"NA
productDictionaryArray of DictionariesContains additional constraints on weights of funds and information to be overridden.Y when either “override“, “useRiskBuckets“, “useClassifications“ is true
ClassificationStringClassification of the fund in core-satellite investing.Y when “useClassifications“: true"UC"“UC“, “C“, “S1“, “S2“NAHigher weights are allocated to “UC“ (ultra-core) funds, followed by “C“ (core), “S1“ (satellite 1) and “S2“ (satellite 2) funds.
riskBucketStringClassification of the fund’s riskiness.Y when “useRiskBuckets“: true"Safe"“Safe“, “Risky“NAWeights of “Risky“ funds are ensured to be lower than weights of “Safe“ funds
expectedReturnFloatExpected returns of the fund to be used instead of calculating based on “priceRecords”Y when “override“: true0.01>=0, <=1not limited
expectedStdDevFloatExpected variances of the fund to be used instead of calculating based on “priceRecords”Y when “override“: true0.01>=0, <=1not limited
overrideBooleanTo use expectedReturn and expectedStdDev of funds in “productDictionary“ rather than calculate from “priceRecords”Yfalsetrue, falseNA
useRiskBucketsBooleanTo add constraints on weights of funds based on funds' riskinessYfalsetrue, falseNA
useClassificationBooleanTo add constraints on weights of funds based their classifications in core-satellite investingYfalsetrue, falseNA

Response Body

NameDatatypeDescriptionSample valueNo. of decimalsNotes
clusteredEfficientFrontierArray of dictionariesContains annualized returns and standard deviations pair of efficient portfolios in each cluster to plot the clustered efficient frontier plot
returnFloatAnnualized returns for each efficient portfolio0.02944
stdDevFloatAnnualized standard deviations for each efficient portfolio0.02614
clusterLabelIntegerThe cluster that the efficient portfolio belongs to10
clusterSummaryArray of dictionaries
clusterLabelIntegerEfficient portfolios clusters10
maxReturnFloatMaximum annualized return for the cluster0.04734
maxStdDevFloatMaximum annualized standard deviation of returns for the cluster0.04764
medianReturnFloatMedian annualized return for the cluster0.03834
medianStdDevFloatMedian annualized standard deviation of returns for the cluster0.03434
minReturnFloatMinimum annualized return for the cluster0.04734
minStdDevFloatMinimum annualized standard deviation of returns for the cluster0.04734
Click Try It! to start a request and see the response here!