All indicators

Ahrens Moving Average (AHRENS)

A recursive average that steps toward price from the midpoint of its previous value and its value one period ago.

BTCUSD1h
Fixed data to Oct 6, 2026, UTC
Loading the chart

The Ahrens Moving Average updates itself from its own history. On each bar it takes the midpoint of its previous value and its value Period bars ago, measures how far the source sits from that midpoint, and moves its previous value by that distance divided by Period.

Using the midpoint of two of its own past values, rather than the previous value alone, corrects some of the lag a plain recursive average builds up. On the first bar the line starts at the source, and until it has a value Period bars back the source stands in for that older value.

How to read Ahrens Moving Average (AHRENS)

Read it as a smooth trend line. Price above a rising line describes an uptrend and price below a falling line a downtrend; the slope of the line shows the direction of the trend and how firmly it is holding.

The line moves only 1 / Period of the gap each bar, so it is slow to respond to a sudden move and can trail price for some time after a sharp break. A shorter period makes it follow more closely at the cost of more noise.

Settings

Period
How far back the older value is taken and how small each step is. Longer is smoother and slower.
Source
The price series the average follows, the close by default.

Frequently asked questions

Why does it use its own value from a period ago?

The midpoint of the previous value and the value a period back sits closer to the centre of recent movement, which offsets some of the lag of stepping from the previous value alone.

Does it need a warmup?

No. It starts at the source on the first bar, but the first Period bars use the source in place of the older value, so they settle in over that stretch.

Write your own in OpenScript

Every study here is plain OpenScript. Change a setting, combine two, or turn one into a strategy, then backtest it in /trading and run it in sandbox trading (analyzer mode in OpenAlgo) before going further.