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

# Rank Momentum

`POST /assets/indicators/momentum/rank`

## Request

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

Compute the rank momentum of a universe of assets.

References
* [Chen, Tsung-Yu, Chou, Pin-Huang Ko, Kuan-Cheng, Rhee, S. Ghon, Rank, Sign, and Momentum, 14th Conference on Asia-Pacific Financial Markets](https://apjfs.org/file/download/6571?view=1)

## Request body

- union
  - object
    - `assets` object[], required
      - `assetReturns` number[], required: assetReturns[t] is the logarithmic return of the asset at the time t; all assetReturns arrays must have the same length
    - `assetsRankMomentumSkipPeriod` integer: The number of the most recent periods excluded from the assets rank momentum computation; must be < assetsRankMomentumFormationPeriod
    - `assetsRankMomentumFormationPeriod` integer, required: The look back period over which to compute the assets rank momentum
    - `assetsRankMomentumPeriodsType` 'singlePeriods' | 'overlappingPeriods': The type of return periods to use to compute the assets rank momentum
  - object
    - `assets` object[], required
      - `assetPrices` object[], required: assetPrices[t] contains price information for the asset at the date t ; all assetPrices arrays must have the same length
        - `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
    - `assetsRankMomentumSkipPeriod` integer: The number of the most recent periods excluded from the assets rank momentum computation; must be < assetsRankMomentumFormationPeriod
    - `assetsRankMomentumFormationPeriod` integer, required: The look back period over which to compute the assets rank momentum
    - `assetsRankMomentumPeriodsType` 'singlePeriods' | 'overlappingPeriods': The type of return periods to use to compute the assets rank momentum

## Response `200`

OK

- object
  - `assetsRankMomentum` number[], required: The rank momentum indicator of the universe of assets

## Changes

- **2026-08-13** `6f06b5c1e6e5`: 1 breaking, 1 info
  - removed `subschema #1, subschema #2` from the request body `oneOf` list
  - added `subschema #1, subschema #2` to the request body `oneOf` list
- **2026-08-10** `d016f340e91c`: 1 breaking, 1 info
  - removed `subschema #1, subschema #2` from the request body `oneOf` list
  - added `subschema #1, subschema #2` to the request body `oneOf` list
- **2026-06-08** `614076795988`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/portfoliooptimizer/apis/portfolio-optimizer/changes/assets/indicators/momentum/rank/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)
