---
title: "Simple Moving Average Model (SMA)"
method: POST
path: "/assets/volatility/forecast/sma"
tags: ["Assets / Volatility Forecast"]
---

# Simple Moving Average Model (SMA)

`POST /assets/volatility/forecast/sma`

Compute volatility forecasts for an asset using a simple moving average (SMA) model.

References
* [Jacob Boudoukh, Matthew Richardson, Robert F. Whitelaw, Investigation of a Class of Volatility Estimators, The Journal of Derivatives, Spring 1997, 4 (3) 63 - 71](https://www.pm-research.com/content/iijderiv/4/3/63)
* [Figlewski, Stephen, Forecasting Volatility Using Historical Data (May 1994). NYU Working Paper No. FIN-94-032](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1299461)

## Request body

- object
  - `assets` object[], required
    - `assetPrices` object[] — assetPrices[t] contains price information for the asset at the date t; required if varianceProxy is not equal to 'precomputed'; exclusive with assetVarianceProxies
      - `date` string, required — The date corresponding to the date t in format YYYY-MM-DD; all dates must be distinct
      - `open` number — The open price of the asset at the date t; must be higher than or equal to the low price and lower than or equal to the high price; required if varianceProxy is equal to 'jumpAdjustedParkinsonRange'
      - `high` number — The high price of the asset at the date t; must be lower than or equal to the high price; required if varianceProxy is equal to 'parkinsonRange' or 'jumpAdjustedParkinsonRange'
      - `low` number — The low price of the asset at the date t; must be higher than or equal to the low price; required if varianceProxy is equal to 'parkinsonRange or 'jumpAdjustedParkinsonRange'
      - `close` number — The close price of the asset at the date t; must be higher than or equal to the low price and lower than or equal to the high price; required if varianceProxy is equal to 'squaredCloseToCloseReturns', 'demeanedSquaredCloseToCloseReturns' or 'jumpAdjustedParkinsonRange'
    - `assetVarianceProxies` union[] — assetVarianceProxies[t] contains information on the variance proxy of the asset at the date t; the assetVarianceProxies array must be consistent; required if varianceProxy is equal to 'precomputed'; exclusive with assetPrices
      - union
        - number — The value of the variance proxy of the asset at the date t
        - object
          - `date` string, required — The date corresponding to the date t in format YYYY-MM-DD; all dates must be distinct
          - `varianceProxy` number, required — The value of the variance proxy of the asset at the date t
    - `varianceProxy` 'squaredCloseToCloseReturns' | 'demeanedSquaredCloseToCloseReturns' | 'parkinsonRange' | 'jumpAdjustedParkinsonRange' | 'precomputed' — The variance proxy to use to forecast the asset volatility
    - `varianceProxyWindowSize` integer, required — The window size of the simple moving average, corresponding to the number of variance proxy observations to be averaged
    - `volatilityForecastHorizon` integer — The forecast horizon, corresponding to the number of multi-steps ahead volatility forecasts to compute

## Response `200`

OK

- object
  - `assets` object[], required
    - `assetVolatilityForecasts` number[], required — assetVolatilityForecasts[t] contains the asset (t+1)-steps ahead volatility forecast
    - `assetAggregatedVolatilityForecast` number, required — The asset aggregated volatility forecast over the forecast horizon, corresponding to the aggregation of all the multi-steps ahead volatility forecasts contained in assetVolatilityForecasts

---

[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/versions/479fd4ac44aa/schema)
