# Overlap Studies

## Double Exponential Moving Average

Definition: Calculates the double exponential moving average (DEMA) for the input time series.
Syntax: `dema(period)`
Arguments: `period` - the length of period to use in the calculation
Return: A time series of values representing the double exponential moving average for the input time series.
Description: Double Exponential Moving Average is a technical indicator used in finance to identify trends and forecast future prices. It is calculated by applying an exponential average to the price data with a greater weight given to more recent observations.
Example:
dema_values = ETH.close -> dema(30)

## Hilbert Transform Trendline

Definition: Calculates the Hilbert transform trendline for the input time series
Syntax: `ht_trendline()`
Arguments: Not Applicable
Return: A time series of values representing the Hilbert transform trendline for the input time series.
Description: The Hilbert transform trendline is a smoothed representation of the input time series. It is calculated using the Hilbert transform and can be used to identify trends and to generate buy and sell signals.
Example:
ht_trendline_values = ETH.close -> ht_trendline()

Definition: Calculates the Kaufman adaptive moving average (KAMA) for the input time series.
Syntax: `kama(period)`
Arguments: `period` - the length of period to use in the calculation
Return: A time series of values representing the Kaufman adaptive moving average for the input time series.
Description: The Kaufman adaptive moving average (KAMA) is a moving average that adjusts its sensitivity to price movements based on the volatility of the input time series.
Example:
kama_values = ETH.close -> kama(30)

## Moving Average

Definition: Calculates a moving average for the input time series.
Syntax: `ma(period, matype)`
Arguments:
• `period`: the length of period to use in the calculation
• `matype`: type of moving average (See table of types)
Return: A time series of values representing the moving average for the input time series.
Description: A moving average is a widely used technical indicator that smooths out short-term price fluctuations and helps to identify long-term trends. There are several types of moving averages available, including sma, ema, wma, dema, tema, trima, kama, mama, and t3.
Example:
ma_values = ETH.close -> ma(23, "t3")

## Midpoint

Definition: Calculates the midpoint over the specified period for the input time series.
Syntax: `midpoint(period)`
Arguments: `period` - the length of period to use in the calculation
Return: A time series of values representing the midpoint over the specified period for the input time series.
Description: The midpoint is calculated as the average of the highest high and the lowest low over the specified period. This function can be used to identify support and resistance levels or to filter out noise in the data.
Example:
midpoint_values = ETH.close -> midpoint(15)

## Triple Exponential Moving Average

Definition: Calculates the Triple exponential moving average (TEMA) for the input time series.
Syntax: `tema(period)`
Arguments: `period` - the length of period to use in the calculation
Return: A time series of values representing the triple exponential moving average for the input time series.
Description: The triple exponential moving average (TEMA) is a type of moving average that uses an exponential smoothing factor to reduce the lag in the average. This function allows you to specify the period for the moving average. This function can be used to identify trends and to generate buy and sell signals.
Example:
tema_values = ETH.close -> tema(30)

## Triangular Moving Average

Definition: Calculates the triangular moving average (TRIMA) for the input time series.
Syntax: `trima(period)`
Arguments: `period` - the length of period to use in the calculation
Return: A time series of values representing the triangular moving average for the input time series.
Description: The TRIMA is a double-smoothed simple moving average. The double smoothing places greater weight on values near the middle of the lookback period. It therefore reacts relatively slowly to price changes compared to most moving averages.
Example:
trima_values = ETH.close -> trima(15)