---
title: "Volatility-adjusted Momentum"
method: POST
path: "/assets/indicators/momentum/volatility-adjusted"
tags: ["Assets / Indicators"]
---

# Volatility-adjusted Momentum

`POST /assets/indicators/momentum/volatility-adjusted`

## Request

- Base URL: `https://api.portfoliooptimizer.io/v1`
- URL: `https://api.portfoliooptimizer.io/v1/assets/indicators/momentum/volatility-adjusted`
- Auth: API key in header `X-API-Key`

Compute the volatility-adjusted momentum of an asset.

References
* [Shaik, R. (2011). Risk-adjusted momentum: A superior approach to momentum investing. White Paper. Bridgeway Capital Management](http://www.dorseywright.com/downloads/hrs_research/Momentum%20White%20Paper%202011%20Fall.pdf)
* [Adam Zaremba, Mehmet Umutlu & Alina Maydybura (2018): Less pain, more gain: Volatility-adjusted residual momentum in international equity markets, Investment Analysts Journal](https://doi.org/10.1080/10293523.2018.1469290)

## Request body

- union
  - object
    - `assets` object[], required
      - `assetReturns` number[], required: assetReturns[t] is the logarithmic return of the asset at the time t
      - `assetMomentumSkipPeriod` integer: The number of the most recent periods excluded from the asset volatility-adjusted momentum computation; must be < assetMomentumFormationPeriod
      - `assetMomentumFormationPeriod` integer, required: The look back period over which to compute the asset volatility-adjusted momentum
      - `assetVolatilityEstimationSkipPeriod` integer: The number of the most recent periods excluded from the asset volatility estimation; must be < assetVolatilityEstimationWindowSize - 1; defaults to assetMomentumSkipPeriod
      - `assetVolatilityEstimationWindowSize` integer: The look back period over which to estimate the asset volatility; defaults to assetMomentumFormationPeriod
  - object
    - `assets` object[], required
      - `assetPrices` object[], required: assetPrices[t] contains price information for the asset at the date t
        - `date` string, required: The date corresponding to the date t in format YYYY-MM-DD; all dates must be distinct
        - `close` number, required: The close price of the asset at the date t
      - `assetMomentumSkipPeriod` integer: The number of the most recent periods excluded from the asset volatility-adjusted momentum computation; must be < assetMomentumFormationPeriod
      - `assetMomentumFormationPeriod` integer, required: The look back period over which to compute the asset volatility-adjusted momentum
      - `assetVolatilityEstimationSkipPeriod` integer: The number of the most recent periods excluded from the asset volatility estimation; must be < assetVolatilityEstimationWindowSize - 1; defaults to assetMomentumSkipPeriod
      - `assetVolatilityEstimationWindowSize` integer: The look back period over which to estimate the asset volatility; defaults to assetMomentumFormationPeriod

## Response `200`

OK

- object
  - `assets` object[], required
    - `assetVolatilityAdjustedMomentum` number, required: The asset volatility-adjusted momentum

## Changes

- **2026-08-10** `d016f340e91c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/portfoliooptimizer/apis/portfolio-optimizer/changes/assets/indicators/momentum/volatility-adjusted/post.md)

---

[API](https://skmtc.dev/portfoliooptimizer/apis/portfolio-optimizer.md) - [All operations](https://skmtc.dev/portfoliooptimizer/apis/portfolio-optimizer/llms.txt) - [OpenAPI document](https://skmtc.dev/portfoliooptimizer/apis/portfolio-optimizer/revisions/9d075aa717bf?raw)
