All Collections
Reference
Methodology
Implied Expected Returns
Implied Expected Returns

Implied Expected Returns can be generated for any portfolio given the composition of securities and their weights.

Edgar Nuñez avatar
Written by Edgar Nuñez
Updated over a week ago

Intro

In his 1974 article “Imputing Expected Security Returns From Portfolio Composition”, William Sharpe (inventor of the Sharpe Ratio) describes a forecasting method that can construct expected returns from the composition of any portfolio. Using this method, Omega Point generates a forecast for every position in a portfolio by calculating a position's risk relative to its % equity.

This forecast is commonly used as a “hurdle rate” which describes the expected return required to hold a position at its current weight given its risk. Omega Point makes the forecast available through the API using the query.model.portfolio.forecast.impliedReturns & the query.model.simulation.forecast.impliedReturns node.

Query

query(
    $modelId: String!
    $portfolioId: String!
    $onDate: Date!
    $horizon: Int! #number of trading days
){
    model(id: $modelId){
        portfolio(id: $portfolioId){
        forecast(on: $onDate horizon: $horizon){
          impliedReturns(riskFactors:MARKET){
            horizon
            total
            equities{
              id {
                ticker
                mic
                sedol
                modelProviderId
              }
              expectedPercentReturn
            }
          }
        }
      }      
    }
}

This query returns a forecast for the time period defined by $horizon, for all the securities in your portfolio, as well as the portfolio's expected return. Here is a sample forecast for a portfolio with only two securities (AAPL & MSFT):

{
  "data": {
    "model": {
      "portfolio": {
        "forecast": {
          "impliedReturns": {
            "horizon": 10,
            "total": 1.1982142572179923,
            "equities": [
              {
                "id": {
                  "ticker": "AAPL",
                  "mic": "XNAS"
                },
                "expectedPercentReturn": 0.8387499800525946
              },
              {
                "id": {
                  "ticker": "MSFT",
                  "mic": "XNAS"
                },
                "expectedPercentReturn": 0.3594642771653977
              }
            ]
          }
        }
      }
    }
  }
}

In this case, the forecasted 10-day return for AAPL and MSFT are 0.839% and 0.359%, respectively.  And the portfolio's total expected return is 1.198%.

Implied Returns for Optimization

The calculated implied returns for the portfolio are used with the Omega Point Optimizer as forecasts to create an efficient frontier. Using the objective minimizeTotalRisk: true  produces the minimum (risk,return) value, while using the objective targetTotalRisk: 10000 * will produce the highest (risk,return) value on the frontier.

*Or some arbitrary large number to represent infinity, since if the provided target risk is above the risk of the maximum return portfolio, then the maximum return portfolio is returned.

Market Factor and Implied Returns

While using the implied returns from the portfolio as alpha in the optimizer seems to suggest that this portfolio is already optimal, when calculating implied alphas, we assume the portfolio was optimized using a risk model that only had the market factor, and all other volatility is treated as idiosyncratic volatility. This way, when using the optimizer, the portfolio is re-optimized with the full factor model.

This is denoted in the API as 

impliedReturns(riskFactors:MARKET)

Calculation per security

The Implied Return for each security is given the weight of the security in the portfolio. Using weight as a proxy for conviction, the forecast is calculated for each security in the following manner:

implied_return = (1 / std) * ( sec_risk^2 * sec_weight )

where a security's risk is calculated as:
risk = std(sec_return over last 252 days) * sqrt(252)

and where std and returns are derived as
std = sqrt(variance) ==>
  variance = sum( (sec_risk * sec_weight)^2 ) #summing over all securities

sec_return = sec_1DayReturn - mean(all_1DayReturns)
where the mean is over all securities in the portfolio on the same day and where the return is for each security in the portfolio.

Did this answer your question?