---
title: "Residual Momentum"
method: POST
path: "/assets/indicators/momentum/residual"
tags: ["Assets / Indicators"]
---

# Residual Momentum

`POST /assets/indicators/momentum/residual`

Compute the residual momentum of an asset. 

References
* [Blitz, David, Huij, Joop, Martens, Martin, Residual Momentum, Journal of Empirical Finance (2011)](https://www.sciencedirect.com/science/article/abs/pii/S0927539811000041)
* [David Blitz, Matthias X. Hanauer, Milan Vidojevic, The idiosyncratic momentum anomaly, International Review of Economics & Finance, Volume 69, 2020,Pages 932-957](https://doi.org/10.1016/j.iref.2020.05.008)
* [Denis B. Chaves, Idiosyncratic Momentum: U.S. and International Evidence, The Journal of Investing  Summer 2016, 25 (2) 64-76](https://www.pm-research.com/content/iijinvest/25/2/64)

## Request body

- object
  - `assets` object[], required
    - `assetReturns` number[], required — assetReturns[t] is the arithmetic return of the asset at the time t; all the assetReturns arrays must have the same length, equal to that of all the factorReturns array
    - `assetResidualMomentumSkipPeriod` integer — The number of the most recent periods excluded from the asset residual momentum computation; must be < assetResidualMomentumFormationPeriod
    - `assetResidualMomentumFormationPeriod` integer, required — The look back period over which to compute the asset residual momentum
    - `assetReturnsResidualizationMethod` 'ordinaryLeastSquares' | 'robustLeastSquares' — The method to use to residualize the asset returns
    - `assetReturnsResidualizationWindowSize` integer — The size of the look back period over which to residualize the assert returns; defaults to assetResidualMomentumFormationPeriod; must be >= assetResidualMomentumFormationPeriod
    - `assetReturnsResidualizationInterceptHandlingMethod` 'zeroIntercept' | 'additiveIntercept' | 'substractiveIntercept' — The method to use to handle the intercept when residualizing the asset returns
  - `factors` object[], required
    - `factorReturns` number[], required — factorReturns[t] is the return of the factor at the time t; all the factorReturns arrays must have the same length, equal to that of all the assetReturns array
  - `riskFreeReturn` number — The constant risk-free arithmetic return over the considered time period, in percentage; exclusive with riskFreeReturns
  - `riskFreeReturns` number[] — riskFreeReturns[t] is the risk-free arithmetic return at the time t; the riskFreeReturns array must have the same length, equal to that of all the factorReturns and assetReturns array; exclusive with riskFreeReturn

## Response `200`

OK

- object
  - `assets` object[], required
    - `assetResidualMomentum` number, required — The asset residual momentum

---

[API](https://skmtc.net/portfoliooptimizer/apis/portfolio-optimizer.md) · [All operations](https://skmtc.net/portfoliooptimizer/apis/portfolio-optimizer/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/portfoliooptimizer/portfolio-optimizer/revisions/efac1128c762/schema)
